我不知道您的具体情况,也不知道这是否是解决此问题的“正确”方法,但由于我遇到了同样的问题,我想我会分享我是如何解决它的。
我将包控制器放在控制器子目录中,这样我的目录结构如下所示:
/src
/Vendor
/Package
PackageServiceProvider.php
/config
/controllers
/lang
/migrations
/views
/tests
/public
然后,我将控制器文件夹添加到我的包的 composer.json 自动加载类映射中。
{
"name": "kevin-s-perrine/my-first-packge",
"description": "",
"authors": [
{
"name": "Kevin S. Perrine",
"email": "removed@somewhere.com"
}
],
"require": {
"php": ">=5.3.0",
"illuminate/support": "4.0.x"
},
"autoload": {
"classmap": [
"src/migrations",
"src/controllers"
],
"psr-0": {
"KevinSPerrine\\MyFirstPackage": "src/"
}
},
"minimum-stability": "dev"
}
最后,我composer dump-autoload
在包的根目录下运行,然后在路由文件中按名称引用控制器。
Route::get('myfirstpackage', 'MyFirstPackageHomeController@getIndex');