在包内扩展Laravel \ Lumen \ Exceptions \ Handler.php

时间:2017-10-22 05:58:44

标签: laravel lumen

我有几个流明服务在render()类的App\Exceptions\Handler.php函数中具有相同的代码。我想将此代码移动到所有服务都可以包含的单独包中。通过使包Handler.php文件扩展Laravel\Lumen\Exceptions\Handler.php类,基本上将我的类插入默认框架文件和用户编辑的Handler之间,我能够实现这一点。

更改:

class Handler extends Laravel\Lumen\Exceptions\Handler {...}

要:

我的班级

use Laravel\Lumen\Exceptions\Handler;

class MyHandler extends Handler {...}

框架类

use ServiceHelpers\Exceptions\MyHandler;

class Handler extends MyHandler {...}

但是当我在包中测试我的文件时,我遇到了Laravel\Lumen\Exceptions\Handler不存在的问题。我在我的作曲家文件中需要几个illuminate/...包,但看起来我正在尝试扩展的文件是在Laravel或Lumen框架中,我必须要求laravel/lumen包我不认为是合适的。

我目前有以下要求:

"illuminate/support": "^5.5",
"illuminate/http": "^5.5",
"illuminate/validation": "^5.5",

我得到的错误是:

[Symfony\Component\Debug\Exception\FatalErrorException]  
  Class 'Laravel\Lumen\Exceptions\Handler' not found 

1 个答案:

答案 0 :(得分:1)

从技术上讲,你的软件包依赖于laravel/lumen-framework正在安装,因为它正在从该软件包扩展一个类。因此,将laravel/lumen-framework作为您的包的依赖是合适的;你的包裹取决于它的安装。