gpt4 book ai didi

php - Composer autoload - 从父目录加载类

转载 作者:可可西里 更新时间:2023-11-01 13:22:15 31 4
gpt4 key购买 nike

我目前正在开发一个需要从其父目录访问类的 Laravel 项目。

Composer .json > PSR-4:

    "psr-4": {
...
"ModuleA\\": "../ModuleA/baseObjects",
"ModuleB\\": "../ModuleB/baseObjects"
}

示例文件结构:

/var/www
+- /xxx (project)
+- /ModuleA
+- /baseObjects
- configClass.inc
+- /ModuleB
+- /baseObjects
- configClass.inc
+- /laravel
- composer.json

我运行 composer dump-autoload 但项目仍然找不到 ModuleA\configClassModuleB\configClass

此外,在我的 autoload_psr4.php 中,上面的引用如下:

'MobuleA\\' => array($baseDir . '/../MobuleA/baseObjects')
'MobuleB\\' => array($baseDir . '/../MobuleB/baseObjects')

最佳答案

PSR-4 要求加载的文件具有命名空间类,命名空间结构必须与目录结构相匹配,相对于配置中定义的“基目录”(http://www.php-fig.org/psr/psr-4/)。

因此,在文件 /var/xxx/ModuleA/baseObjects/configClass.inc 中应该是类

namespace ModuleA\baseObjects;

class configClass {
...
}

然后在 var/www/laravel/composer.json 中你可以拥有

    "psr-4": {
"App\\": "app/",
"ModuleA\\": "../ModuleA"
}

这意味着:“目录 ../ModuleA 应该是 ModuleA 命名空间的根目录,然后通过从那里匹配子目录来跟随子命名空间”。

关于php - Composer autoload - 从父目录加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967046/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com