Symfony

symfony Обработка событий: Добавить заголовок во всех ответы (header, response)

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

То же самое было сделано и в методах аутентификатора для обработки запроса типа OPTIONS

ПРИМЕЧАНИЕ: см. также разрешение OPTIONS для все методов.

symfony The autoloader expected class ... to be defined in file Ошибка. Файл без класса

The autoloader expected class ... to be defined in file .. The file was found but the class was not in it, the class name or namespace probably has a typo in...

Ошибка возникает, когда вы просто закидываете, напр. в директорию контроллеров php-файл в котором нет класса (ну и неймспейса).

Временное решение

В моем случае в этом файле располагались аннотации всех контроллеров API, поэтому в качестве быстрого решения я добавил болванку под ожидаемый симфони класс (ну и неймспес для него), в итоге файл выглядит как-то так:

symfony Как игнорировать некоторые аннотации (doctrine vs swagger)

Ошибка вида:

An exception has been thrown during the rendering of a template [Semantical Error] The annotation ... in class ... was never imported. Did you maybe forget to add a use statement for this annotation? in .... (which is being imported from .../config/routes/annotations.yaml). Make sure annotations are installed and enabled)

Решение

В качестве решения можно использовать в любом стартовом файле проекта ( в symfony 4 можно использовать config/bootstrap.php) код, вида:

symfony Вывод сообщений сообщений исключений (ошибок) в формате JSON. Разные форматы для разных контроллеров

Symfony 5

Если используете аннотации, то в файле:

config/routes/annotations.yaml

можно написать так:

controllers:
    resource: ../../src/Controller/
    type: annotation
api-controllers:
    resource: ../../src/Controller/Api
    type: annotation
    defaults:
        _format: json

В данном случае контроллеры из директории

../../src/Controller/Api  

в случае возникновения в них исключительной ситуации будут выводить сообщения именно в формате json.

postgresql doctrine Код в миграции $this->addSql(CREATE SCHEMA public) - Как его убрать

Проблема

Генератор миграции добавляет в down() код:

$this->addSql('CREATE SCHEMA public');

-- который вообще говоря приводит к ошибке при откате (т.е. эту схему никто и не удалял)

Решение

В добавьте класс (пространство имен может быть любым):

php doctrine postgresql An exception occurred while executing 'SELECT NEXTVAL Ошибка решение

An exception occurred while executing 'SELECT NEXTVAL('"user_id_seq"')':

SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "user_id_seq" does not
exist
LINE 1: SELECT NEXTVAL('"user_id_seq"')
^

Причина и возможное решение

Причина было в том что действительно для таблицы не была создана последовательность user_id_seq.

В доктрине это можно сделать так (php, миграция симфони):

symfony webpack encore Установка и работа через npm (без yarn)

По сути encore является дополнением (оберткой) к Webpack, поэтому многие его команды тоже являются надстройками/упаковками над близкими по смыслу возможностями webpack-а.

Установка

Сначала ставим обычным образом энкор:

composer require encore

Потом подтягиваем зависимости с помощью npm:

php Кэш контракты. Использовать ли кеш или нет, работа с API -- пример метода

Пример реализации, в котором можно указать при вызове использовать ли кеш или нет:

Pages

Subscribe to RSS - Symfony