我已经通过作曲家加载了一些库,我想知道是否有可能在/供应商地图中添加我自己的库,然后让作曲家自动加载器加载它?结构类似于/vendor/mylibrary/,然后是命名空间mylibrary。
这可能吗?此外,是否有可能添加一个不同的地图到作曲家自动加载器?比如/app/src/然后让它加载那个文件夹里的所有类?还是我需要自己做一个加载器?
谢谢
阅读编写器文档:
你甚至可以通过在composer.json中添加一个autolload字段来添加你自己的代码到自动加载器中。
{ "autoload": { "psr-0": {"Acme": "src/"} }
}
Composer将为Acme命名空间注册一个PSR-0自动加载器。定义从名称空间到目录的映射。src目录将位于项目根目录中,与vendor目录处于同一级别。一个示例文件名是src/Acme/Foo.php,其中包含一个AcmeFoo类。
添加自动加载字段后,您必须重新运行install to重新生成vendor/autolload .php文件
所以基本上,你只需要遵循PSR-0,告诉composer在哪里找到你的库,将这一行添加到composer。json
是。你可以做到的。配置编写器。Json文件如下:
{
"autoload": {
"classmap": [ "classes" ]
}
这里classes是存放所有应用程序相关类的目录名。供应商相关的类也应该被自动检测。只需添加以下行即可同时实现两者:
require 'vendor/autoload.php';
您可以使用命名空间来引用您的类,如下所示:
use classesModelArticle;
是的,当然可以添加自己的库,您应该强烈鼓励这样做。如果您的库是公开可用的,您可以简单地在packagist.org上注册它。如果没有,这有点复杂,但并非不可能。
如果您的项目不遵循PSR-0标准,composer将为您创建一个类映射。不支持自定义自动加载器。
我建议您阅读有关所有这些的(非常优秀的)文档,如果您遇到问题,请再回来。
http://getcomposer.org/doc/