@laravel_pro

Страница 1508 из 2014
Артур
22.06.2018
05:17:38
Ух, ну да, у них такого нет. Да и не лишнее ли это, когда есть роли?
когда делается сервис где дается единое пространство в рамках одной команды - это очень нужно

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

Andrey
22.06.2018
05:18:50
teams можно рассматривать как группы ролей. поэтому нет, не лишнее.
Да, тогда у spatie такого нет. Возможно - пока нет.

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

Andrey
22.06.2018
05:20:11
я такого вообще ещё не видел. в entrust не юзал (возможно, там есть это, я не обращал внимания)
И я сейчас по entrust пробежал - нету там такого. Только самим ваять.

Subb98
22.06.2018
05:20:22
ну, надо что-то и самим делать :D

не всё фреймворк конфигурить :D

Артур
22.06.2018
05:21:04
я такого вообще ещё не видел. в entrust не юзал (возможно, там есть это, я не обращал внимания)
в энтрасте есть хорошее решение по подключению прав в контроллер. Поэтому жаль что я раньше не смог подсмотреть решение

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
1. оформлен не по psr
пробелы - переносы?

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) и прочее прочее

@var array
не указаывают если проперти класса

указывают, если внутри метода надо проаннотировать чтото, или аннотацию к методу пишешь

Andrey
22.06.2018
05:27:22
это я про symfony / yii 2 и прочие. laravel сильно балует разраба
Ну по сравнению с Yii2, как по мне, лара наоборот более "дисциплинирует" и ведет в правильных направлениях.

Symfony да, более многословен и строг

Subb98
22.06.2018
05:30:20
Ну по сравнению с Yii2, как по мне, лара наоборот более "дисциплинирует" и ведет в правильных направлениях.
я касался и Yii 2, и Symfony лишь кончиком мизинца левой ноги ) вот с Silex'ом работал активно. и подобные решения, где нужно писать больше на чистом php, потом могут даваться сложнее, я именно это хотел сказать )

Subb98
22.06.2018
05:31:30
так-то, вроде, норм.

если не считать больших условий. тут можно порефакторить

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

Саша
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
прокидывать все зависимости в методы / контроллеры класса,вместо event юзать 'Illuminate\Events\Dispatcher', например и так далее
Справедливо наверное. Но ни разу сам не использвал миддлвары. Судя по доке - их можно в конструктор запихать. Тогда мой класс бесполезен :)

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
ребят, подскажите а куда лучше выносить сложную логику? Я так понимаю для этого сервисы нужно делать?

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

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
https://medium.com/@remi_collin/keeping-your-laravel-applications-dry-with-single-action-classes-6a950ec54d1d
а скажи, где в таком случае долна модель быть тоже в сервисе?

Anton
22.06.2018
06:15:37
? Не понял

Модель это модель

сервис это сервис

В сервисе должна идти бизнес логика

Subb98
22.06.2018
06:16:07
test driven development же
сперва тест, потом реализация, знаю. я думал, как-то иначе, ОК, спасибо

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

Anton
22.06.2018
06:16:57
и ?

Иван
22.06.2018
06:17:05
https://medium.com/@remi_collin/keeping-your-laravel-applications-dry-with-single-action-classes-6a950ec54d1d
Есть ли выгода в такой архитектуре, когда есть ТОЛЬКО веб версия или только АПИ? В таком случае у нас будет по сути экш в экшене

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
а вынести логику можно просто создав отдельный класс у меня такие классы хелперами называются
название хелпер как то не вяжется с single responsibilty принципом. когда вижу хелпер/manager классы, чаще всего оказывается что в них куча разного шлака понапихано, этакие god objects

[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
Есть у тебя сложное создание пользователя, которое завязано на каких то действиях, там человеку счет открыть или привзяать его проекту или еще что то

Страница 1508 из 2014