gpt4 book ai didi

php - Laravel 4 - 从包中扩展应用程序 Controller

转载 作者:行者123 更新时间:2023-12-04 16:51:28 24 4
gpt4 key购买 nike

背景

我知道我正在尝试做的事情听起来有点错误,但我确实有我的理由。
基本上我有一个中央核心应用程序,它是一个默认的 Laravel 应用程序,带有一些调整和样板代码,然后我开发了一系列包,可用于通过 Composer 扩展应用程序。这些包在没有核心框架的情况下无法运行,因此完全可以预期对它的依赖。

我想做什么

我想要做的是在我的核心应用程序中有一个 BaseController,并让我的包中的各种 Controller 扩展这个 BaseController 以在各种模块包中提供通用功能。

我希望能够将基本 Controller 放在 app/controllers/BaseController.php
然后使用以下方法从我的包中扩展它:

class PackageController extends \BaseController{}

不幸的是,当我这样做时,它仍然在 Controller 的包(当前工作台)中查找,并且出现错误:

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 - 我现在已经删除了供应商目录并完成了全新的 Composer 安装。这并没有解决问题,但它至少已经改变了它,因为我现在收到以下错误消息:

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"
}

最佳答案

务必执行:

php artisan dump-autoload

并验证您的类(class) BaseController/vendor/composer/autoload_classmap.php .

或者像 OP 所说的那样,删除 vendor目录和运行 composer install再次有时可以解决问题。

关于php - Laravel 4 - 从包中扩展应用程序 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com