如何在流明中使用助手实现驱动模式

时间:2015-09-17 22:27:29

标签: php laravel namespaces driver lumen

我如何在Lumen中实现驱动程序模式?现在我在ResponseHandler.php中有一个帮助/app/Helpers,它定义了abstract class ResponseHandler

// app/Helpers/ResponseHandler.php

namespace App\Helpers;

use \Symfony\Component\HttpFoundation\Response as HTTPResponse;

abstract class ResponseHandler extends HTTPResponse
{   

    abstract public function success();
    abstract public function fail();
    [...]
}

我在子目录extend ResponseHandler中定义了/app/Helpers/Response的驱动程序。驱动程序定义如下:

// app/Helpers/Response/JSON.php

namespace App\Helpers\ResponseHandler;

class JSON extends ResponseHandler
{
    public function fail() {
        // logic
    }

    public function success() {
        // logic
    }

    [...]
}

我遇到的问题是,当我尝试在控制器中的函数内使用驱动程序时,Lumen会抛出以下错误:Class 'App\Helpers\ResponseHandler\JSON' not found。这是我写的控制器(删除了不相关的部分):

// app/Http/Controllers/ResponseController.php

namespace App\Http\Controllers;

use App\Helpers\ResponseHandler\JSON as Response;

class ResponseController extends Controller
{
    public function returnSomething($content) {
        [...]
        return Response::success($_ProcessedContent);
    }

    [...]
}

我尝试更改名称空间,这些名称空间最终会导致更多错误,并且最终无法解决此问题。我怀疑我对命名空间不够熟悉以及Lumen如何使用它们......但我现在已经在这个问题上工作了几个小时而且似乎无法弄明白。

对于Lumen / Laravel有更多经验的人能否为我解释这个问题?

* [解决方案] * 设计模式是正确的,但我需要运行:

composer dump-autoload

写完一切后

1 个答案:

答案 0 :(得分:1)

您是否尝试过从命令行运行composer dumpautoload?