如何在 Lumen 中使用助手实现驱动程序模式
How To Implement the Driver Pattern Using Helpers in Lumen
我将如何在 Lumen 中实现驱动程序模式?现在我在 /app/Helpers
中有一个助手 ResponseHandler.php
,它定义了一个 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();
[...]
}
我有驱动程序在子目录 /app/Helpers/Response
中定义了 extend ResponseHandler
。驱动程序定义如下:
// 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
写完所有内容后。
您是否尝试过 运行:命令行中的 composer dumpautoload?
我将如何在 Lumen 中实现驱动程序模式?现在我在 /app/Helpers
中有一个助手 ResponseHandler.php
,它定义了一个 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();
[...]
}
我有驱动程序在子目录 /app/Helpers/Response
中定义了 extend ResponseHandler
。驱动程序定义如下:
// 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
写完所有内容后。
您是否尝试过 运行:命令行中的 composer dumpautoload?