作曲家自动加载 - 如何从不同的文件夹中获取类、特征、接口



如何使用作曲家自动加载从不同的文件夹中获取类、特征、接口?

其中一些我使用命名空间,例如,

控制器/Foo.php,

namespace MyNamespace;
class Foo
{
    public $message = 'hello Foo';
}

型号/嘘声.php

namespace MyNamespace;
class Boo
{
    public $message = 'hello Boo';
}

索引.php,

// Composer.
require 'vendor/autoload.php';
use MyNamespaceFoo;
$Foo = new Foo();
var_dump($Foo);

错误

致命错误:在 C 中找不到类"MyNamespace\Foo":...

作曲家.json,

{
    "autoload": {
        "psr-0": {
            "": "ext/",
            "": "controller/",
            "": "model/" 
        }
    }
}

我在许多不同的文件夹中有很多类(它可能会扩展),那么当我在新文件夹中有新类时,有什么方法可以不重新安装作曲家自动加载吗?

您必须标准化命名空间和文件夹结构。如果在不同的文件夹中具有相同的命名空间,则很难创建简单的逻辑来自动加载所有文件夹。尝试在命名空间中使用另一个段,例如:

namespace MyNamespaceController;
class Foo
{
    public $message = 'hello Foo';
}

和:

namespace MyNamespaceModel;
class Boo
{
    public $message = 'hello Boo';
}

在你的作曲家.json中:

{
    //..
    "autoload": {
        "psr-4": {
             "MyNamespace\Model\": "/path/to/model/folder/",
             "MyNamespace\Controller\": "/path/to/controller/folder/"
        }
    }
}

设置完成后,请致电:

composer dump-autoload

相关内容

  • 没有找到相关文章

最新更新