
Артур
22.06.2018
05:17:38

Subb98
22.06.2018
05:18:33
1С-Битрикс тим :D

Andrey
22.06.2018
05:18:50

Google

Subb98
22.06.2018
05:19:21
я такого вообще ещё не видел. в entrust не юзал (возможно, там есть это, я не обращал внимания)

Andrey
22.06.2018
05:20:11

Subb98
22.06.2018
05:20:22
ну, надо что-то и самим делать :D
не всё фреймворк конфигурить :D

Артур
22.06.2018
05:21:04

Subb98
22.06.2018
05:21:25
ну, зато теперь вы знаете, как правильно выбрать пакет =)
п.с.: ларавель настолько хорош, что немного опасен. когда вы попробуете более низкоуровневый фреймворк, может случиться ступор :D
это я про symfony / yii 2 и прочие. laravel сильно балует разраба

Артур
22.06.2018
05:22:49
Раз уж разговор зашел о коде и решении. Может кто замечания свои сказать?

Subb98
22.06.2018
05:24:05
оформление привести в порядок, прежде всего. сейчас логику посмотрю.

Артур
22.06.2018
05:24:44

Subb98
22.06.2018
05:24:48

Google

Subb98
22.06.2018
05:25:15
во, норм
в нотации, если не ошибаюсь, указывают ещё название переменной
@var array
после типа
например @var array $accessRoles

Саша
22.06.2018
05:26:45
это я про symfony / yii 2 и прочие. laravel сильно балует разраба
symfony это не низкоуровневый фрейм, у него просто архитектура другая, и многие bad practices в отличии от лары не поощряются, типа статических прокси (которые в ларе называются фасады), обилие хелперов которые пытаются заменить собой DI, что повышает связность проджекта, запихивание работы в очередь с помощью интерфейсов (Queueable) и прочее прочее
указывают, если внутри метода надо проаннотировать чтото, или аннотацию к методу пишешь

Andrey
22.06.2018
05:27:22
Symfony да, более многословен и строг

Subb98
22.06.2018
05:30:20

Артур
22.06.2018
05:30:49

Subb98
22.06.2018
05:31:30
так-то, вроде, норм.
если не считать больших условий. тут можно порефакторить

Артур
22.06.2018
05:32:26
так-то, вроде, норм.
Меня интересует насколько корректно было использование checkAuth и callAction в контексте проверки прав?

Andrey
22.06.2018
05:32:28

Саша
22.06.2018
05:32:43
А как без хелперов ? ?
прокидывать все зависимости в методы / контроллеры класса,вместо event юзать 'Illuminate\Events\Dispatcher', например и так далее

Артур
22.06.2018
05:32:45

Subb98
22.06.2018
05:33:03
вынесете все подобные проверки в миддлвар, в контроллере только логика.

Google

Subb98
22.06.2018
05:34:17

Артур
22.06.2018
05:35:54

Subb98
22.06.2018
05:36:33
обязательно попробуйте, это нужная вещь.
в миддлварах вся валидация должна быть.
в контроллере уже валидация логики, но не входных данных.

Артур
22.06.2018
05:38:27
ок. заюзаю. ? поработать копипастером придется конечно, но не страшно ?
Пока не знаю как миддлвары ведут себя в тестах
Но узнаю ?

Subb98
22.06.2018
05:43:14
а я до сих пор тесты не писал под реальные проекты ) вот как раз собираюсь )

Саша
22.06.2018
05:46:50
какой смысл миддлваре тестить отдельно? или контроллеры даже

Subb98
22.06.2018
05:50:22
кстати, вот насущный вопрос: что тестировать? говорят, что нужно тестировать всё, что может вести себя не так, как ожидается. то есть, всё, что написал сам, например, какие-то методы не из коробки.
верно ли это?

Александр
22.06.2018
05:54:01
Ты сначала подумай, для чего нужны тесты, чтобы не писать тесты ради тестов
А там уже будет понятно, какие кейсы в каких местах тестировать

Subb98
22.06.2018
05:55:40
тесты нужны чтобы было понимание, что при очередном изменении кода текущий код не был сломан.

Артур
22.06.2018
06:01:52
Я тесты пишу для а) проверки логики, б) построения архитектуры

[Anonymous]
22.06.2018
06:09:19
ребят, подскажите а куда лучше выносить сложную логику? Я так понимаю для этого сервисы нужно делать?

Саша
22.06.2018
06:10:17

[Anonymous]
22.06.2018
06:10:47
+
а как их лучше организовать и связать с приложением? Как тестировать?

Anton
22.06.2018
06:10:58

Google

Subb98
22.06.2018
06:11:29

[Anonymous]
22.06.2018
06:11:49
а по сути работа с моделями в идеале должна тоже через сервисы быть?

Anton
22.06.2018
06:12:22
https://medium.com/@remi_collin/keeping-your-laravel-applications-dry-with-single-action-classes-6a950ec54d1d

Саша
22.06.2018
06:14:12
а как их лучше организовать и связать с приложением? Как тестировать?
организовать как имплементации интерфейсов, т.е. каждый сервис какойто интерфейс имплементит. потом проще мокать будет, или юзать несколько разных реализаций интерфейса исходя из контекста. зависимости прокидывать исключительно через DI, никаких фасадов или хелперов в сервисах

[Anonymous]
22.06.2018
06:15:13

Anton
22.06.2018
06:15:37
? Не понял
Модель это модель
сервис это сервис
В сервисе должна идти бизнес логика

Subb98
22.06.2018
06:16:07

[Anonymous]
22.06.2018
06:16:11
у тебя в статье сервис зависит от модели

Anton
22.06.2018
06:16:57
и ?

Иван
22.06.2018
06:17:05

Anton
22.06.2018
06:17:10
Я или не проснулся или чет не понимаю, в чем вопрос
Ребят статья не моя )) Это пример как выносить логику из контролеров и модели
Парень в стать называет это дело Action

Иван
22.06.2018
06:18:05
Я думла ты пробовал

[Anonymous]
22.06.2018
06:18:10

Anton
22.06.2018
06:18:18
у него оно отличается от Jobs тем что оно может возвращать значения

Google

Anton
22.06.2018
06:18:34
Я так примерно и делаю ток я сервисами обзываю

Иван
22.06.2018
06:18:52
а вынести логику можно просто создав отдельный класс у меня такие классы хелперами называются

Anton
22.06.2018
06:19:11
Ну хоть "Беда" назови )
главное что б суть ясна была

[Anonymous]
22.06.2018
06:20:06
Я не пойу что тебе не ясно то ?
ну почему к примеру как Иван говорит не создать отдельный класс, а делать сервис и через DI прокидывать его, в чем к примеру тут профит

Саша
22.06.2018
06:20:10

[Anonymous]
22.06.2018
06:21:14
не ясно еще как связывать эти сервисы.. Допустим в статье userservice почему то зависит от блога.. Думаю это можно как то лучше и гибче сделать

Anton
22.06.2018
06:21:53
Ты не понял, сервис выполняет по факту какое то действие, которое несет в себе логику
ТЫ его выносишь из Модели и Контроллера для того что б не привязываться к системе скажем так
Т.е. Сервис получает объекты и что то с ними делает и отдает какой то результат
Это улучшает читабельность кода, и помогает при миграции проекта
Еще он спасает тебя от дублирования кода
пример

Артур
22.06.2018
06:23:36

Anton
22.06.2018
06:24:17
Есть у тебя сложное создание пользователя, которое завязано на каких то действиях, там человеку счет открыть или привзяать его проекту или еще что то