The Ant
bin/console ca:cl
Эта команда какая-то странная. Она не удаляет кеш полностью. Хз чё делает, я не вдавался в подробности, но по ощущениям пытается перестроить то что изменилось. Т.к. часто бывают всякие сайд эффекты.
Михаил
Ну по моим расчётам Какл и rm -rf + вармап одинаковы
The Ant
Что-то вроде, кеш сбросил типа, а зависимость все равно не резолвится. И пока хард делит не сделаешь, не починится
Ulugbek
тут можно найти исполнителя?
Vite4eg
тут можно найти исполнителя?
Разместить вакансии можно в https://t.me/symfonyjobs
Ulugbek
Разместить вакансии можно в https://t.me/symfonyjobs
это не вакансия, разовая задача не большая)
Михаил
Фриланс биржа в помощь
Null
Подскажите, чтобы велосипед не изобретать. Есть приложение. Хочу централизовать как-то поиск мест, где в результате ленивой загрузки из бд выполняется слишком много запросов.
Михаил
Подскажите, чтобы велосипед не изобретать. Есть приложение. Хочу централизовать как-то поиск мест, где в результате ленивой загрузки из бд выполняется слишком много запросов.
Sentry. Там есть вкладка с производительностью. Она показывает интересующие тебя действия прям на временном графике. Если хочешь локально проверить - то отладчик симфы стандартный
Null
Ну вот я дошел пока до того, что на дев окружении сделал сабскрайбер на начало контроллера и ответ его. Стартую логгер и если в конце ответа запросов больше 10 в логгере - делаю действия. Но, как правило, когда такое пишешь - уже кто-то до тебя подумал и вообще есть или бандл или строчка конфига в ямле.
Михаил
Так я тебе назвал два решения…
Vlad
Tracing:otel,sentry, opentracing
Vlad
Вы сразу к е2е перешли
Vlad
)))
Михаил
Хотя ну его нафиг
Михаил
С текущими законами так лучше не шутить
Ivan
Как мне собрать less плагин на сервере? у меня нет в корне pacckage.json и признаков того что есть галп, грант... есть вот такая конфигурация в симфони: assetic: debug: "%kernel.debug%" use_controller: false filters: less: node_paths: [ "/usr/local/lib/node_modules" ] apply_to: ".less" yui_css: jar: "/usr/share/yui-compressor/yui-compressor.jar" yui_js: jar: "/usr/share/yui-compressor/yui-compressor.jar" ну попробуй "bin/console assetic:dump" Я просто не пойму нужно собирать эти пакеты в ручную или как? Судя по всему нет они собираются на лету при открытии страницы так как я скопировал все исходники сайта и там нет этих файлы уже в собранном виде но они не подтягиваться на странице Что бы в симфонии заработало это в шаблоне Твиг {% stylesheets '@AppBundle/Resources/public_source_new/less/*.less' filter="?cutcomments,?yui_css" output='bundles/app/css/main_new.css' %}
The Ant
Ля вот эта дичь в ивенте kernel.controller_arguments преобррразуется в резолвер натуальный в методе $event->getArguments() Фиксится? я не нашол
The Ant
Aleksandr
https://www.youtube.com/watch?v=ZWcgx0c2nGs
Dmitry
Нужен совет знающих людей, на проекте используется DoctrineMigrationsBundle, при деплоях сразу применяются миграции, после чего обновляется код, но есть ситуации когда необходимо сразу обновить код, а потом применить миграции (например удаление поля из бд), как лучше это сделать? Сейчас это происходит разделением релизов на два, но может быть есть лучшее решение?
Dmitry
а ещё надо релизы откатывать лучшее решение - писать так, чтобы продолжало работать а задеплоить можно и два раза
есть еще как минимум проверка схемы в пайплайнах, т.е если нужно удалить поле, то его сразу нужно удалить из кода /сделать необязательным, а потом удалить из бд и вот в этот промежуток будет невалидная схема а этого хотелось бы избежать
Dmitry
и вроде идея сделать что бы миграции выполнялись после релиза выглядит здраво, но миграции нужно как-то разделить
Dmitry
и вроде бы можно было бы через костыли, например используя skipIf и переменные окружения , но подумал может есть более правильное решение
Юра
Обычно деплой разбивается на несколько деплоев
Nikolay
есть еще как минимум проверка схемы в пайплайнах, т.е если нужно удалить поле, то его сразу нужно удалить из кода /сделать необязательным, а потом удалить из бд и вот в этот промежуток будет невалидная схема а этого хотелось бы избежать
Обычно всегда в несколько подходов делается,если по нормальному. Сначала убрать из кода, затем из базы. Иногда и в три этапа ещё делается, когда надо мигрировать структуру
Павел
Сценарий может быть и такой, что подготовка БД к фиче может вообще занять часы или дни. Так что доставка фичи на прод за несколько релизов - нормальная практика
Иван
плюс надо понимать, что на реально больших данных обновление столбца - не элементарная операция и может залочить всё, если бездумно гнать
Юра
/https://docs.percona.com/percona-toolkit/pt-online-schema-change.html
Юра
Помню когда-то использовал, норм было
Юра
Если кратко создаётся новая таблица, настраиваются триггеры которые в нее новые данные синхронизируют пока идёт копирование со старой таблицы, потом происходит ринейм таблицы
Юра
И хоть десять миллионов там строк, оно себе в фоне копирует
Юра
Возможно сейчас есть уже более продвинутые инструменты, не в курсе честно
Михаил
Вообще странную шизу словил. Вылил изменения, у меня 2 миграции. 1 выполнилась успешна, а во второй была ошибка. Так вот, я думал что миграции применяются в транзакции. Но первая миграция бд изменила а вторая нет. В итоге мне пришлось откатить код и какое-то время приложение проработало вот в таком подвешенном состоянии.
Dmitry
но судя по всему просто практикуется практика разделять на несколько релизов, хотя этот вариант мне не сильно нравится из-за того что какое-то время в мастер будет ошибка валидации схемы
Михаил
Ну в таком случае ничего кроме составления сценария релиза я не могу предложить. То есть сделайте какую-нибудь автоматизацию которая будет деплоить новую версию и проходить заранее оговоренные шаги try: bin/console d:m:m migration_name_1 pull new app version bin/console d:m:m migration_name_2 otherwise: bin/console d:m:m prev pull new old version bin/console d:m:m prev Может в каком-то джеркинсе это есть
Юра
но судя по всему просто практикуется практика разделять на несколько релизов, хотя этот вариант мне не сильно нравится из-за того что какое-то время в мастер будет ошибка валидации схемы
Почему будет ошибка валидации схемы? Допустим тебе нужно изменить полностью тип колонки. Первыц деплой добавляет новую колонку и код пишет в новую и в старую, читает со старой. Дальше другой деплой мигрирует данные в новую колонку. Когда все данные есть, третий деплой удаляет старую колонку и код теперь читает с новой колонки.
Юра
Да это слегка геморно но это работает
Юра
В больших проектах так оно и делается небольшими кусочками
Dmitry
кто где бд проектирует ? использовали аи для таких штук?
Anton
кто где бд проектирует ? использовали аи для таких штук?
Мне это нравится своей простотой. Помогает, когда нужно не очень объёмную схему отрисовать https://app.dbdesigner.net/
Anton
jsonb правда нету 🙃
Aleksandr
товарищи, если вы знакомы с сф и сейчас в поисках отличного места - пишите)
Михаил
Наконецто мои 8000 часов в доте помогут устроиться на работу!
Михаил
Ухх, собес жёсткий намечается
Михаил
Что такое сф? Страховой фонд, Совет федерации ?
Niki
Сан Франциско
Михаил
Логично, что симфони
л ... логично? Сфигали тут быть тому кто НЕ знаком с симфони
Михаил
Я думал Александр про доменку какую-то
Nikolay
л ... логично? Сфигали тут быть тому кто НЕ знаком с симфони
Вполне логично, говорится же, что "знакомы и в поиске". У многих, кто здесь сидит уже работа есть
Михаил
Ладно, у нас разные представления о логичности, в любом случае я нашёл его вакансию
Михаил
вилка вкусная )
Михаил
Народ, оффтоп, но меня интересует. У кого из вас на среднем пальце ведущей руки, между ногтем и фалангой (или на фаланге) есть мозоль. Ну или шишка, уплотнее. Это точно не от телефона и я не пишу ручками/карандашами, но частно работаю за ноутом. Читал что это «Писательская мозоль», но неужели на есть ещё и у itшников
Dmitry
кто-нить разбирал isGranted под капотом ? я правильно понимаю что в isGranted помимо ('EDIT', $object) и ('ROLE_USER') можно также туда запихивать аттрибуты, например название к функционалу ('generate_reports_for_employees') это правильное использование isGranted ? и для каждого такого использования свои кастомные вотеры ? ну и все в getRoles просто как-то запихнуть через кастомный провайдер? мы просто хотим и по фичам и по ролям и по пермишенам проверять доступы к функционалу
Dmitry
смущает только то что в getRoles это все подпихивать, буд-то немного не то название
Dmitriy
имхо проще симфони секурити вообще не использовать )
Dmitry
имхо проще симфони секурити вообще не использовать )
вот что-то с докой у них беда, есть альтернативы ? :D
Dmitriy
проще свое написать.. мы используем своего сабскрайбера на onKernelControllerArguments
Dmitriy
секурити слишком универсальный, отчего достаточно сложный в настройке и использовании
Михаил
Я свой тоже написал как надстройку над секурити. Секурити делает грубые штрихи в безопасности, а моя либа тоньше работает.
Dmitry
Я свой тоже написал как надстройку над секурити. Секурити делает грубые штрихи в безопасности, а моя либа тоньше работает.
а че именно ? просто чтобы при argument resolver проверял есть ли доступ на просмотр к записи или тоже слушатель ?
Михаил
да по разному. Если это easy-admin контекст, то пакет заражает этот контекст правилами доступа определённой роли к определённой сущности Если это апи ручки, то листенер при запросе смотрит есть ли у метода или контроллера специальный аттрибут и сам решает что делать
Михаил
Опыт работы 10 лет на доработку веб сайтов?
Иван
я думаю
Михаил
Ааа, или типо вы 10 лет на рынке
Александр
Ну написано же в шапке "резюме")
Михаил
Ну и вот нафига это в чате где разрабы сидят