
Timur
13.01.2017
09:27:17
+1.
То, что в gist — это отстрел ноги гранатомётом.
Попытка его сделать.

da horsie
13.01.2017
09:27:33
так так
поясните

Google

da horsie
13.01.2017
09:28:06
что я упустил?

Vladimir
13.01.2017
09:28:08
Для того что там делается нужно использовать интерфейсы

dypa
13.01.2017
09:28:14
trait != extends

da horsie
13.01.2017
09:28:29

dypa
13.01.2017
09:28:50

da horsie
13.01.2017
09:30:56
ну
что гуглить-то надо? пока не вижу объяснений
трейт определяет публичный интерфейс

Vladimir
13.01.2017
09:31:31

da horsie
13.01.2017
09:31:38
как нет?
методы публичные же

Vladimir
13.01.2017
09:31:55
trait это просто реализация copy-paste

da horsie
13.01.2017
09:32:01
есть трейт = есть методы

Google

da horsie
13.01.2017
09:32:26
copy-paste тоже определяет публичный интерфейс

?
13.01.2017
09:32:29
это как абстрактный класс, там могут быть все, что есть в абстрактном классе

da horsie
13.01.2017
09:32:46

Vladimir
13.01.2017
09:32:51
Почитай про множественное наследование, и почему от него в своё время многоие отказались

Timur
13.01.2017
09:32:55

da horsie
13.01.2017
09:33:16

Vladimir
13.01.2017
09:34:27
при чем тут наследование? я про интерфейсы говорю
Как раз при том. Что trait это костыль что бы без множественного наследования, можно было выделять одинаковые участи кода и шарить их между классами. В то же время trait сознательно сделали что бы они не декларировали интерфейс

da horsie
13.01.2017
09:34:51

Vladimir
13.01.2017
09:34:55
Но это должны быть интерфейсы, сам по себе trait их не декларирует

da horsie
13.01.2017
09:35:00
почему?
по факту ведь это интерфейс
у него даже имя есь

Vladimir
13.01.2017
09:35:15
почему?
Почему в интерфейсах нельзя реализовывать методы?

da horsie
13.01.2017
09:35:59
гм
не знаю
а почему?
при чем тут это?

Timur
13.01.2017
09:36:16

Google

Timur
13.01.2017
09:36:26
Ты троллишь?

da horsie
13.01.2017
09:36:30
нет

?
13.01.2017
09:36:32

da horsie
13.01.2017
09:36:33
вообще нет
знаю
как это отвечает на мой вопрос про трейты?

Vladimir
13.01.2017
09:37:14
Там и будет ответ на вопрос почему в интерфейсах нет реализации

da horsie
13.01.2017
09:38:28

Vladimir
13.01.2017
09:38:42
Вообще trait это сильно статическая штука

da horsie
13.01.2017
09:39:04
ответ на мой вопрос - "потому что трейт с интерфейсом = множественное наследование"

Vladimir
13.01.2017
09:39:13
И если бы ты мог указать его как ожидаемый интерфейс, то возможности его подменить не было бы никакой

da horsie
13.01.2017
09:41:29
да, допер
спасибо
второй час ночи не лучшее время для работы, видимо

?
13.01.2017
09:44:32

da horsie
13.01.2017
09:45:00
собственно мне и интерфейс нужен был для странной цели
спасибо чуваки )

Aleh
13.01.2017
09:56:49
а для чего вы в коде используете трейты?
ну я имею ввиду

Google

?
13.01.2017
09:57:26
хм

Aleh
13.01.2017
09:57:28
какой-нибудь реальный пример

?
13.01.2017
09:57:34
странный вопрос

i
13.01.2017
10:02:10
https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/LoginController.php

?
13.01.2017
10:02:12
вот например https://github.com/laravel/framework/tree/5.3/src/Illuminate/Foundation/Auth
в ларке вообще много где юзаются трейты, да и не только в ларке

Dmitriy
13.01.2017
10:05:06

Roman ?
13.01.2017
10:07:19

Dmitriy
13.01.2017
10:07:34

Aleh
13.01.2017
10:08:49

Admin
ERROR: S client not available

Aleh
13.01.2017
10:08:56
зачем методы встраивать в сам контроллер

Vadim
13.01.2017
10:09:35
вообще зачем вам трейты? ими только грабли себе раскладывать

Aleh
13.01.2017
10:10:25

Vadim
13.01.2017
10:11:35
ну не все хорошо и нужно, что делается)
видел прикольные воркэраунды в трейтах, которые юзают внешние методы
их в трейте делают абстрактными, чтобы трейт можно было сунуть только в класс у которого есть нужные трейту методы
чет звучит жутко кажется

Dmitriy
13.01.2017
10:13:37

Roman ?
13.01.2017
10:14:17

Google

Dmitriy
13.01.2017
10:17:01

?
13.01.2017
10:17:49
та не реально кто так делает, вы вообще видели контроллеры например ларки?

Dmitriy
13.01.2017
10:18:07
Там везде трейты используются

Roman ?
13.01.2017
10:18:14

?
13.01.2017
10:18:14
епт не пишите свои фреймворки, велосипедисты блин))

Roman ?
13.01.2017
10:18:30
а валидация данных - нет

Vadim
13.01.2017
10:19:45
валидация все же достаточно серьезный процесс, чтобы сделать его самостоятельной сущностью
а не трейтом

Yura
13.01.2017
10:20:23
сущностью?))

Dmitriy
13.01.2017
10:20:31
а валидация данных - нет
Хм с чего это не имеет ? вот даже нашел ответ @fes0r https://habrahabr.ru/post/216955/#comment_7433099

Vadim
13.01.2017
10:20:32
ну блин
сервисом
классом, как удобно

Yura
13.01.2017
10:21:10
ну сущностью точно нет
классом мб)

Vadim
13.01.2017
10:21:32
ну что ж так к словам цепляться-то)

Yura
13.01.2017
10:21:55
нууу, я просто уже начал представлять валидацию через сущность

Aleh
13.01.2017
10:22:49

Yura
13.01.2017
10:23:07
в ином случае я не знаю что такое сущность
это вообще что угодно

Hell
13.01.2017
10:23:39
https://habrahabr.ru/post/116375/
это еще актуально?

Aleh
13.01.2017
10:24:07