
Sergey
17.09.2017
20:50:23

Yan
17.09.2017
20:50:49

Sergey
17.09.2017
20:51:06
другое важно, с точки зрения клиентского кода, который с этой, назовем это пока просто сущностью, работает, ему есть дело есть там стэйт или нет?
ты вызываешь метод объекта, тебе важно есть там стэйт или нет? или тебе важно только поведение?

Google

Yan
17.09.2017
20:51:41
Ты уходишь не туда

Sergey
17.09.2017
20:51:52
ты не можешь этого знать)
туда или не туда

Yan
17.09.2017
20:52:05
Проведи аналогию функция == объект

Sergey
17.09.2017
20:52:13
зачем?) это тупо и в этом нет смысла
объект = функция. Есть объекты со стэйтом (монады например) и без стэйта (функции просто)

Yan
17.09.2017
20:52:48
Это твоё утверждение, я с ним не согласен, провести конкретную аналогию ты так и не смог

Sergey
17.09.2017
20:52:49
что тебе еще надо?)
твоя проблема что у тебя у объекта обязательно должен быть стэйт
а это не совсем так, стэйт это деталь реализации, нам важно только поведение
так что "объект это любая хрень которая что-то делает"
а из этого определения спокойно делаем вывод что "функция вполне себе объект"

Yan
17.09.2017
20:54:19

Google

Sergey
17.09.2017
20:54:23
ты можешь работать с функцией как со значением
а можешь как с поведением

Yan
17.09.2017
20:54:35

Sergey
17.09.2017
20:54:40
можешь делать композицию функций так же как композицию объектов
и правила этой композиции будут те же. Это как заставить себя делать все классы только с одним публичным методом

Yan
17.09.2017
20:55:16
Но что бы ты не считал, функция так и не станет объектом, увы или нет, уж не знаю)

Sergey
17.09.2017
20:55:31

Yan
17.09.2017
20:56:13

Sergei
17.09.2017
20:58:05

Sergey
17.09.2017
20:58:39

Sergei
17.09.2017
21:00:17
Ну например есть какая то страница на вики к примеру которая всегда отдаёт один и тот же результат по GET вдруг что то случилось с сервером и на запрос этой страницы я получаю 500 код.

Sergey
17.09.2017
21:00:42
это немного не тот "сервис")
я про просто служебный объект который не хранит состояние а только выполняет какое-то поведение
пример - паттерн стратегия

da horsie
18.09.2017
08:44:33
Откуда вы, люди?

Aleh
18.09.2017
08:59:54

Андрей
18.09.2017
10:30:56
Потому что функция не объект
http://sandbox.onlinephpfunctions.com/code/05fffc345b2099d3446067d2e67a5bfbf45036cb
http://php.net/manual/ru/functions.anonymous.php
Анонимные функции реализуются с использованием класса Closure.

Yan
18.09.2017
10:47:23

Андрей
18.09.2017
10:48:28
Ну, любое замыкание будет экземпляром класса Closure. Особенность реализации.

Google

Yan
18.09.2017
10:48:47
Да

p
18.09.2017
12:29:46
/stat@combot

Combot
18.09.2017
12:29:47
combot.org/chat/-1001071233926

andretshurotshka?❄️кде
19.09.2017
16:23:54
Objects are poor man's closures
?
спор такой был и никто не процитировал
или наоборот? ?

Sergey
19.09.2017
16:27:23

Alexey
20.09.2017
18:45:56
Вот такой вопрос. Есть Exception которые бросаются на уровне моделей. Что-то типа ConfirmationTokenExpiredException. Они у меня находятся в папочке Model. А есть exception которые кидают сервисы. Есть сервисы уровня приложения, (Генерация превьюшек, объедение операций и т.д.). Какие exception должны кидать сервисы? Я думаю что я что-то не так делаю и у меня нет правильно понимания
Или вот есть сервис по работе с изображениями. От него зависят несколько фич (Пользователь, Посты и т.д). Для таких сервисов нормально создавать отдельную директорию (Common), где можно складировать эти сервисы плюс exception, которые могут они кидать , тогда я беру и создаю под такие сервисы интерфейсы, которые используются в сервисах фич?
Или не сюда такие вопросы задавать)

da horsie
20.09.2017
19:02:15

Alexey
20.09.2017
19:02:58

Sergei
20.09.2017
19:03:00

Alexey
20.09.2017
19:03:03

da horsie
20.09.2017
19:03:26
Тогда и исключения и модели и сервисы и все остальное, что относится к фиче, будут вместе

Alexey
20.09.2017
19:03:31
Это фича

Sergei
20.09.2017
19:03:47
Отдельная папка с исключениями это дурной тон

da horsie
20.09.2017
19:04:23

Alexey
20.09.2017
19:04:57

Google

da horsie
20.09.2017
19:05:15
Хотя я понимаю, что критиковать проще, чем предложить хорошую структуру

Alexey
20.09.2017
19:05:44
Ну я собирал данную структуру исходя из контекста
dto, event, entity для меня все это неотъемлемая часть модели
А вот сервисы у меня на уровне фичи, так они больше собирательный образ

Sergei
20.09.2017
19:06:55
Я согласен. Равно как и DTO
Вот только на что заменить Dto вот в чём вопрос) у меня было здесь предложение, если уже есть Dao и dto то можно схитрить и прописать методы Dao в Dto т.е. crud методы, потом внутри dto делегировать всю работу по круду в Dao которое будет полем Dto таким образом Dto станет полноценным обьектом, а вся работа с базой данных по прежнему будет в Dao.

da horsie
20.09.2017
19:08:26

Alexey
20.09.2017
19:11:55
У меня dto больше нужны для того чтобы кидаться между сервисами, плюс в них описаны правила валидации. То есть я принимаю в экшене дто'шку, валидирую ее и кидаю в сервис

Sergey
20.09.2017
19:45:49

Alexey
20.09.2017
19:47:09
Не совсем понял в чем моя ошибка?)
В папке моделей получается лежать только сущности и репо? Все остально выносится на уровень выше. И Exceptionы уровня сервисов буду лежать среди exception отоносящихся к сущностям?

Sergei
20.09.2017
20:00:15
row data gateway?
Вот уже и паттерн оказывается готовый есть, только я думаю что иметь на каждый экземпляр dto свой инстанс гейтвея как то не очень, лучше тогда уже пусть будет традиционный dao в самих dto (один на всех) плюс так можно быстро рефакторить уже имеющийся код, просто спрятав dao но не удаляя его.

Sergey
20.09.2017
20:00:50