Как я могу применить шаблон драйвера в Lumen? Прямо сейчас у меня есть помощник ResponseHandler.php
в /app/Helpers
, который определяет abstract class ResponseHandler
.Как реализовать шаблон драйвера с помощью помощников в Lumen
// 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
после того, как все было написано.
Это была именно эта проблема. Хотя, команда - 'comper dump-autoload', с тире. Похоже, я еще немного читаю, как работает композитор. Спасибо! Для справки: https://getcomposer.org/doc/03-cli.md#dump-autoload – wooldrb