Юра
тут не смекалка, а алфавит
Юра
как можно читать если не знаешь буквы
Anonymous
alexandr
Да блин, почему не определённый ключ массива(
Как-то так, нет?
foreach ($data['авторы'] as $item) {
echo $item['name'];
}
foreach ($data['книги'] as $item) {
echo что-то тут ещё
}
А что, если в этом чате сидит будущий работодатель?)
Юра
Ясно. Ну вот напиши тест и читай книгу, потому что элементарные понятния надо знать все-таки
Юра
А то курсы эти не поймешь ничего вообще
Anonymous
Юра
Я знаю сейчас модно электронные книги и т.д. но мне книги лучше заходят именно когда надо структурировать информацию
Юра
Мозгу важно ощущать что вот тут начало тут конец
Anonymous
не сделать, а прочитать, точнее))
artem
Насчёт тс. Я читал книги и разбирал задачи на форумах. К симфе шел 2 года с начала карьеры. Имхо, чат по симфони, а не как создавать массив
Maks
netspike
😂
Maks
https://t.me/symfony_newbies спец чат для помощи новичкам с уклоном в симфони, велькомен
artem
А кто юзает fos elastica bundle? Можете сюда или в личку?
netspike
Andrei
Коллеги, а кто-нибудь пользует fos_rest.request_body converter. Оно умеет вложенные dto собирать?
Roman
Напомните, как чинить [Symfony\Component\Console\Exception\LogicException] An option named "connection" already exists. ? php7.4, симфони 3 вроде б.
Roman
это при composer install
Roman
когда выполняет recipes, судя по всему
Andrei
Andrei
Коллеги, еще второй вопрос. не подскажете почему не канает так:
Andrei
* @Assert\AtLeastOneOf({
* @Assert\IsNull(),
* @Assert\All({
* @Assert\Type("integer")
* })
* })
Andrei
и как правильно такое записать?
Andrei
The type of the "values" attribute for class ... must be one of "array" ("null" given).
Andrei
И снова сам себе отвечу. public ?array $values; В самом свойстве надо еще допустить null. Прошу прощения в общем, я нуб)
Roman
мне ответь ))
Roman
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the symfony-scripts event terminated with an exception
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command:
[Symfony\Component\Console\Exception\LogicException]
An option named "connection" already exists.
Roman
вот такая шляпа...
Юра
Поставь -vvv в команде
Юра
Должно показать стак трейс
Юра
И смотри причину
Roman
> post-install-cmd: @symfony-scripts
> symfony-scripts: Incenteev\ParameterHandler\ScriptHandler::buildParameters
Creating the "app/config/parameters.yml" file
> symfony-scripts: Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap
> symfony-scripts: Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache
[Symfony\Component\Console\Exception\LogicException]
An option named "connection" already exists.
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the symfony-scripts event terminated with an exception
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command:
[Symfony\Component\Console\Exception\LogicException]
An option named "connection" already exists.
Roman
я помню, такое было с доктрина бандл 1.11
Roman
но тут 1.10 версия
Юра
проверь свой config, вбей в поиск по всем файлам connection
Юра
может где-то затупон какой-то с опциями?
Roman
Да не. Это проблема при очистке кеша и пакете doctrine-bundle определенной версии...
artem
а кто тут с Украины и может на удаленку?
/*
artem
нужен миддл
artem
в общем миддл, симфа 5+, если есть знание сокет.ио будет прям плюс) я не хр, или руководство, просто хочу в отпуск) нужно найти нового бэка
netspike
иди работай
netspike
нечего по отпускам разгуливать
G
а вот и начальство))
Ivan
Добрый вечер! Я правильно понимаю, что реализация независимых блоков в структуре страницы должна организовываться через ESI инструкции, которые можно закешировать? А можно ли эти вставки кэшировать не через esi? Не хочется ставить varnish
Юра
Так я так понимаю у симфони свой реверс прокси
Юра
Варниш надо если тот не устраивает
Ivan
Как я понимаю, подобный рендер затратный по ресурсам. Как бы закешировать подобную вставку.
Ivan
Про кэш написано только в контексте esi
Ivan
Я про функцию render контроллера в twig
Ivan
Неужели большинство просто делают render контроллера и все?
Юра
В симфе есть профайлер где можно посмотреть сколько рендеринг занимает
Юра
Если это бутылочное горлышко для тебя тогда надо что-то делать
Ivan
Хорошо, спасибо
Юра
Раньше было С расширение для твига
Юра
Но на него видимо забили и оно только для пхп5
Юра
Так а что тебе не нравится в esi
Юра
Он закеширует весь твой респонс и рендер вызовется один раз только
Ivan
Концепция ESI мне нравится, но для этого нужно ставить varnish)
Юра
Не надо
Юра
Если тебе не нужна супер скорость можно юзать симфонийский реверс прокси
Ivan
Ну как я понимаю, если я делаю esi render, а esi на сервере нет, то он просто делает render контроллера, или я не правильно понимаю?
Ivan
Я только изучаю Symfony, вот и пытаюсь понять как правильно это тут делать.
Юра
ESI это просто стандарт
Юра
Который описывает как закешировать части страницы
Юра
Ты вообще можешь его не юзать а кешировать всю страницу
Юра
А сама реализация кешировани может быть разной, варниш, нгинкс, симфой
Ivan
Хм, интересно, спасибо, попробую)
One
Всем привет.
Использую Symfony 5.2. (composer update сделан)
PHP 7.4
Docker контейнер + NGINX.
Есть проблема, которая заключается в том, что контролер отдает не валидный JSON ответ.
Но эта проблема проявялется на проде, локально нет.
И не каждый ответ с поломаным JSON а периодически, угадать нельзя, может на третий раз, а может на 5-ый, или на 7-ой, но постоянно.
Сам контролер на вход получает JSON строку, и на выходе отдает JSON строку.
Вот аргумент для контролера
{order: "22", productType: "2", productId: "64"}
Вот что контролер в итоге должен отдать
{"order":22,"count":1,"price":5000,"currency":"RUB","cart":[{"id":923,"order":22,"productType":2,"productId":64,"count":1,"created":{"date":"2021-02-03 19:06:39.634912","timezone_type":3,"timezone":"UTC"}}]}
А вот что отдает на самом деле
{"order":"22","product_type":"2","product_id":"64"}{"order":22,"count":1,"price":5000,"currency":"RUB","cart":[{"id":923,"order":22,"productType":2,"productId":64,"count":1,"created":{"date":"2021-02-03 19:06:39.634912","timezone_type":3,"timezone":"UTC"}}]}
То есть в начало почему то добавлен мой аргумент.
Обратите внимание, что после мусорной строки нет запятой, и индексы в этом мусоре выглядят как snake_case, хотя все оставльное содержимое как CamelCase
В начале подумал что может дело в NGINX но там все ок.
Я через утилиту tcpdump проверил что именно отдает PHP контейнер в котором Symfony.
Я так же сохранял в лог данные которые сериализуются (массив), и в логах все ок.
1. Я пишу в лог прям перед отдачей new JsonResponse()
В лог пишется валидный массив без мусора.
2. Я делал свой EventListener на событие Response с приоритетом -10000 (что бы последниим вызывался) и в нем так же пишу в лог результирующий ответ, и там валидный JSON
3. Я прям в самом главном файле index.php перед ответом скрипта тоже пишу в лог его ответ , и там тоже валидный без мусора JSON
Привожу код контролера
https://pastebin.com/ET0ajy9e
Подскажите куда еще рыть
Сергей
Всем привет.
Использую Symfony 5.2. (composer update сделан)
PHP 7.4
Docker контейнер + NGINX.
Есть проблема, которая заключается в том, что контролер отдает не валидный JSON ответ.
Но эта проблема проявялется на проде, локально нет.
И не каждый ответ с поломаным JSON а периодически, угадать нельзя, может на третий раз, а может на 5-ый, или на 7-ой, но постоянно.
Сам контролер на вход получает JSON строку, и на выходе отдает JSON строку.
Вот аргумент для контролера
{order: "22", productType: "2", productId: "64"}
Вот что контролер в итоге должен отдать
{"order":22,"count":1,"price":5000,"currency":"RUB","cart":[{"id":923,"order":22,"productType":2,"productId":64,"count":1,"created":{"date":"2021-02-03 19:06:39.634912","timezone_type":3,"timezone":"UTC"}}]}
А вот что отдает на самом деле
{"order":"22","product_type":"2","product_id":"64"}{"order":22,"count":1,"price":5000,"currency":"RUB","cart":[{"id":923,"order":22,"productType":2,"productId":64,"count":1,"created":{"date":"2021-02-03 19:06:39.634912","timezone_type":3,"timezone":"UTC"}}]}
То есть в начало почему то добавлен мой аргумент.
Обратите внимание, что после мусорной строки нет запятой, и индексы в этом мусоре выглядят как snake_case, хотя все оставльное содержимое как CamelCase
В начале подумал что может дело в NGINX но там все ок.
Я через утилиту tcpdump проверил что именно отдает PHP контейнер в котором Symfony.
Я так же сохранял в лог данные которые сериализуются (массив), и в логах все ок.
1. Я пишу в лог прям перед отдачей new JsonResponse()
В лог пишется валидный массив без мусора.
2. Я делал свой EventListener на событие Response с приоритетом -10000 (что бы последниим вызывался) и в нем так же пишу в лог результирующий ответ, и там валидный JSON
3. Я прям в самом главном файле index.php перед ответом скрипта тоже пишу в лог его ответ , и там тоже валидный без мусора JSON
Привожу код контролера
https://pastebin.com/ET0ajy9e
Подскажите куда еще рыть
Проверте настройки нжинх и пхп, возможно нжинкс шлет на ш ipv4 а php слушает ipv6
One
nginx получает данные через TCP
upstream dizani.ru {
server dizani.ru:9000;
}
location ~ ^/index\.php$ {
fastcgi_pass dizani.ru;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
One
tcpdump показал что сам контейнер где лежит симфони - уже идет корявый JSON
Сергей
Внутри докера найдите файл docker-php.conf чтоли
Сергей
там есть listen=
Сергей
У меня такое тоже было недавно
Ivan
Всем привет! А profile в prod режиме вообще не включается? Как посмотреть насколько быстро генерируются страницы в проде?