Size: a a a

Laravel для начинающих

2020 May 13

RK

Roman Kolosov in Laravel для начинающих
Mehrob Latipov
Который раз становлюсь наблюдателем того что в группе Новичков не совсем по уровню тему обсуждаются
А что нам только валидаторы и селект олл обсуждать?)
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
Mehrob Latipov
Заходишь такой и тебе в лицо - "Фасады это не фасады!"
Наши фасады это ленивый DI
источник

ML

Mehrob Latipov in Laravel для начинающих
Иван Лещенко
Так наши фасады != паттерн "Фасад"
Я знаю, в контексте названия группы имею ввиду
источник

IG

Ilshat Gayanov in Laravel для начинающих
Mehrob Latipov
Который раз становлюсь наблюдателем того что в группе Новичков не совсем по уровню тему обсуждаются
я один раз в месяц сюда захожу
источник

IG

Ilshat Gayanov in Laravel для начинающих
да чего же изгой
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
Mehrob Latipov
Я знаю, в контексте названия группы имею ввиду
А, это да
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
Roman Kolosov
А что нам только валидаторы и селект олл обсуждать?)
В срачах рождается истина
источник

DE

Dmitry Eliseev in Laravel для начинающих
Andrey Helldar
Как бы не так))

1. Док-блок с 13-й по 30-ю строки можно вынести во внешний файл, автоматом сгенерированный через ide-helper командой php artisan ide-helper:models -R -N;

2. 34-я строка не по PSR-12;

3. Метод rolesList можно в конфиг вынести;

4. Методу register вообще нечего делать в модели - это задача сервиса. Еще б валидатор туда впихнул...;

5. Метод registerByNetwork та же песня. Вдобавок, с какого перепуга модель юзера создает записи для релейшена?

6. new...

7. Методы isWait, isActive, isModerator, isAdmin, isPhoneVerified и isPhoneAuthEnabled можно превратить в атрибуты. В таком виде они могут быть извлечены вместе с моделью там, где это необходимо. Например, в SPA;

8. verify, changeRole, changeRole, unverifyPhone, requestPhoneVerification, verifyPhone, enablePhoneAuth, disablePhoneAuth, addToFavorites, removeFromFavorites,  - невооруженным глазом видны участок бизнес-логики... В МОДЕЛИ...;

В общем, это яркий пример как НЕ НАДО делать. Ни в коем случае нельзя мешать МОДЕЛЬ с БИЗНЕС-ЛОГИКОЙ, для реализации которой существуют сервисы.
> В общем, это яркий пример как НЕ НАДО делать. Ни в коем случае нельзя мешать МОДЕЛЬ с БИЗНЕС-ЛОГИКОЙ, для реализации которой существуют сервисы.

Как раз наоборот. Такой подход и называется ООП. А вы предлагаете использовать процедурное программирование.
источник

AH

Andrey Helldar in Laravel для начинающих
Иван Лещенко
Даже так, ещё лучше
Хз кто писал тот код, но человечку лучше посмотреть на работы других более опытных. Но не spatie - у него дела ещё хуже с кодом)
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
Dmitry Eliseev
> В общем, это яркий пример как НЕ НАДО делать. Ни в коем случае нельзя мешать МОДЕЛЬ с БИЗНЕС-ЛОГИКОЙ, для реализации которой существуют сервисы.

Как раз наоборот. Такой подход и называется ООП. А вы предлагаете использовать процедурное программирование.
Что? Он наоборот предлагает ООП решение
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
Dmitry Eliseev
> В общем, это яркий пример как НЕ НАДО делать. Ни в коем случае нельзя мешать МОДЕЛЬ с БИЗНЕС-ЛОГИКОЙ, для реализации которой существуют сервисы.

Как раз наоборот. Такой подход и называется ООП. А вы предлагаете использовать процедурное программирование.
Абстракция в виде модели требует абстракцию в виде сервиса
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
Абстракция в виде сервиса требует либо ещё сервисов либо контроллеров
источник

O

Ostap 🇺🇦 in Laravel для начинающих
Andrey Helldar
Хз кто писал тот код, но человечку лучше посмотреть на работы других более опытных. Но не spatie - у него дела ещё хуже с кодом)
> у него
spatie = организация
= у них
источник

DE

Dmitry Eliseev in Laravel для начинающих
Иван Лещенко
Что? Он наоборот предлагает ООП решение
ООП предполагает инкапсуляцию состояния и поведения внутри самого объекта.

А ПП предлагает разделение состояния (полей структуры) и поведения (процедур).
источник

RK

Roman Kolosov in Laravel для начинающих
Andrey Helldar
Как бы не так))

1. Док-блок с 13-й по 30-ю строки можно вынести во внешний файл, автоматом сгенерированный через ide-helper командой php artisan ide-helper:models -R -N;

2. 34-я строка не по PSR-12;

3. Метод rolesList можно в конфиг вынести;

4. Методу register вообще нечего делать в модели - это задача сервиса. Еще б валидатор туда впихнул...;

5. Метод registerByNetwork та же песня. Вдобавок, с какого перепуга модель юзера создает записи для релейшена?

6. new...

7. Методы isWait, isActive, isModerator, isAdmin, isPhoneVerified и isPhoneAuthEnabled можно превратить в атрибуты. В таком виде они могут быть извлечены вместе с моделью там, где это необходимо. Например, в SPA;

8. verify, changeRole, changeRole, unverifyPhone, requestPhoneVerification, verifyPhone, enablePhoneAuth, disablePhoneAuth, addToFavorites, removeFromFavorites,  - невооруженным глазом видны участок бизнес-логики... В МОДЕЛИ...;

В общем, это яркий пример как НЕ НАДО делать. Ни в коем случае нельзя мешать МОДЕЛЬ с БИЗНЕС-ЛОГИКОЙ, для реализации которой существуют сервисы.
вот кстати в лару добавили же в модель валидатор, не знаю нахрена, но оно там теперь есть))
источник

AH

Andrey Helldar in Laravel для начинающих
Dmitry Eliseev
> В общем, это яркий пример как НЕ НАДО делать. Ни в коем случае нельзя мешать МОДЕЛЬ с БИЗНЕС-ЛОГИКОЙ, для реализации которой существуют сервисы.

Как раз наоборот. Такой подход и называется ООП. А вы предлагаете использовать процедурное программирование.
ООП это не только совмещать в себе репозитории (читай элок) и бизнес-логику в моделях.
Я за то, чтобы каждый участок кода выполнял свою предназначенную роль, а не играл вместо нее солянку.
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
Dmitry Eliseev
ООП предполагает инкапсуляцию состояния и поведения внутри самого объекта.

А ПП предлагает разделение состояния (полей структуры) и поведения (процедур).
ООП предполагает инкапсуляцию состояния и поведения внутри самого объекта
Давно?
источник

ИЛ

Иван Лещенко... in Laravel для начинающих
То есть если я хочу сделать абстракцию над каким-то классом, то я буду писать логику в самом классе?
источник

DE

Dmitry Eliseev in Laravel для начинающих
Иван Лещенко
ООП предполагает инкапсуляцию состояния и поведения внутри самого объекта
Давно?
С самого начала.
источник

DE

Dmitry Eliseev in Laravel для начинающих
Иван Лещенко
То есть если я хочу сделать абстракцию над каким-то классом, то я буду писать логику в самом классе?
Что значит "абстракцию над классом"?
источник