Реализация команды регистрации через социальные сети. Именованные конструкторы объектов. Привязка соцсети к текущему профилю.
- 00:00:38 Юзкейс JoinByNetwork
- 00:01:52 Именованные конструкторы
- 00:03:02 Конструкторы для регистрации по email
- 00:04:22 Команда регистрации по соцсети
- 00:04:53 Объект-значение Network
- 00:06:09 Сценарий регистрации
- 00:07:24 Метод регистрации
- 00:08:36 Возврат массива вместо коллекции
- 00:09:50 Добавление ещё одного идентификатора
- 00:11:48 Метод добавления
- 00:13:04 Сравнение объектов-значений
- 00:14:12 Обзор архитектуры модуля
- 00:16:12 Что будет дальше
- 00:16:43 Про валидацию ввода
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram
Спасибо, очень интересно, с нетерпением жду продолжения :)
Здравствуйте, а когда планируется "организация пайплайнов тестирования и сборки на Jenkins, Gitlab-CI и подобных"?
Когда напишем контроллеры и фронтенд для приёмочных тестов.
Дмитрий, вопрос не много не в тему ) рекуррентные платежи (например через робокассу ), как лучше сделать, что бы как только срок подписки заканчивался, производилась оплата (
auth.robokassa.ru/Merchant/Recurring
с нужными параметрами), если повесить проверку сроков подписки на крон, то будет период в котором подписка закончилась, но еще не продлена? может подскажите как это реализовано у вас?Если Cron запускает скрипт каждый час, то можно подписке на сайте указывать немного больший срок с запасом на пару часов, чтобы видимого перерыва не было.
У нас платежи списываются самой платёжной системой и при этом сразу приходят уведомления.
Спасибо )
Я что то не очень понял: у нас в папке Test/Unit/Entity/User вложена еще одна папка User. Почему? Первая это тесты самой Entity User, а вторая?
В первой папке тесты для всех классов. Во второй - только для методов класса User. Хотя здесь кроме User никаких соседних папок нет, поэтому первую папку и из Entity можно убрать.
Было бы хорошо добавить возможность (видеть какие видео просмотрел и какие нет). А то если сделал перерыв несколько дней то потом нужно вспоминать что смотрел.
Еще один момент будет ли в курсе версионирование, как лучше делать нумерации версий и как писать список изменений системы.
https://i.imgur.com/qjlTvKN.png
Дмитрий, скажите, у вас в этом эпизоде (Регистрация через социальные сети, коммит:
30509cb0 Added join by network use case ElisDN 14.01.2020, 16:43)
в исходном коде namespace у DTO JoinByNetwork задан как App\User\Command\JoinByNetwork, вместо App\Auth\Command\JoinByNetwork. Это опечатка или намеренно так сделано?
Опечатка.
Дмитрий, ещё вопрос, точнее наблюдение, про psalm.
После коммита "Updated vendors ElisDN 26.02.2020, 12:39", в котором вы обновили только некоторые пакеты (slim/psr7 и phpunit/phpunit) на более свежие, я обновил еще и все другие заодно. В частности, в моей версии вашего приложения был затронут psalm и поднят c "3.8.0" => "3.11.2". В то время, как у вас используется версия "3.9.3".
В связи с этим полная проверка check не прошла проверку на этапе api-analyze, так как psalm (из-за того что он, наверное сильно поумнел после обновления :) ) ругался на то, что в новой версии этого пакета он не понимает код User::getNetworks(). Вот скрин ошибки: https://i.imgur.com/T1FlAxy.png . И я уже много пробовал писать разных директив в аннотациях для psalm в том случае (они даже дали ссылку на эту ошибку), но всё равно не помогало.
Поэтому я поменял на такой вариант: https://i.imgur.com/GNDcFI2.png и ошибка пропала, но ваша версия кода с анонимной функцией в map() более элегантная. И в связи с этим вопрос, как правильно пометить анализатору в вашей версии кода User::getNetworks(), так чтобы он не ругался?
Окончательный вариант получился такой, но это не совсем правильно, потому что лучше вызывать встроенные методы Collection у this->networks. Вот если бы пометить, чтобы psalm не проверял некоторые методы.
UPD:
Решил проблему с помощью
@psalm-suppress all
:)Да, в крайнем случае можно пометить конкретную строку через аннотацию. Но вместо
all
желательно указывать именно конкретный типMixedArgumentTypeCoercion
из скриншота. Иначе можно нечаянно пропустить соседние ошибки.Спасибо!
Как решается проблема нескольких конкурентных запросов на добавление одной и той же соцсети?
В лучшем случае сработает проверка
hasByNetwork
. Иначе вылетит ошибка уникальности из БД.спасибо, очень понятно объясняете
Здравствуйте, а когда примерно планируется реализация входа через социальные сети? Было бы интересно увидеть раздел аутентификации/авторизации завершенным, если это возможно. Спасибо.
Здравствуйте, вопрос. У нас есть сущность Email, которая принадлежит пользователю, но данная сущность может принадлежать ещё чему-то, например заказу, как тогда не дублировать код?
Если очень не хочется дублировать, то тогда класс можно вынести в отдельную папку. Но такой простой класс удобнее продублировать.
Или войти через: