背景擴展應用控制器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