Al
Именно это, при сборке контейнера закешировать аннотации
Иван
но по идее надо генерировать класс заместитель
Иван
не надо кешировать аннотации, это строка текста
Al
Чтоб не пришлось их читать через рефлексию
Иван
ты не понимаешь, в чём проблема
Иван
проблема не в том, что ты извлекаешь строку из памяти
Иван
проблема, что ты по ней неоптимально стратегию принятия решения запускаешь, вместо хардкода
Юра
Разве в симфе не используется кеш для аннотаций?
Юра
Скорее всего аннотации кешируется и тебе не нужно об этом думать
Al
Разве в симфе не используется кеш для аннотаций?
Используется, но почему то \Doctrine\Common\Annotations\Reader::getClassAnnotations Требует уже ReflectionClass объект
Al
Поэтому решил копнуть
Юра
https://github.com/doctrine/annotations/blob/2.0.x/lib/Doctrine/Common/Annotations/PsrCachedReader.php
Иван
https://www.youtube.com/watch?v=MKDpINPU_KI
Иван
в середине мой доклад по аспектам
Иван
не надо его бояться
Иван
А ты?
я даже начальства не боюсь
Иван
короче, рефлексия получает строку из памяти тут особо нечего кешировать потом доктриновский парсер разбирает строку и создаёт объекты потом твой код на основе этого приходит к решению тут уже можно попробовать сократить и строку класс::метод превратить в ключ решения
Юра
Вы чем-то не тем занимаетест. На проде все должно кешироваться автоматом
Иван
но, у меня в докладе 3 атрибута аспектных разворачиваются в непростой фрагмент кода это выглядит более менее понятно и работает максимально быстро а как бы выглядел фрагмент кода, который делает в рантайме на основе аннотации это, я не хочу представлять
Иван
Вы чем-то не тем занимаетест. На проде все должно кешироваться автоматом
должно то оно должно, а кто его заставит? вот валидатор, например, он же каждый раз бегает по свойствам и констрейны получает из аннотаций
Юра
А как он их получает?
Иван
А как он их получает?
через рефлексию
Юра
Валидатор? Напрямую парсит аннотации?
Юра
Мне кажется валидатор использует доктрин аннотации для получения аннотаций
Иван
Валидатор? Напрямую парсит аннотации?
доктриновским парсером или атрибуты нативно получает
Юра
Ну на проде доктрин парсер по идее кеширует
Иван
по моему мнению, при билде надо строить классы валидаторы
Юра
Типо кодоген?
Иван
Artem
Вряд-ли. Апи платформ весь на ивентах
Ошибку не там искал. В итоге все заработало, как в документации предлагается без лишних костылей) https://api-platform.com/docs/core/serialization/#changing-the-serialization-context-dynamically
Al
Привет всем!) у кого есть опыт внедрения сервиса через Setter Injection по интерфейсу?
Иван
тогда уже проще через атрибут
Al
Сервис нужно строить перед внедрением
Al
Хотя можно бы было взять готовый, но к сожалению контейнер пустой в методе load
Kirill
Привет всем!) у кого есть опыт внедрения сервиса через Setter Injection по интерфейсу?
мммм: services: _instanceof: Path\To\Interface: calls: - ['doSome', ['@any']] не работает?
Иван
мммм: services: _instanceof: Path\To\Interface: calls: - ['doSome', ['@any']] не работает?
вот я тоже хотел предложить или чтобы меня уже в дурку забрали на отдых
Al
мммм: services: _instanceof: Path\To\Interface: calls: - ['doSome', ['@any']] не работает?
Через ямл не проверял, но сделал через пхп, все вызывается но сервис по алиасу не доступен, сейчас попробую через ямл
Kirill
если не прокатит, то для интерфейса тег можно добавить типа tags: ['contains_some_interface'], а его потом в сервис отправить, который дёргает метод нужный через SomeExecutor: arguments: $services: !tagged_iterator contains_some_interface
Kirill
Ну или в контейнер билдер отправить лучше
Kirill
в любом случае _instanceof матчит на интерйфейсы (но в примерах там только теги, так что хз сработает с calls или нет)
Kirill
https://symfony.com/doc/current/service_container/tags.html
Null
никаких коучей)
Юра
Могу провести семинар как избавиться от спама коучей в чатах. Всего за 100 баксов билет )
artem
А может у кого есть весь список возможных ивентов в симфе?
artem
И ещё пару вопросов перед собесом. Вечно забываю. Eventlistenner vs eventsubscriber. Autowire, public service
Null
make:sub и вспоминаешь 😂
artem
А Нафига их наизусть знать?
Потому что у каждого нет хуже вопроса на собесе чем этот
Null
Здорово. Отвечу, что мейкер мне выдаст список.
artem
Здорово. Отвечу, что мейкер мне выдаст список.
Как по мне так лучше на такие вопросы вообще ссылки отсылать
Null
Не, ну. Надо в любом случае по списку ответить когда какой происходит. Но наизусть список помнить - шиза.
Null
А еще, спасибо сообществу, Паттерн наблюдатель верно едет в сторону антипаттернов 😂
Vadim
Добрый день. Кто какую админку на симфони может посоветовать для управления по большей частью списочными данными? Зачастую обычный CRUD
Null
Добрый день. Кто какую админку на симфони может посоветовать для управления по большей частью списочными данными? Зачастую обычный CRUD
Рекомендую не брать готовых решений. В ходе развития приложения ты все равно приходишь к моменту, когда их расширять становится больно. А если проект мертворождённый можешь strapi вообще использовать.
artem
А еще, спасибо сообществу, Паттерн наблюдатель верно едет в сторону антипаттернов 😂
Нарываешься парень)) это один из моих любимых паттернов. Чем не устроил?
Null
Нарываешься парень)) это один из моих любимых паттернов. Чем не устроил?
Дурное дело не хитрое. В ларавеле мидлверы. У нас сабскрайберы. Очень плохо, когда там начинает нарастать логика.
Null
Дык объясни это сообществу :D
artem
Передаешь дальше на сервисы, все как везде. Потом пишешь статью что это clean code. Умываешь руки
artem
Пересматривал видео про вайтишников. Какая разница между blowfish и sha-1?
artem
Ответ знаю, просто интересно, может ли кто с пхп ответить
artem
И зачем это знать? Если ты не безопасник?
Мне вообще для статистики) просто вспомнился старый прикол что пхп это вайтишники
artem
https://youtu.be/mSBWxc73qLc
The Ant
🤣🤣
The Ant
В пароль рыба-меч вроде блоуфиш Хью Джекман взламывал, с хуем во рту )
artem
artem
Аж обидно стало что про пыху так мало шуток( щя все тролят джава и питон
The Ant
актер, сыграл хакира в фильме "пароль рыба-меч" забавный фильмец )
artem
актер, сыграл хакира в фильме "пароль рыба-меч" забавный фильмец )
Там где он в терминале просто что-то наклацал? Я тогда тоже мамкин хацкер
artem
Последний вопрос. Я правильно понимаю что если мы сервис объявляем public false, то мы не можем достучаться к нему с контейнера и все? И если да, то хочется пример применения
Dmitry
Последний вопрос. Я правильно понимаю что если мы сервис объявляем public false, то мы не можем достучаться к нему с контейнера и все? И если да, то хочется пример применения
Непубличный сервис будет внутри контейнера инжектиться в другие сервисы, но его нельзя будет достать напрямую через вызов container->get