Юра
Тогда орм не будет создавать объекты на каждую строку это тоже ускоряет
Юра
Вообщем вариантов много
Kirill
Объекты будут всё же полегче массивов
ilmiss
Добрый день, только сел за симфони после лары и юи, как в симфони обстоят дела с валидацией? Как принято делать? В ларке есть валидаторы для реквестов, юи проповедует использование моделей с rules, а в симфони как? Много всякого прошерстил но единого ответа так и не нашел.
ilmiss
Верно я тогда понимаю, что философия симфони это "вот вам пакеты, а дальше работает как вам удобно"?
Kirill
Раньше была популярна практика формы использовать
Kirill
Сейчас более популярно маппить запросы на ДТО, а поверх это накладывать правила валидации через атрибуты/конфиги/ещё что и уже потом при резолве проверять
Юра
Современная симфа почти вся на аттрибутах работает
Юра
Валидация роуты сервисы и т.д.
Юра
Рекомендую найти референс док по аттрибутам посмотреть что есть
Юра
И дальше копать
Михаил
Юра
Та ладно. Там почти все настроено из коробки
Юра
Поставил бандл, флекс пропишет все конфиги дальше тупо по доке делаешь и всё
Юра
Конечно всё можно перенастроить но надобностости такой обычно нет особо
Михаил
ставил, пропишет - слишком сложно
Михаил
вон ларка, ты не хотел этого, а оно уже есть. Каеф
Михаил
А все пользуются им? Мне он не зашел
маппинг реквест? Да, я тоже его не понял. Но для начала он очень удобный
Михаил
А так - просто прописываешь аргумент ресолвер. Делаешь интерфейс dto с 2 методоми static function fromRequest(Request $resuest): self function getConstrains(): Constraint и всё. Каждая dto реализует этот метод и внутри методов прописывается правила для валидации и правила для маппинга. И абсолютно любую хрень можно провалидировать а аргумент ресолвер в случае чего и правильный ответ даст и засунет в контроллер нужную dto
Михаил
Нет, я про флекс
а, так он по умолчанию стоит, что там парится с ним?)
Nikolay
а, так он по умолчанию стоит, что там парится с ним?)
Я не пользуюсь, больше похоже на что то из ларавель, где любят обертки писать
Михаил
с любой
Михаил
Я не пользуюсь, больше похоже на что то из ларавель, где любят обертки писать
мы точно говорим об одном и том же flex? https://symfony.com/doc/current/setup/flex.html
Denchik
Коллеги кто начинает изучение symfony предлагаю присоединиться к совместному изучению, ищу единомышленником с кем будет изучение symfony интересней и продуктивней, кто такой же как я пишите в личку)
Михаил
Даже не знаю спам это или нет, но @Cawa87
Denchik
вроде не похоже
Если вы за меня то нет, не спам) новичок я просто, если нарушил правила то прошу извинения)
Aleksandr
никогда не понимал, что такое соместное изучение)
Denchik
никогда не понимал, что такое соместное изучение)
Порой бывает продуктивней чем в одиночку)
Maks
Порой бывает продуктивней чем в одиночку)
бери gpt любой, с ними не скучно)
Владимир
Владимир
Denchik
бери gpt любой, с ними не скучно)
Да с этим ВПН Тула сюда гонять утомительно😁, может кто знает адекватный gpt без ВПН
Maks
vsegpt.ru сам пользуюсь
Denchik
vsegpt.ru сам пользуюсь
Спасибо, посмотрю)
Nikolay
Подскажите пожалуйста, как в packagist обновить список версий? В github сделал релиз, а packagist такое выводится This package is not auto-updated
Юра
Подскажите пожалуйста, как в packagist обновить список версий? В github сделал релиз, а packagist такое выводится This package is not auto-updated
Нужно в пакаджисте хук настроить, не помню как это делается но думаю разберёшься
Nikolay
Пакет не мой (есть доступ к организации), но я ранее делал через ручную синхронизацию. Сейчас вроде нет такой возможности
kakoi-to-noob
Роман
я в замешательства symfony поддерживает миграции через методы? <?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20240830075305 extends AbstractMigration { public function getDescription(): string { return ''; } public function up(Schema $schema): void { $table = $schema->createTable('continue_tokens'); $table->addColumn('hotel_id', 'integer'); $table->addColumn('continue_token', 'string'); $table->setPrimaryKey(['hotel_id']); $table->addForeignKeyConstraint( 'hotel', ['hotel_id'], ['id'], ['onDelete' => 'CASCADE'] ); } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $schema->dropTable('continue_tokens'); } } тогда почему "symfony/maker-bundle" создает это php bin/console make:migration $this->addSql('ALTER TABLE bookings RENAME INDEX hotel_id TO IDX_7A853C353243BB18'); какой способ используется чаще?
Михаил
Второй явно проще и нужен в большинстве случаев
Роман
чем проще? помоему сложнее писать сырые sql запросы, а первый варик как в ларе
Denis
миграция - это изменение бд, выполнил готовый sql-запрос и всё. во втором случае тебе видно, что именно будет с бд происходить, какие запросы уйдут. а в первом - неочевидно. это скорее в помощь, если тебе надо какой-то кастомный код выполнить, чтобы самому не писать запросы
Denis
типа ты только программист на пыхе, а в базах данных не разбираешься, и не вникаешь в подробности, что там используется
Роман
я думал не существует в симфони удобного способа создания миграций, а оказывается есть, первый вариант чище
Роман
нет сырые запросы создает
Роман
есть способ это переключить? чтоб генерировал используя методы
Denis
нет сырые запросы создает
ну и что. зачем тебе методы, оно само автоматом всё работает. в идеале))
Yevgeniy
я думал не существует в симфони удобного способа создания миграций, а оказывается есть, первый вариант чище
не чище. Миграции это низкоуровневая операция, что лучше - билдить ее или чистый скл писать большой вопрос.
Yevgeniy
Тб в автогене
Denis
а писать миграции вручную скорее нужно только для каких-то особенных запросов, которые ты все равно методами не набилдишь скорее всего, так и придётся sql писать
Елнур
есть способ это переключить? чтоб генерировал используя методы
Иногда практикуется такое, когда берут запрос из миграции и вручную запускают. С билдером такое не прокатит
Павел
есть способ это переключить? чтоб генерировал используя методы
Не имеет смысла. Если работаете с автогенерациями, то вы их и трогать не будете, толкьо менять. А значит билдер не билдер - не имеет значения. Если же работаете с миграциями вручную (тут нет правильного верно авто или ручное, зависит от...) , то делайте как вам удобно. Можно и билдер, почему нет. Но само по себе билдер тут профита не имеет. Билдер обычно нужен для автокомплита + условий. В миграциях же проще наоборот, если генерить руками, зашел в IDE накидал в таблицу изменений, IDE сгенерила код -> копипаст в миграцию. Смысл тут переписывать на билдер?
Gleb
Пожалуйста, не надо делать из Symfony Laravel. Нравится последний - так и работайте с ним. Но имейте в виду, что многим он не нравится. Любой более-мене опытные разработчик предпочтёт сырой SQL, т.к. он более понятен, чем билдер, который непонятно что сгенерит. На ревью вы будете проверять что там генерирует билдер? Будете потом при апдейте версии доктрины следить, что миграция не стала другой?
Kirill
билдер вообще нужен исключительно чтоб билдить запросы кусками
Kirill
а читать из всяко удобнее в чистом виде, благо и автокомплит есть