Как я могу переопределить класс запроса? - PullRequest
0 голосов
/ 09 июня 2018

Я попытался переопределить основные классы, но этот не работает.Я знаю, что мне нужно будет обновить файл application / config / app.php, чтобы он указывал на новый класс.Но когда я делаю это, HTML redender останавливается на заголовке тега.

Я расширил класс запросов от ядра до application / src, обновил файл app.php, но он работает и дает мне пустую страницу.Мне нужно это, чтобы использовать URL перенаправления.

Ответы [ 2 ]

0 голосов
/ 16 июня 2018

Если вы используете версию 8, вам нужно будет загрузить свои классы в папку src.

В приложении / bootstrap / autoload.php

$classLoader = new \Symfony\Component\ClassLoader\Psr4ClassLoader();
$classLoader->addPrefix('Application\\Example', DIR_APPLICATION . '/' . DIRNAME_CLASSES . '/Example');

Здесь вам необходимо переопределить связанный поставщик услуг.Не совсем понятно, какой класс вы пытаетесь переопределить, и какого поставщика услуг это потребует.Ниже приведен пример переопределения \ Concrete \ Core \ Http \ HttpServiceProvider с классом, помещенным в application / Src / Example / HttpServiceProvider

return [
   'providers' => [
    'core_http' => 'Application\Example\HttpServiceProvider'
   ]
]

С помощью поставщика услуг вы можете расширять классы и переопределять возвращаемые классы вспособ подходит для вашего сценария использования (может быть утомительно, если у нескольких классов есть ссылки, но я знаю, что это единственный способ переопределить основные классы).Как правило, вы можете просто расширить существующие классы, переопределяя один или два метода, и предложить элегантное решение.

0 голосов
/ 12 июня 2018

если ваша цель состоит в том, чтобы сделать что-то с запросом перед отправкой обратно, вы можете использовать промежуточное ПО вместо переопределения класса.

Хорошим примером является пакет портала Centry, который вы можете найти здесь:https://github.com/a3020/centry

Посмотрите на функцию centry\Provider\CentryServiceProvider.php registerMiddleware(), чтобы узнать, как зарегистрировать промежуточное программное обеспечение.А затем посмотрите на 2 файла в centry\Http\Middleware, чтобы увидеть, как они используются.

...