Как реализовать шаблон драйвера с помощью помощников в 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/Laravel пролить свет на эту проблему для меня?

* [РЕШЕНИЕ] * Шаблон дизайна был верным, но мне нужно было выполнить:

composer dump-autoload

после того, как все было написано.

1 ответ

Решение

Вы пробовали запустить: composer dumpautoload из командной строки?

Другие вопросы по тегам