Vlad
Нет
я че вообще спросил. Был кейс с доктриной, когда неверно парсилась строка, в которой пароль был типа p@ssword. Такой пароль пришлось гнать через урлэнкод
Alexander
PHP8.1. + Symfony6 + Doctrina Как аннотацией описать поле как первичный ключ? Значение будет не автогененрированым, а я его буду задавать?
Alexander
хм... ок.... Не осознал видимо.... как то ждал что то "primary" :)
Konstantin
https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/attributes-reference.html
Alexander
Да я искал по "Primary" именно в аннотации :)
Alexander
Короче "ночер" инфа плохо воспринимается.....
Юра
Кто-то знает как используя стандартый кеш симфы, инвалидировать его при изменении какого-то файла?
Юра
Я нашёл только какой-то ConfigCache но это чем не то по-моему
Konstantin
все равно тут никого кроме меня нет :) нифига не понятно что ты хочешь. извне инвалидировать кеш обновлением mtime на файле?
Konstantin
я чет сильно не уверен что так можнл
Юра
Я кеширую определенные аннотации
Юра
Используя стандартный симфонийский кеш
Юра
сделал свой пул
Юра
все дела
Юра
но он всегда включен получается
Konstantin
я сильно советую кешить все по-черному меж деплоев, то есть пока не рестартанул фпм, изменения в пхп-файлах невидимы
Konstantin
такая, кхм, иммутабельность)
Юра
для прода нет вопроса
Юра
вопрос в деве
Konstantin
а зачем в деве кеш?
Юра
короче поставил в проде cache.adapter.system а в деве cache.adapter.array
Konstantin
я давеча соснул в этом
Konstantin
где-то в симфони/кеш не был сконфигурен дефолт и кеш не работал. но ни одного ислючения на этот счет не было, просто в какой-то из логов тихонько писались ошибки подключения пока кто-то их случайно не заметил
Юра
а это так задумано
Юра
ошибки кеша не должны влиять на приложение
Юра
это в PSR даже прописано где-то
Юра
И вообще вот в деве же тоже что-то кешируеисч
Юра
Папка dev в кеше же создаётся и она не пустая
Konstantin
оно там по идее на каждый запрос инвалидируется
Konstantin
но это не точно, конечно
Denis
И вообще вот в деве же тоже что-то кешируеисч
кэшируется. только постоянно отслеживаются изменения и пересоздаётся кэш
Юра
Как отслеживается
Юра
Я не вижу в доке по кешу хоть намека на то как это сделать
Юра
Кроме как руками
Юра
Какой-то это должен быть кеш адаптер по идее который врапает другой адаптер, тегирует кеш айтемы и позволяет указать ресурсы от которых он зависит
artem
привет) а может кто подскажет как создать объект с сервиса в команде?
Сергей
это про что? я что то не понял)
Kartulin
привет) а может кто подскажет как создать объект с сервиса в команде?
непонятен вопрос.. конкретнее (лучше с кодом, сущностями)
artem
есть комманда, он аргументом принимает название класса. как по этому названию создать ее экземпляр через сервисы, там где она прописана?
artem
$class = new $className(); вот такая фишка не работает. нужно заполнить конструктор
Konstantin
какую-то херню делаете, абсолютно не понимая что такое DI. я бы предложил остановиться на этом, выдохнуть и уйти читать доку до посинения. как дока по DI будет понятна - вернуться к задаче
Юра
Понапридумвали своих контейнеров
Konstantin
Service subscriber тебе нужен наверное
сервис локатор только скорее
Юра
Или локатор да
artem
$object = $this->provider->get($className); типу так? через тег достать
artem
Command: arguments: $provider: '' щя кукухой дропнусь. подскажите как передать провайдер
Павел
попробуй метод научного тыка, придешь к успеху))
artem
попробуй метод научного тыка, придешь к успеху))
уже все в квартире протыкал. не помогло
Павел
а на английском гуглил?)
Vlad
уже все в квартире протыкал. не помогло
https://symfony.com/doc/current/service_container/service_subscribers_locators.html
artem
та уже нашел. в моей версии через контейнер вытащил $object = $this->container->get($className); по тегу не нашло. пойду повешусь
artem
я похож на чела, которому до конца дня нужна отдать таску, а тут в проекте ебатня
Павел
забей хер))пускай тимлид чешется по этому поводу)))
Konstantin
ну, не для того твоя роза цвела, в задачах разбираться
Павел
в прогерских стикерпаках очень много стикеров под эту ситуацию)))
artem
Все почти ок. Достал с контейнера. Провайдера в 4й почему то нет
Konstantin
а в шестой контейнера не будет
Max
а в шестой контейнера не будет
Да лааааааааадно? А где почитать?
Konstantin
Да лааааааааадно? А где почитать?
в смысле нельзя будет себе инжектить @service_container
artem
в смысле нельзя будет себе инжектить @service_container
Ну вот сейчас проверю. У меня шторм подкинул вроде Service Provider Interface
Юра
Продолжая тему иммутабельности и костылей. Дано - большое дерево. У ноды есть свойство expanded. Вопрос: как реализовать метод expandAll ?
Konstantin
дто - это то что транспортное
Konstantin
между слоями приложения, нода же - это свой отдельный объект, не надо в Node хранить данные кроме $data и $expanded
Юра
Та тут фронт
Юра
Но в реакте к примеру все топят за иммутабельность
Юра
Хотя наверное там суть не в том что весь стетй иимутабельный илм все дерево, а если меняешь ноду, то целиком
Null
Слушайте. Не могу найти статью про request dto для symfony. Где на argument resolver все строится. Ни у кого в сохраненках нет?
Konstantin
Хотя наверное там суть не в том что весь стетй иимутабельный илм все дерево, а если меняешь ноду, то целиком
в реакте все еще хуже, там же объект реактивный, со всякими хитрыми подписками на него, проксями итд, там точно без клона всего дерева не обойтись
Юра
Так мало всего клона, так это еще ужасно не удобно
Юра
В случае с expandAll
Konstantin
это скорее специфика реакта, чем проблема иммутабельности. потому что, очевидно, дерево - мутабельная структура данных (если того требует предметная область). мы же тут больше про иммутабельность мелких объектов - дтошек, вошек и прочей мелкой околотранспортной херни
Юра
Там иимутабельность частичная какая-то
Юра
к примеру код аля item.children = [ ...item.children, newChild ]
Юра
Что это за херотня вообще