【问题标题】:Custom autoloader for project vs Composer PSR-4项目与 Composer PSR-4 的自定义自动加载器
【发布时间】:2014-10-11 00:58:21
【问题描述】:

我目前正在开发一个具有以下目录结构的小型框架:

/
-- app
-- vendor
   -- framework-vendor
      -- framework-package
         -- src

目前我在框架的 composer.json 中有两个 PSR-4 实例:

"autoload": {
    "psr-4" : {
        "FrameworkName\\" : "src/",
        "": "../../../app"
    }
}

这样做的目标是,位于app 的实际项目可以使用\FrameworkName\foo\bar\Class 使用框架中的类,也可以使用\foo\bar\Class 使用它自己的类。唯一的限制是供应商目录和应用程序目录之间的相对深度。

最好的方法是什么?只需包含第二个自动加载器或强制执行此目录结构并让 Composer 负责生成自动加载器?

【问题讨论】:

    标签: php composer-php autoload psr-4


    【解决方案1】:

    不强制相对路径深度的解决方案是使用 Composer 返回的自动加载器,如下所示:

    $loader = require 'vendor/autoload.php';
    $loader->add('', __DIR__ . '/app/');
    

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 2015-04-20
      • 2018-07-25
      • 2014-08-12
      • 1970-01-01
      • 2015-03-04
      • 2014-03-24
      • 2018-06-01
      • 2014-11-01
      相关资源
      最近更新 更多