背景扩展应用控制器Laravel 4 - 从包装
我知道我想要做听起来有点不对劲,但我有我的理由。 基本上,我有一个中央核心应用程序,这是一个默认的laravel应用程序,带有一些调整和样板代码,然后我开发了一系列可用于通过作曲程序扩展应用程序的软件包。如果没有核心框架,这些软件包就无法运行,因此完全可以预见它的依赖性。
我想做
我想要做的就是在我的核心应用一个BaseController并在我的包各种控制器扩展这个BaseController遍及各个模块封装提供通用的功能是什么。
我期待能够在基本控制器放置在app/controllers/BaseController.php
,然后使用从我的包扩展它:
class PackageController extends \BaseController{}
不幸的是我做到这一点时,它看起来还是包(目前workbenched)的内控制器和我得到的错误:
include(/var/www/l4core.dev/workbench/myvendor/mypackage/src/controllers/BaseController.php): failed to open stream: No such file or directory
谁能告诉我我在做什么错在这里。我正在寻找一个解决方案,使我可以轻松地在供应商目录和工作台之间移动我的包以进行开发。任何帮助非常感谢
更新
出现前面提到的错误信息是由于我的包/vendor/composer/classloader.php
的包括 - 现在我已经删除了供应商目录,并做了新的作曲家安装。这并没有解决问题,但它至少已经转向它,因为我现在得到了以下错误消息:
Class 'BaseController' not found
我的包composer.json
{
"name": "modules/sesame",
"description": "",
"authors": [
{
"name": "any",
"email": ""
}
],
"require": {
"php": ">=5.4.0",
"illuminate/support": "4.0.x",
"zizaco/confide": "dev-master",
"zizaco/entrust": "dev-master",
"conarwelsh/mustache-l4": "dev-master"
},
"autoload": {
"classmap": [
"src/controllers",
"src/models",
"src/migrations",
"src/seeds"
],
"psr-0": {
"Modules\\Sesame": "src/"
}
},
"minimum-stability": "dev"
}
真的很奇怪,你有一个“包含”错误,通常它是一个“未找到类”。你能给我们一个你的包composer.json文件的片段吗? – FR6
@ FR6感谢您的关注 - 我已经添加了包的composer.json。 – WebweaverD
你说,你把'BaseController'放在'app'目录=>'app/BaseController.php'中。我不确定自动加载只能从'app'目录中运行,请尝试将控制器放置到'app/controllers'或其他包含在自动加载中的文件夹中。 – Andreyco