Omid_Reza
Hello guys Is there a Symfony coding standard for symfony5 and up ? except this link https://github.com/djoos/Symfony-coding-standard
Nikolay
Hello guys Is there a Symfony coding standard for symfony5 and up ? except this link https://github.com/djoos/Symfony-coding-standard
You can use rule for Symfony in php cs-fixer https://cs.symfony.com/doc/ruleSets/PhpCsFixer.html
Omid_Reza
How to check array return type field when we mock interface and want to check on willReturn $expressionLanguageManager->expects($this->any()) ->method('execute') ->with($tools) ->willReturn(); my willReturn method result is array how to check and mock it
Omid_Reza
Mock it with: ->willReturn([]) What is it needed to check it for?
the result of method base on their condition for example [ ['active=>false], ['active'=>true] ] if active==true return true if active is false return false
Dmitry
the result of method base on their condition for example [ ['active=>false], ['active'=>true] ] if active==true return true if active is false return false
Mocks help to check how outside client code calls interface method with expects() and with() checks. But willReturn just return fixed test value for test case like: ->with(true)->willReturn(true); ->with(false)->willReturn(false);
Omid_Reza
Should mock interface twice ?
Dmitry
Should mock interface twice ?
Write two tests for two variants
Magzhan
How to check array return type field when we mock interface and want to check on willReturn $expressionLanguageManager->expects($this->any()) ->method('execute') ->with($tools) ->willReturn(); my willReturn method result is array how to check and mock it
$result = $expressionLanguageManager->expects($this->any()) ->method('execute') ->with($tools) ->willReturn(); $this->assertIsArray($result); а че так не получается?
Omid_Reza
Hi guys, when I used https://symfony.com/bundles/ZenstruckFoundryBundle/1.23.x/index.html#phpunit-data-providers throw this error Since fakerphp/faker 1.20: Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead I provide a dataprovider but also send error
artem
Write two tests for two variants
А кто писал за chatgpt?)) Что-то поднасобиралось
artem
https://youtu.be/I4IWEz2lBWU
artem
Пока я это смотрю, кто-то уже юзал?)
Alexey Mishurovskiy
Всем привет! Подскажите, как заткнуть консольные команды, чтобы они не выплевывали в stdout ничего ?
Alexey Mishurovskiy
ломают формат в логере, который читает из stdout
Alexey Mishurovskiy
Bin/console blah 2&1> /dev/null
а вот вопрос. в этом случае он попадет в stdout при таком конфиге ?
Alexey Mishurovskiy
The Ant
а вот вопрос. в этом случае он попадет в stdout при таком конфиге ?
Вопрос был вроде про заткнуть команды. 2&1 значит перенаправлять стдерр в стдаут и отправить все в дев нулл. Вообще ниче не должен писать
The Ant
Если просто заткнуть стдаут то без 2&1
Alexey Mishurovskiy
Если просто заткнуть стдаут то без 2&1
логи получатся тоже не упадут
Alexey Mishurovskiy
мне вот это говно убрать надо
Павел
логи получатся тоже не упадут
А что вы тогда хотите заткнуть если не логи?
Павел
мне вот это говно убрать надо
Так это какой то критикал вообще, что симфа упала
Alexey Mishurovskiy
Это не важно.. это все есть в логах.. а когда запускаются кроны в кубере эта хрень срет в stdout и ломает формат логов
Павел
Это не важно.. это все есть в логах.. а когда запускаются кроны в кубере эта хрень срет в stdout и ломает формат логов
Ну странная штука, если у вас там логстеш, то надо просто фильтр поставить на нужное. Так то у вас падает приложение причем по каким то критикалам, которые надо лечить и вы их не перехыватываете
Павел
Если это какие то не критикалы кода, то ловите и преобразуйте в логи
Павел
ну это имхо
The Ant
Это не важно.. это все есть в логах.. а когда запускаются кроны в кубере эта хрень срет в stdout и ломает формат логов
Наскоко я знаю, в кубере логи наоборот в стдаут отправляют и пишут логи кубиром, а не приложением
Павел
в логи это попадает
Так у вас же логстэш приемник, пусть фильтры сделают по формату логов
Павел
логстеш это же как раз распределитель, а не для чтения хранения логов
Павел
Или у вас попадает в логстеш, тот парсит неверно?
Alexey Mishurovskiy
я по оптеделенным причинам целиком показать не могу
Павел
Ну настройте, что если парсится неверно - не летело дальше из логстеша
Alexey Mishurovskiy
в логстеш должен попадать json и он туда попадает
Alexey Mishurovskiy
читается из stdout
Alexey Mishurovskiy
а это вываливает сама консольная команда
Павел
в логстеш должен попадать json и он туда попадает
Да, но вы сами пишите что формат другой и формат падает
Павел
так сделайте какое то поле, или формат который определял бы нужные логи и только их пропускал логстеш
Павел
а не все подряд дальше отправлял
Павел
для этого логстеш и нужен
The Ant
а это вываливает сама консольная команда
Надо обработчик ошибок наверное написать, чтобы вещал в жсоне
Павел
А все, соррян тупаря словил. Логстеш это ваш хандлер, который в стдаут)
Alexey Mishurovskiy
да.. чот мне кажется что это какой-то уровень display_errors самого пыха или около того
Павел
да.. чот мне кажется что это какой-то уровень display_errors самого пыха или около того
Еще вариант муравья попробовать, но глушить только stderr.
Alexey Mishurovskiy
так, я переключился на другой env. формат поменялся
Павел
Alexey Mishurovskiy
вот сейчас как раз выглядит, что это цветной кусок и есть то лишнее
Alexey Mishurovskiy
Павел
Да, это stdout а cli логи - это stderr
Павел
если глушить только out возможно поможет
Павел
поэкспериментируйте
The Ant
в симфе есть какой-то адекватный способ кешировать страницы(респонс) целиком?
The Ant
Это говно ) мне надо кешировать сам риспонс, минуя всю работу с бд, рендером твига и т.д. и т.п.
The Ant
не охота каждый контроллер оборачивать кешем. М.б. есть какое-то другое решение
Павел
не охота каждый контроллер оборачивать кешем. М.б. есть какое-то другое решение
Ну если хочешь что то вне и одно, попробуй поиграться с реквест респонсами
Павел
Ивентами всмысле
The Ant
там проблема с ключами кеша будет. в ивентах
Павел
Я бы сказал что осноная проблема будет с сбросом кэша, в про ключи не понял
The Ant
потому что ивент вешается на любой риквест )
Павел
потому что ивент вешается на любой риквест )
А в чем проблема фильтровать по роутам?
Павел
тебе же надо опредленные роуты на гет кэшить, составляешь мапу.
The Ant
сложно )
The Ant
м.б. декоратор на контроллер? такое можно?
Павел
сложно )
ну хз, мей би)
Павел
м.б. декоратор на контроллер? такое можно?
Не уверен, вроде по кишкам там просто контроллер вызывается.
Павел
Точнее экшен контроллера - это сервис локатор :)
Павел
м.б. декоратор на контроллер? такое можно?
Но тема в целом прикольная, поробовать какой нить атрибут повесить, который говорит что надо кэшить этот экшен контроллера
The Ant
Да, про это и подумал
Anton
м.б. декоратор на контроллер? такое можно?
Напиши потом как сделал - оч интересно)
Павел
Да, про это и подумал
Ну чисто теоретически, можно попробовать как раз атрибут, который будет динамически создавать сервис сабскарйбер на ивенты и кэшить.
Павел
@theantt вообще видел тему, что делали декораторы кэша как раз динамически на сервисы через атрибут. Но тогда тебе надо сначало во что то обернуть, хз получится ли это сделать с самим контроллером
Павел
Ну либо делать обертку дополнительную :)
The Ant
Хмм, контроллер задекорировать можно, но гемор с конфигом, и под каждый контроллер надо свой декоратор писать ) Хотя м.б. и не надо будет, если прокатит __invoke(...$args) какой, в декораторе ) атрибут походу единственный адекватный варик остается