我已经开始了一个新项目,我使用Composer来处理一些依赖项,以及它们的自动加载.
我只将composer.json文件保存在VCS中,而不是整个供应商目录中,所以我不想开始在那里添加我的代码.
我应该如何处理我自己的项目特定代码,以便它自动加载?
Jak*_*las 47
这其实很简单.从存储库中排除供应商目录是正确的方法.您的代码应存储在一个单独的位置(如src).
使用autoload属性使该composer识别您的命名空间:
{
"autoload": {
"psr-4": {
"Acme\\": "src/"
}
}
}
Run Code Online (Sandbox Code Playgroud)
假设您的类名遵循psr-4标准,它应该可以工作.下面是一些类名称及其在文件系统上的位置示例:
请记住为每个类定义命名空间.这是Acme\Command\HelloCommand的一个例子:
<?php
namespace Acme\Command;
class HelloCommand
{
}
Run Code Online (Sandbox Code Playgroud)
不要忘记在PHP控制器中包含自动加载器:
<?php
require 'vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
阅读PHP Framework Interoperability Group上有关PSR-4标准的更多信息.
请注意,如果进行编辑composer.json
,则需要运行install,update或dump-autoload来刷新自动加载器类路径.
归档时间: |
|
查看次数: |
9068 次 |
最近记录: |