Как бы я пошел о реализации шаблона драйвера в 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 / Laravel пролить свет на эту проблему для меня?
* [РЕШЕНИЕ] *
Шаблон дизайна был правильным, но мне нужно было выполнить:
composer dump-autoload
после того, как все было написано.
Вы пробовали запустить: composer dumpautoload из командной строки?
Других решений пока нет …