通过作曲家自己的项目

时间:2013-03-22 16:12:23

标签: php composer-php

我已经通过编写器加载了一些库,我想知道是否可以在/ vendor映射中添加我自己的库,然后让composer自动加载器加载它?结构将类似于/ vendor / mylibrary /,然后是命名空间mylibrary。

这可能吗?也可以在composer自动加载器中添加不同的地图吗?比如/ app / src /然后让它加载该文件夹中的所有类?或者我必须为此制作自己的装载机?

由于

3 个答案:

答案 0 :(得分:8)

阅读composer documentation

  

您甚至可以通过向composer.json添加自动加载字段将自己的代码添加到自动加载器。

{
    "autoload": {
        "psr-0": {"Acme": "src/"}
    }
     

}

     

Composer将为Acme命名空间注册PSR-0自动加载器。   您可以定义从名称空间到目录的映射。 src目录将位于项目根目录中,与供应商目录位于同一级别。示例文件名是src / Acme / Foo.php,其中包含Acme \ Foo类。

     

添加自动加载字段后,您必须重新运行安装到   重新生成vendor / autoload.php文件。

所以基本上,你只需要follow PSR-0,并通过将这一行添加到你的composer.json

告诉作曲家在哪里找到你的库。

答案 1 :(得分:2)

是的。你可以实现它。将composer.json文件配置如下:

{
    "autoload": {
        "classmap": [ "classes" ]
}

这里的类是您拥有所有与应用程序相关的类的目录的名称。也应该自动检测与相关的类。只需添加以下行即可同时实现两者:

require 'vendor/autoload.php';

您可以使用namesapce引用您的类,如下所示:

use classes\Model\Article; 

答案 2 :(得分:1)

是的,当然可以添加自己的库,您应该非常鼓励这样做。如果您的图书馆是公开的,您只需在packagist.org注册即可。如果没有,那就有点复杂了,但并非不可能。

如果您的项目不符合PSR-0标准,作曲家将为您创建一个类图。不支持自定义自动加载器。

如果您遇到问题,我建议您阅读有关所有这些的(非常优秀的)文档,然后再回来。

http://getcomposer.org/doc/