繁体   English   中英

如何与作曲家自动加载器一起自动加载我的课程?

[英]How to autoloading my classes alongside with composer autoloader?

通过考虑此文件结构

| -- src /
        | -- vendor
        | -- models
        | -- libraries
        | -- ...
        | -- composer.json

如何自动加载位于“模型”和“库”目录中的类?

您可以在项目中的composer.json文件中添加自己的自动加载器规则-这会将您自己的规则添加到vendor/autoload.php文件中,以便您自己的类将与vendor/目录中的类一起加载。 此处的文档中有更多信息: https : //getcomposer.org/doc/04-schema.md#autoload 看一下PSR-0部分,从您的两个目录加载类。

尝试类似:

{
    "autoload": {
        "psr-0": { "": ["models/", "libraries"] }
    }
}

如果您的类已命名,请指定名称空间,因为这将使作曲家无法在这些目录中查找所有类。

或者稍后在代码中,您可以添加您的lib,例如:

$loader = require(ROOTDIR . 'vendor/autoload.php'); // composer autoloading
//public function addPsr4($prefix, $paths, $prepend = false)
$loader->addPsr4('extend\\', ROOTDIR . 'class/lib'); 

$a = new \extend\MyClass(); // MyClass.php is in ROOTDIR/class/lib directory

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM