我已经开始了一个新项目,我使用Composer来处理一些依赖项,以及它们的自动加载。
我只将composer.json文件保存在VCS中,而不是整个供应商目录中,所以我不想开始在那里添加我的代码。
我应该如何处理我自己的项目特定代码,以便自动加载?
答案 0 :(得分:45)
这实际上非常简单。从存储库中排除供应商目录是正确的方法。您的代码应存储在一个单独的位置(如src)。
使用autoload属性使该作曲家识别您的命名空间:
{
"autoload": {
"psr-4": {
"Acme\\": "src/"
}
}
}
假设您的类名遵循psr-4标准,它应该有效。下面是一些类名称及其在文件系统中的位置示例:
请记住为每个类定义命名空间。这是Acme \ Command \ HelloCommand的一个例子:
<?php
namespace Acme\Command;
class HelloCommand
{
}
不要忘记将自动加载器包含在PHP控制器中:
<?php
require 'vendor/autoload.php';
详细了解PSR-4 standard on PHP Framework Interoperability Group。
请注意,如果您修改composer.json
,则需要运行install,update或dump-autoload来刷新自动加载器类路径。