Регистрация через социальные сети

Реализация команды регистрации через социальные сети. Именованные конструкторы объектов. Привязка соцсети к текущему профилю.

Скрытый контент
Комментарии (16)
Arunas
2020-01-31 17:43

Спасибо, очень интересно, с нетерпением жду продолжения :)

Ответить
Руслан
2020-02-02 20:27

Здравствуйте, а когда планируется "организация пайплайнов тестирования и сборки на Jenkins, Gitlab-CI и подобных"?

Ответить
Дмитрий Елисеев
2020-02-03 08:27

Когда напишем контроллеры и фронтенд для приёмочных тестов.

Ответить
Дмитрий
2020-02-03 09:49

Дмитрий, вопрос не много не в тему ) рекуррентные платежи (например через робокассу ), как лучше сделать, что бы как только срок подписки заканчивался, производилась оплата (auth.robokassa.ru/Merchant/Recurring с нужными параметрами), если повесить проверку сроков подписки на крон, то будет период в котором подписка закончилась, но еще не продлена? может подскажите как это реализовано у вас?

Ответить
Дмитрий Елисеев
2020-02-03 20:17

Если Cron запускает скрипт каждый час, то можно подписке на сайте указывать немного больший срок с запасом на пару часов, чтобы видимого перерыва не было.

У нас платежи списываются самой платёжной системой и при этом сразу приходят уведомления.

Ответить
Дмитрий
2020-02-04 11:55

Спасибо )

Ответить
Sergei
2020-02-09 00:32

Я что то не очень понял: у нас в папке Test/Unit/Entity/User вложена еще одна папка User. Почему? Первая это тесты самой Entity User, а вторая?

Ответить
Дмитрий Елисеев
2020-02-09 12:31

В первой папке тесты для всех классов. Во второй - только для методов класса User. Хотя здесь кроме User никаких соседних папок нет, поэтому первую папку и из Entity можно убрать.

Ответить
Роман
2020-02-11 19:48

Было бы хорошо добавить возможность (видеть какие видео просмотрел и какие нет). А то если сделал перерыв несколько дней то потом нужно вспоминать что смотрел.

Еще один момент будет ли в курсе версионирование, как лучше делать нумерации версий и как писать список изменений системы.

Ответить
Роман
2020-03-25 14:19

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. Это опечатка или намеренно так сделано?

Ответить
Дмитрий Елисеев
2020-03-25 15:58

Опечатка.

Ответить
Роман
2020-04-22 21:59

Дмитрий, ещё вопрос, точнее наблюдение, про 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(), так чтобы он не ругался?

Ответить
Роман
2020-04-22 22:22

Окончательный вариант получился такой, но это не совсем правильно, потому что лучше вызывать встроенные методы Collection у this->networks. Вот если бы пометить, чтобы psalm не проверял некоторые методы.

public function getNetworks(): array
    {
        $networks = [];
        /**
         * @var UserNetwork $network
         */
        foreach ($this->networks->toArray() as $network) {
            array_push($networks, $network->getNetwork());
        }

        return $networks;
    }
Ответить
Роман
2020-04-23 09:07

UPD:

Решил проблему с помощью @psalm-suppress all :)

Ответить
Дмитрий Елисеев
2020-05-01 09:47

Да, в крайнем случае можно пометить конкретную строку через аннотацию. Но вместо all желательно указывать именно конкретный тип MixedArgumentTypeCoercion из скриншота. Иначе можно нечаянно пропустить соседние ошибки.

Ответить
Роман
2020-07-11 16:16

Спасибо!

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий