【问题标题】:Extend the Laravel\Lumen\Exceptions\Handler.php inside package扩展包内的 Laravel\Lumen\Exceptions\Handler.php
【发布时间】:2018-04-02 21:59:20
【问题描述】:

我有几个 Lumen 服务在 App\Exceptions\Handler.php 类的 render() 函数中具有相同的代码。我想将此代码移动到所有服务都可以包含的单独包中。我可以通过使包 Handler.php 文件扩展 Laravel\Lumen\Exceptions\Handler.php 类来完成这项工作,基本上是在默认框架文件和用户编辑的处理程序之间插入我的类。

变化:

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 

【问题讨论】:

    标签: laravel lumen


    【解决方案1】:

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

    【讨论】:

    • 很高兴知道这没关系。我试图只包含我需要的框架部分,但它似乎确实解决了所有问题。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2015-05-10
    • 2017-05-05
    相关资源
    最近更新 更多