我想做一个作曲家包。但是,我仍处于开发阶段,将或将要进行较早的测试。
我有一个空的vendor
文件夹,里面有作曲家的自动加载器:
/vendor
/composer
autoload.php
所以现在我已经尝试了我的包"模拟"并创建了我的文件夹结构和 composer.json:
/vendor
/composer
/me
/package
/src
/tests
composer.json
autoload.php
这是我的作曲家.json:
{
"name": "me/package",
"description": "",
"license": "",
"authors": [
{
"name": "",
"email": ""
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0"
},
"autoload": {
"psr-4": {
"Me\Package\": "src/"
}
}
}
这是我的班级:
namespace MePackage;
class Test {
// ...
}
如果我想称它为:
if(file_exists('vendor/autoload.php')) require 'vendor/autoload.php';
$test = new MePackageTest();
我变得Fatal error: Class 'MePackageTest' not found
.
当然,我也在根目录中插入了一个 composer.json,但我仍然可以require
我的包状态,因为它没有发布,对吧?但是我该如何测试它并向作曲家说他应该自动加载我的包呢?
如果你想使用composer来包含未在 http://Packagist.org/上列出的包,你可以在composer.json(项目根文件(中添加一个"repository"节。这将读取项目,并从中获取 composer.json,使用主"requires"部分的名称。
"repositories": [
{
"type": "vcs",
"url": "https://github.com/example/private-repo.git"
}
}
"url"部分实际上也可以是git,SVN或HG存储库的任何有效URL - 甚至是基于 file://的引用。