
Evgeniy
07.05.2018
09:34:53

Sergey
07.05.2018
09:34:57
и да, ты когда говоришь "вот они добавили" то стоит вспомнить что это был компромис что бы уменьшить нарушения обратной совместимости.
если я конечно долистал нужные сообщения. А че ты завелся я не знаю. Хотя я помню наши с тобой дискуссии

Google

Maksim
07.05.2018
09:36:04

Evgeniy
07.05.2018
09:36:10

Sergey
07.05.2018
09:36:56
точнее не вопрос а спор
я тоже хочу

Evgeniy
07.05.2018
09:38:32
точнее не вопрос а спор
я не спорю я написал что раз уже начали костылять(трейты уже есть), то можно было бы сделать множественное наследование с синтаксисосом как у трейтов и многие костыли были бы не нужны

Sergey
07.05.2018
09:38:44
@KuvshinovEE важное отличие того что хочет @arturpanteleev (если я правильно понял) - возможность декларировать требуемое поведение со стороны клиенсткого кода а не пихать все в класс.

Артур Евгеньевич
07.05.2018
09:39:19
не я ниче не хочу, т.к не знаю что еще существует, просто говорю что нравистя использовать интерфейсы, но я не исключаю что есть что то поинтереснее

Evgeniy
07.05.2018
09:39:24
где вы увидели про пихать все в класс?

Sergey
07.05.2018
09:39:40

Артур Евгеньевич
07.05.2018
09:39:48

Evgeniy
07.05.2018
09:39:54
оно работает так как его напишет человек

Google

Sergey
07.05.2018
09:40:00
оно декларируется в компайлтайме и клиентский код может только конкретный инстанс инстанцировать. Но когда у нему приходит уже что-то он ничего не может

Evgeniy
07.05.2018
09:40:15
и отсутствие наследования (любого ) или его наличие не меняет качество кода

Sergey
07.05.2018
09:40:55
но только я не про то говно которое в Yii или там в laravel на кастылях и __call

f4rt~
07.05.2018
09:41:21
phpstorm умеет в @mixin ;)

Sergey
07.05.2018
09:42:00
ну то есть.... у тебя есть 3 клиента и один класс содержащий модель данных. У тебя есть 2 опции:
наследование (любого вида) - работает только в компайл тайме, все варианты поведения декларируются в классе, типа "я могу быть тем-то, тем-то и тем-то". Причем множественное у тебя наследование или нет - у класса так или иначе не может пересекаться поведение между интерфейсами иначе получишь конфликт и сложности.
миксины - работает в рантайме, клиентский код сам назначает требуемое поведение на модель данных. модель данных в этом плане выходит относительно тупой и следит только за своими инвариантами, а все остальное довешивается рядом.


Evgeniy
07.05.2018
09:43:57
единственное что код класса должен это реализовывать методы интерфейса и абстрактные методы, остальное сильно зависит от ситуации
нет серебрянных пуль

Sergey
07.05.2018
09:44:11

Evgeniy
07.05.2018
09:44:34
миксинов нет в пхп
чтобы навешивать это как в scala например

Sergey
07.05.2018
09:45:16
миксинов нет в пхп
1. их можно сделать поскольку php разрешает тебе декларировать классы новые в рантайме
2. какая разница чего нет в php? PHP настолько ущербный язык на сегодняшний день и там столького нет что в пору просто выкидывать его

Evgeniy
07.05.2018
09:45:27
поэтому единственный вариант это агрегация

Sergey
07.05.2018
09:45:32

Evgeniy
07.05.2018
09:45:44
я понимаю о чем ты

Sergey
07.05.2018
09:47:44

Google

Evgeniy
07.05.2018
09:47:51
либо помоги тогда с воображением на примере php не других яп
могут быть не только прокси

Sergey
07.05.2018
09:48:22
ну и хороший пример - C#

Evgeniy
07.05.2018
09:48:23
но костыли один фиг

Sergey
07.05.2018
09:48:37
там тоже технически организация миксинов может быть только за счет кодогенерации

Evgeniy
07.05.2018
09:48:37
это я о пыхе а не о шарпе

Sergey
07.05.2018
09:48:57
однако люди замутили эдакий "препроцессор" что бы мутить их любимый Data-Context-Interaction
что бы миксины (роли) назначать объектам

Evgeniy
07.05.2018
09:49:54
такое и в пыхе можно сделать но только не настолько люди наркоманы
только я там выше просто привел пример что имея подобный синтаксис можно было бы жить без многих вещей (типо интерфейсов, наследования и тд и добиваться того же самого с абстрактными методами)
но там каждый увидел то что захотел увидеть. (причем этого там совсем и могло не быть)

Sergey
07.05.2018
09:58:29

Evgeniy
07.05.2018
09:58:43
к сожалению на шарпе не довелось работать
хотя мб и к счастью)

Sergey
07.05.2018
09:58:58
есть yay
ииии люди продолжаю ныт "хочу короткие лямбды"

Evgeniy
07.05.2018
09:59:22

Sergey
07.05.2018
10:00:18
use function \{
array_map as map,
array_keys as keys,
array_values as values
};
$headers = map(($key, $value) => "$key: $value", keys($headers), values($headers));

Google

Sergey
07.05.2018
10:00:37
красота же..

Evgeniy
07.05.2018
10:00:45
хахха
ну красота понятие субьективное, мне лично не кажется там все красивым

Sergey
07.05.2018
10:06:23

Evgeniy
07.05.2018
10:07:05
а я вижу что это требует изучения нового синтаксиса
и меньше символов не всегда значит лучше
потому что если придерживаться слов о количестве символов map можно сократить до m например, values до v keys до k и тд, лучше это или хуже не сделает но сократит символы

Sergey
07.05.2018
10:09:46

Admin
ERROR: S client not available

Sergey
07.05.2018
10:10:03
это не сложно, тем более когда такой же синтаксис используется еще в куче языков
или он явный

Evgeniy
07.05.2018
10:10:24
я согласен что надо стараться чтобы не было лишнего булшита в коде
и чтобы он был короткий и понятный

Herman
07.05.2018
10:10:39

Evgeniy
07.05.2018
10:10:42
но это все субьективно

Nurik
07.05.2018
10:26:17
А там, чё вотчер тоже на php написан ?

Evgeniy
07.05.2018
10:27:09
я уже ванговал скоро будет вакханалия как в js )

Sergey
07.05.2018
10:35:49

Google

Sergey
07.05.2018
10:36:28
а кто-нибудь знает почему opcache не поставляется по умолчанию в пакетах с php?

Dmitry
07.05.2018
10:37:53
много что не поставляется :) зависит от мантейнера дистрибутива как бы :)

Nurik
07.05.2018
10:44:49
В доке про это ничего.
А понял. Они так и используют там nodejs как вотчер.
Имхо, мертворожденный проект.
За typescrypt microsoft, за babel facebook стоит. Вряд ли кому-то будет интересно делать такие штуки для php. В мире php это вообще не интересно никому.

Sergey
07.05.2018
11:20:40

Nurik
07.05.2018
11:29:13
вот интересно с чем это связано.... врядли с тем что язык и так совершенство)
Ну тут как раз таки в случае js, признают что js не идеален и пишут свои траспиляторы, потому что могут, и потому что денег много. Ну и потому что JSу нет аналогов на фронте. То что это опосредственно на nodejs и бэкенд разработку влияет, это просто как плюшки. В случае бэкенда и php — тут просто легче пересесть на другой ЯП. Как бы такое ИМХО.
js вездесущ. php — нет.

Anatoliy
07.05.2018
11:30:45
всем привет. ребятки, кто тестами занимается ?
есть вопрос относительно того, как правильно тестировать некоторые классы.
К примеру есть класс с валидацией. По сути это юнит, однако валидация может лесть в базу, скажем проверить на существование.
Он сюда вопрос как правильно пойдоти к тестированию ?

Bohdan
07.05.2018
11:31:09

Nurik
07.05.2018
11:32:00

Bohdan
07.05.2018
11:33:09

Anatoliy
07.05.2018
11:33:50
моки?
Возможно. Я знаю про моки, я бы хотел получить некий совет или наставление как правильно подойти.
Тоесть класс валидации инжектит репозиторий, и для того, чтобы отловить его воедение, просто мокаем, возвращает нужные данные и пологаемся на его работу ?

Nurik
07.05.2018
11:34:56
)

Bohdan
07.05.2018
11:35:22

Nurik
07.05.2018
11:43:42