我如何在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
。
答案 0 :(得分:1)
您是否尝试过从命令行运行composer dumpautoload?