Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4-从软件包扩展应用程序控制器_Php_Namespaces_Laravel_Laravel 4 - Fatal编程技术网

Php Laravel 4-从软件包扩展应用程序控制器

Php Laravel 4-从软件包扩展应用程序控制器,php,namespaces,laravel,laravel-4,Php,Namespaces,Laravel,Laravel 4,背景 我知道我想做的事情听起来有点错误,但我有我的理由。 基本上,我有一个中央核心应用程序,这是一个默认的laravel应用程序,带有一些调整和样板代码,然后我开发了一系列包,可以通过composer来扩展应用程序。这些包在没有核心框架的情况下无法正常运行,因此完全可以期待对它的依赖 我想做什么 我想做的是在我的核心应用程序中有一个BaseController,并让我包中的各种控制器扩展此BaseController,以在各种模块包中提供通用功能 我希望能够将基本控制器放入app/control

背景

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

我想做什么

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

我希望能够将基本控制器放入
app/controllers/BaseController.php
然后使用以下方法从我的软件包中扩展它:

class PackageController extends \BaseController{}
不幸的是,当我这样做时,它仍然在包(当前工作台)中查找控制器,我得到错误:

包括(/var/www/l4core.dev/workbench/myvendor/mypackage/src/controllers/BaseController.php): 无法打开流:没有这样的文件或目录

谁能告诉我我做错了什么吗。我正在寻找一种解决方案,它允许我在供应商目录和工作台之间轻松地移动包进行开发。非常感谢您的帮助

更新

前面提到的错误消息似乎是由于我的软件包中包含了
/vendor/composer/classloader.php
——我现在删除了vendor目录并重新安装了composer。这并没有解决问题,但至少改变了问题,因为我现在收到以下错误消息:

找不到类“BaseController”

My Packages composer.json

确保执行以下操作:

php artisan dump-autoload
并验证您的类
BaseController
是否位于
/vendor/composer/autoload_classmap.php


或者像OP所说的那样,删除
供应商
目录并再次运行
composer安装
有时可以解决问题。

出现“include”错误非常奇怪,通常是“找不到类”。你能给我们一个你的包composer.json文件的片段吗?@FR6谢谢你的关注-我为包添加了composer.json。你说,你把
BaseController
放在
app
directory=>
app/BaseController.php
中。我不确定仅从
app
目录自动加载是否有效,请尝试将控制器放入
app/controllers
或自动加载中包含的任何其他文件夹。抱歉,不是,这是一个输入错误,控制器位于
app/controllers
我已经更新了我的问题,因为在新的composer安装后,我现在有一条标准的class not found消息
php artisan dump-autoload