【发布时间】:2013-12-02 02:37:14
【问题描述】:
我正在尝试在 Laravel 中为我的模型命名,并让它们自动加载,就像普通模型在 app/models 的根目录中所做的那样。 composer dump-autoload 有效,但我不想在创建新模型后运行它。
#app/models/MyNamespace/Thing.php
<?php
namespace App\Models\MyNamespace;
class Thing {
// ...
}
#app/routes.php
<?php
Route::get('test', function(){
$thing = new App\Models\MyNamespace\Thing;
});
如果我运行 composer dump-autoload 一切都很好,否则我会得到一个找不到类的异常。
我可以做些什么来使这种结构工作而无需在每次创建新类时都重新构建类映射?我认为 PSR-0 是您的命名空间与您的目录结构直接相关的地方,而且我的类似乎也遵循这一点......
我也尝试过使用 Workbench,效果很好,但理想情况下我希望拥有,例如:app/models/MyNamespace、app/models/AnotherNamespace。
【问题讨论】:
-
我猜这是因为
app/App和model/Model的大小写不同。如果您在 Unix 环境中,PHP 对目录名区分大小写... -
我已经尝试了这两种方法,但不幸的是(在我家里的 Mac 或工作的 Windows 上)都没有改变。 :(
标签: php laravel laravel-4 composer-php psr-0