我在PSR-0自动加载的项目中按路径实例化类时遇到问题。结构如下:
| - src/
| - Models/
| - My_New_Model_Migration.php
| - ...
| SeederCommand.php
| - vendor/
| - ...
| composer.json
和 Composer 自动加载器:
"autoload": {
"psr-0": {
"" : [
"src/"
]
}
}
不要在SeederCommand课堂上讲太多,它基本上是一个 Doctrine/migrations 类,它应该使用up()和down()方法创建迁移。
在负责生成这些的函数中,我有这部分:
if (file_exists(__DIR__ . "/Models/{$model}_Migration.php")) {
$class = "{$model}_Migration";
$instantiated = new $class;
....
}
当回显时,我注意到文件确实存在,所以这部分工作正常。但是,在更新课程时,我收到一个错误:
PHP 致命错误:未捕获的错误:在 /var/www/html/.../src/SeederCommand.php:97 中找不到类“/var/www/html/.../src/Models/My_New_Model_Migration.php”
由于路径是正确的,我认为问题一定是PSR-0自动加载器通过下划线解析路径来工作的?
有办法解决吗?
Cats萌萌
POPMUISE