ipe*_*eer 4 php laravel laravel-4
我想以我所有代码都在src
目录下的方式构建我的laravel应用程序.我的项目结构如下所示.我怎么能这样做才能打电话Route::get('accounting/item/{id}','AccountingItemController@getId')
我想避免将src下的每个模块添加到ClassLoader中.有没有办法告诉类加载器加载父目录src下的所有子目录?
app
app/src
app/src/accounting
app/src/accounting/controllers
app/src/accounting/models
app/src/accounting/repos
app/src/accounting/interfaces
app/src/job
app/src/job/controllers
app/src/job/models
app/src/job/repos
app/src/job/interfaces
Run Code Online (Sandbox Code Playgroud)
Jas*_*wis 11
是的,它被称为PSR-0.
您应该命名所有代码.通常,您将拥有一个供应商名称,您将使用顶级名称空间.您的应用程序结构应该是这样的.
app/src/Vendor/Accounting/Controllers
app/src/Vendor/Job/Controllers
Run Code Online (Sandbox Code Playgroud)
然后,您的控制器将相应地命名空间.
namespace Vendor\Accounting\Controllers;
Run Code Online (Sandbox Code Playgroud)
并且在路线中使用它们.
Route::get('accounting/item/{id}','Vendor\Accounting\Controllers\ItemController@getId');
Run Code Online (Sandbox Code Playgroud)
最后,您可以在您的注册表中使用Composer注册您的命名空间composer.json
.
"autoload": {
"psr-0": {
"Vendor": "app/src"
}
}
Run Code Online (Sandbox Code Playgroud)
当然,如果您不想要顶级Vendor
命名空间,可以将其删除,但是您需要将每个组件注册为PSR-0.
"autoload": {
"psr-0": {
"Accounting": "app/src",
"Job": "app/src",
}
}
Run Code Online (Sandbox Code Playgroud)
完成后,运行composer dump-autoload
一次,您应该能够添加新的控制器,模型,库等.只需确保目录结构与每个文件的命名空间一致.
归档时间: |
|
查看次数: |
5292 次 |
最近记录: |