Обновление зависимостей для бэкенда и фронтенда. Нюансы использования нового Doctrine DBAL. Постепенная миграция от SwiftMailer к его современной замене.
- 00:00:35 Минорные обновления бэкенда
- 00:01:53 Новый вызов в DBAL
- 00:04:45 Исправление хэшера
- 00:05:20 Изменения работы со схемой БД
- 00:06:15 Лучшее отображение ошибок Psalm
- 00:07:39 Типы для массивов
- 00:10:30 Рекурсивные функции в Psalm
- 00:12:50 Полные типы в тестах
- 00:14:31 Актуализация валидатора токенов
- 00:18:47 Атрибуты для подготовленных выражений
- 00:22:17 Обновление фронтенда
- 00:23:30 Регистр имён CSS-классов
- 00:25:20 Новая нотация функции rgba
- 00:26:35 Проверка Cucumber
- 00:27:40 Ситуация с текущим мэйлером
- 00:31:00 Установка Symfony Mailer
- 00:34:51 Отправитель по умолчанию
- 00:36:59 Перевод кода на новый Mailer
- 00:38:07 Изменение тестов
- 00:40:15 Удаление SwiftMailer
- 00:40:42 Обзор результата
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram
👍
Спасибо, Дмитрий) Теперь стало немного понятнее, почему новые скринкасты по Slim немного притормозились. В ожидании ключевых изменений…
Очень интересно было посмотреть как осуществятся переход с одной библиотеки на другую. Однако хотелось бы узнать почему мы не можем пойти дальше и вместо зависимостей на какой-то сторонний Mailer по всему проекту - сделать обёртку в виде своего
MailerInterface
? Ведь тогда все изменения касались бы одного нашего Mailer. Мы бы просто писали новые обёртки и удаляли их, при необходимости. Например создать общий интерфейсApi\Mailer\MailerInterface
и реализовать разные мейлеры:Api\Mailer\SymfonyMailer
,Api\Mailer\SwiftMailer
,Api\Mailer\LaminasMailer
. И если это не имеет смысла то по какому тогда принципу создаёте абстракцию в виде Interface со сторонними библиотеками?Кроме того, мы же можем отправлять не напрямую, а использовать очереди или писать сообщения сначала в базу. В таком случае это было бы проще решить имея свой App Mailer.
Так же интересно было бы рассмотреть в рамках скринкаста организации уведомлений через разные популярные каналы, в том числе и через email. Планируется ли данная тема?
Спасибо ещё раз!)
Да, можно сделать адаптеры для всех библиотек для более удобного и независимого использования, как мы сделали с валидатором. Также можно сделать с переводчиком, мэйлером и шаблонизатором. Тогда переход на другие будет проще. Это имеет смысл для сложных компонентов, которые мы используем часто.
Верно. Если использовать свой интерфейс, то можно подставить потом любую реализацию и как угодно её декорировать. Но даже сейчас при крайней необходимости мы можем это сделать, подменив реализацию для уже используемого оригинального
Symfony\MailerInterface
, а потом уже перейти на свою абстракцию.В будущем мы будем как раз рассылать кучи уведомлений и напоминаний. Тогда вместо простого интерфейса мэйлера мы сделаем целый модуль, отвечающий за централизованную работу с письмами и рассылками.
Спасибо за развёрнутый ответ! Всё понятно. Просто было интересно почему где-то делаете свою абстракцию в виде валидатора, диспетчера событий, а где-то нет.
А вот по модулю отвечающий за рассылки и уведомления порадовала информация. Думал, что здесь такого не предвидится. Будем с нетерпением ждать!
Не увидел у вас ни одной активной подписки, чтобы продлить её как приз за интересный вопрос. Когда приобретёте подписку напишите мне здесь и я её продлю.
Доброго дня! Приобрёл)
Продлил
Благодарю !
Добрый вечер.
Благодарю, полезная информация.
Вот только не совсем понятно упоминание RBAC. Это опечатка?
Опечатка
Но всё-равно посмотрел и интересом. Информация в видео подтвердила, что я правильно сделал обновление проекта)
Подскажите, а как правильно перевести базу с mysql на postgres?
Есть старый проект, который планирую объединить с новым проектом.
Старый и новый проект схожи по направлению. Планируется сделать управление сайтами в одной админке.
Сделать сначала два подключения к двум БД и постепенно переносить сущности из одной в другую.
То есть, doctrine подключается к mysql, забирает оттуда записи, заполняется новая сущность (новый сайт) и пишется в postgres?
Перед этим добавить в docker сам mysql и через dump перенести в него данные со старого сайта?
Если не используются какие-то экзотические запросы, то можно перекинуть дампом все данные и потом безболезненно поменять настройки подключения в Doctrine.
Да вроде никаких нет.
Обычный ActiveRecord yii2, в админке create, view, delete. На сайте личный кабинет и поисковые запросы. Часть кода реализовано по Вашему примеру yii2_market. Это на старом сайте. Единственное, что отличается в базе, так это id записей. На старом обычный auto_increment, на новом uuid
Спасибо :)
Спасибо!
Здравствуйте Дмитрий, думали ли вы о понижении качества (перезапись и тд) эпизодов, в угоду скорости их выхода ? Хотелось бы побольше материала (:
Да, согласен.
Не согласен. И так по сути не всегда успеваешь переварить весь объём, не говоря о том, чтобы применить на практике. Куда ещё больше информации-то) Сейчас как есть норм - сжато и концентрировано.
40 мин в неделю сложно освоить ? ) вы серьезно ? 😟
Не, ну возможно я один такой не поспеваю за программой курса, так как и без того дел хватает и даже того времени на изучение даже меньше, чем хотелось бы)
Качество понижать не нужно, но вот скорость как-то бы увеличить. Плюсую за это. Кто-то усваивает курс быстрее, а кто-то медленнее. И это не курс, а скринкаст!
Не очень понимаю возмущение по скорости. У вас что видео удаляются после выхода следующих?) Тот кто быстро схватывает хочет идти дальше нет необходимости дожидаться всех. Пересматривайте скринкаст хоть через год по 10 раз.
А кто Вам мешает двигаться дальше самостоятельно?
Под меткой "Скоро" около двадцати пунктов. Попробуйте самостоятельно реализовать код, потом сравните с тем, как Дмитрий Елисеев это делает.
Не нужно понижать качество в угоду скорости.
Да, тоже умоляю, не нужно понижать качество.
В заголовке RBAC
Или войти через: