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