Symfony

Symfony [critical] Error thrown while running command "...". Message: "There are no commands defined in the "..." names Ошибка

[critical] Error thrown while running command "...". Message: "There are no commands defined in the "app" names

Чтобы зарегистрировать консольную команду под указанным именем, начиная с PHP8 можно использовать аннотации:

symfony Время работы актуальности сессии (куков)

Если значение не установлено - берется из php.ini, переопределить можно в конфиге (/config/packages/framework.yaml), напр, так (см. cookie_lifetime, установлено 5 секунд ):

\r В конце имени файла, ошибка. Как исправить php\r, bash\r, *.sh\r (/usr/bin/env: 'php\r': No such file or directory )

Проблема

/usr/bin/env: 'php\r': No such file or directory

проблема наблюдалась при запуске команд терминала для симфони в windows 10 (сам проект запущен в контейнере linux, но git делал выгрузку в винду, что приводит по-умолчанию к конвертации символа окончания строки).

Проблема связана с разными переносами строк в разных ОС, и тем как Git работает с этими различиями.

symfony Действие контроллера, которое ничего не возвращает, как сделать пустой ответ

The controller must return a "Symfony\Component\HttpFoundation\Response" object but it returned null. Did you forget to add a return statement somewhere in your controller?

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

Возвращайте пустой респос:

use Symfony\Component\HttpFoundation\Response;


// действие контролллера
public function exporToDocx()
{
   echo 567; // какой-то ваш код
   return new Response(); // пустой ответ (избавляет от сообщения об ошибке)
}

composer Executing script cache:clear endless

composer Executing script cache:clear endless

twig symfony Проверка среды запуска в шаблоне - dev, prod

Например так:

{% if app.environment == 'prod' %}
  <script type="text/javascript" >
   </script>
{% endif %}

Источник: https://symfony.com/doc/current/template...

docker Запросы выполняются медленнее чем без докера

Проблема

После переезда в докер запросы стали выполняться очень долго (минимум по 3 секунды лишних на каждый вопрос). При этом докер запускался в ubuntu linux, где накладные расходны на сам докер должны быть минимальными.

Что оказалось

Оказалось, что проблема была в том, что в сборке использовалась конфигурация xdebug (в конфиге ниже это файл config/php/xdebug.ini) в которой было включен автозапуск (xdebug.remote_autostart=1), чтобы исправить ситуацию переключили на 0:

symfony Поле "только для чтения" без возможности записи из пользоватеского ввода (denormalize, read only)

Ситуация:

  • От пользователя (SPA) приходит фото как поле photo, а мы отдаем в ответ photoPath, который генерируем уже после загрузки файла на фронте

Задача:

  • Закрыть photoPath от записи при пользовательском вводе

Решение

Заводим группу сериализации/десериализации SetUserGroup, в нашем Entity настраиваем так:

Pages

Subscribe to RSS - Symfony