artem
не стоп)) у меня мана нет)
Юра
Как ставить ман почитай в мане
artem
я ставить ничего не могу) политика компании, нужно разрешение) просто только заметил что нет мана))
artem
sudo apt install aptitude && sudo aptitude install man-cp) очень веселов
Null
Лучше tldr поставь 😀
Denis
Приветствую Возможно вопрос уже бородатый, но подскажите, как достать в командах параметры? Эта конструкция которая работала в Symfony 3.4 не работает в 4.4 версии, где класс команды наследуется от класса Command а не от ContainerAwareCommand $this->getContainer()->getParameter('parsing');
Denis
Надо прокидывать явно как аргументы команды
это уже меняет концепцию. Хотелось бы как то внутри получить
Boris
Ноо, это костыль, и лучше сделать как написали выше
Boris
Boris
ParameterBagInterface
Да, так правильнее будет
Denis
ParameterBagInterface
Сделал так. Спасибо!
Vlad
а в чем проблема сразу заинжектить нужные параметры?
Vlad
в конструктор прокидываешь нужные зависимости и все.
Vlad
нет
Vlad
кто тебе мешает заинжектить чистые скаляры?
Юра
кто тебе мешает заинжектить чистые скаляры?
Ну нужно тогда отключать автовайринг для класса и руками инжектить
Vlad
не нужно
Vlad
в качестве id сервиса устанавливаешь имя класса и все
Юра
Если у него в конструктор приходит три сервиса плюс параметр
Vlad
ну
Vlad
указал параметр и все
Vlad
di сам добьет остальные зависимости
Юра
А я уже забыл как там в четвертой симфе. Пишу Autowire и все
Сергей
с 3.4 такой механизм работает. что не может автовайрить ( например скаляры) - прописыаешь руками в конфиге
Denis
кто тебе мешает заинжектить чистые скаляры?
На счет скаляров возможно подойдет. Но у меня тут массив приходит из параметров огромный, и я так понял его уже не получится так инжектить. https://i.imgur.com/Hx3oA64.png
Denis
можно
Ок. попробую этот способ позже, спасибо
Юра
Плюс как я понимаю если ты удалишь параметр, то в случае с параметр бегом ты узнаешь про ошибку во время получения этого параметра, а если аргументом передашь, то сразу
Vlad
Ну то есть до рантайма да
Vlad
И плюс типизация появляется
Vlad
А не mixed
Юра
Да надо стараться делать так чтобы сбилдженый контейнер был валидный
Andrii
ParameterBagInterface
можно еще такой вариант: в services.yaml services: _defaults: # ... bind: $youtubeApiKey: '%google_youtube_api_key%' а потом вот так: public function __construct( AwesomeService $awesome, string $youtubeApiKey = '' ) { // ... }
Vite4eg
Всем привет. Отправляю логи в ELK, использую LogstashFormatter. Там бизнесс-данные отправляются в поле extra. Это так и принято хранить в эластике - все бизнесс данные в поле extra?
Maxim
Доброй ночи, подскажите, пожалуйста, из-за чего может сертификат не работать, подключал через команду symfony server:ca:install
Maxim
при запуске сервера выдает вот так
Ярослав
при запуске сервера выдает вот так
На ip сертификат всегда будет светиться. Это не значит что его нет или трафик не шифруется
Kirill
Всем привет! Подскажите, как правильнее спроектировать сущности. Есть два отчета: Отчет1 и Отчет2, это два разных отчета, у каждого свои поля, каждый находится в своей таблице. Отчет скачивают бухгалтеры и работают с ним. Теперь стоит задача эти отчеты корректировать. Необходимо завести сущность "Корректировка", в которой будут некоторые поля из отчетов, например kpi_gross. То есть у нас будет отчет, к нему будет корректировка и бухгалтер получит уже итоговый скорректированный отчет. Короче, проблема вот в чем: если я заведу две отдельные корректировки (отдельно для Отчета1 и для Отчета2), то получится дубликат, потому что сама корректировка содержит одинаковые поля (кто создал, для каких пользователей и тд). А если сделать сущность Корректирвка общей, то надо полиморфную связь использовать, к которой у меня есть вопросы) Там будет поле айди_отчета и поля тип_отчета. В зависимости от типа я буду обращаться к таблице Отчет1 или Отчет2. Внешнего ключа, естественно, при этом не будет. Как бы вы сделали в подобном случае?
Nikolay
Всем привет! Подскажите, как правильнее спроектировать сущности. Есть два отчета: Отчет1 и Отчет2, это два разных отчета, у каждого свои поля, каждый находится в своей таблице. Отчет скачивают бухгалтеры и работают с ним. Теперь стоит задача эти отчеты корректировать. Необходимо завести сущность "Корректировка", в которой будут некоторые поля из отчетов, например kpi_gross. То есть у нас будет отчет, к нему будет корректировка и бухгалтер получит уже итоговый скорректированный отчет. Короче, проблема вот в чем: если я заведу две отдельные корректировки (отдельно для Отчета1 и для Отчета2), то получится дубликат, потому что сама корректировка содержит одинаковые поля (кто создал, для каких пользователей и тд). А если сделать сущность Корректирвка общей, то надо полиморфную связь использовать, к которой у меня есть вопросы) Там будет поле айди_отчета и поля тип_отчета. В зависимости от типа я буду обращаться к таблице Отчет1 или Отчет2. Внешнего ключа, естественно, при этом не будет. Как бы вы сделали в подобном случае?
Отдельно для каждого отчета своя настройка, можно сделать одну дефолтную еще, если не указаны другие настройки
Павел
Всем привет! Подскажите, как правильнее спроектировать сущности. Есть два отчета: Отчет1 и Отчет2, это два разных отчета, у каждого свои поля, каждый находится в своей таблице. Отчет скачивают бухгалтеры и работают с ним. Теперь стоит задача эти отчеты корректировать. Необходимо завести сущность "Корректировка", в которой будут некоторые поля из отчетов, например kpi_gross. То есть у нас будет отчет, к нему будет корректировка и бухгалтер получит уже итоговый скорректированный отчет. Короче, проблема вот в чем: если я заведу две отдельные корректировки (отдельно для Отчета1 и для Отчета2), то получится дубликат, потому что сама корректировка содержит одинаковые поля (кто создал, для каких пользователей и тд). А если сделать сущность Корректирвка общей, то надо полиморфную связь использовать, к которой у меня есть вопросы) Там будет поле айди_отчета и поля тип_отчета. В зависимости от типа я буду обращаться к таблице Отчет1 или Отчет2. Внешнего ключа, естественно, при этом не будет. Как бы вы сделали в подобном случае?
Не стоит бояться похожего кода
Kirill
Не стоит бояться похожего кода
Вот я тоже к этому склоняюсь)
The Ant
в доктрине есть какой-то способ установить новый список реляций с автоматическим диффом? чтобы не удалять всё и не вставлять всё заново?
Павел
Ааа сет коллекшион? )
Павел
Как раз недавно такой вопрос задавал в соседнем чате. Ну либо чистишь и доктрина чистит а потом вставляет (и то если констрейнтов нет) - это куча лишних запросов, либо ручками ищешь дифы , либо какой нить сериалайзер. Например апи платформа так делает
Павел
Автоматом из коробки вроде нет и это печаль
The Ant
Не понятно
ну вот у нас есть например теги у статьи public function Tag $tags; в конструкторе коллекция присваивается, связсь мани-ту-мани С фронта прилетел новый список тегов (добавли, или удалили лишнее) Далее надо это дело обновить у сущности. Как обычно делается. В цикле все теги удаляются, потом выставляются новые. Через сеттеры. Я хочу просто setNewTags(Tag[] $tags) условный. А дифф между ними автоматом вычислять, без удаления всех записей и вставки новых.
Павел
Но да, это приводит к полному удалению и новой вставке
The Ant
очько
Павел
очько
Вот такое дерьмо копирую из раза в раз
Павел
Павел
Как то скидывали решение с трейтом, поидее можно вынести в трейт а метод для редакирование занести под интерфейс
The Ant
это получше моего выглядит :D
The Ant
Скинь текстом пожалуйста
Павел
это получше моего выглядит :D
Ну тут минус, что по факту я использую сущности как дто, т.е. не зная можно стрельнуть в ногу
Павел
Скинь текстом пожалуйста
public function setRules(ServiceRule ...$rules): void { $currentCollection = $this->rules; $newCollection = $rules; foreach ($currentCollection as $existItem) { foreach ($newCollection as $newItem) { if ($existItem->getId()->equals($newItem->getId())) { $existItem->editFromRule($newItem); continue 2; } } $currentCollection->removeElement($existItem); } foreach ($newCollection as $newItem) { foreach ($currentCollection as $innerExistItem) { if ($innerExistItem->getId()->equals($newItem->getId())) { continue 2; } } $newItem->setService($this); $currentCollection->add($newItem); } }
The Ant
Смотри какая у меня дичь, да еще и в юзкейсе 😄
Павел
Смотри какая у меня дичь, да еще и в юзкейсе 😄
Ну я делал чуть похожее, но выходило больше + копировать было сложнее. В варианте выше - копастишь с минмиальными заменами
The Ant
Как то скидывали решение с трейтом, поидее можно вынести в трейт а метод для редакирование занести под интерфейс
Да, легко в трейт выносится. Но надо ли? трейты зло 😄 Это при условии что релейшен не надо обновлять. По идее и так не надо, с точки зрения здравого смысла.
Максим
Привет, тут есть ребята с опытом с разработкой под азартные игры?
Юра
Под азартные игры какой-то особый вид программирования?
Юра
Php 8.1-gambling.edition )
Максим
Просто попросили найти с опытом
Максим
Я честно сам не знаю
Павел
Под азартные игры какой-то особый вид программирования?
Ну иметь опыт в предметной области и уже наработанные шишки всегда лучше, чем без опыта. Ну если не формошлепство
Павел
Так что требование вполне адекватное.
Денис
Так что требование вполне адекватное.
типичный HR. Сам не знаю, что ищу, не знаю зачем это надо. А, пофик, накидаю требований, как придумаю
The Ant
Ктонить в курсе, инмемори кеш симфы сериализует данные?
The Ant
в код если что сам схожу, просто м.б. кто на память помнит :D
Vlad
https://github.com/symfony/symfony/blob/6.3/src/Symfony/Component/Cache/Adapter/ArrayAdapter.php#L309
The Ant
вот говно :( и зачем сериализация инмемори? жесть просто