
Maksim
20.06.2018
07:33:19
https://github.com/ircmaxell/PhpGenerics/blob/master/lib/PhpGenerics/Generator.php#L69

Shmaltorhbooks
20.06.2018
07:33:32

Maksim
20.06.2018
07:34:30
TL;DR: don't use this
да не очень-то и хотелось так-то) дженерики в пхп средствами либы на пхп - я не на столько упоротый)

Bohdan
20.06.2018
07:35:53

Google

Evgeniy
20.06.2018
07:45:15
ну там кусок
но чувак же написал черная магия и вуду
еще TL:DR написал
и Item занято

Roman
20.06.2018
07:47:11
Если я получаю с репозиторя даные а потом мне нужно их отсортировать, Я могу добавть в метод получения с параметр $needSort или єто обязаность сервиса и ножно передать даные ему на сортировку? как лучше организовать код?

Evgeniy
20.06.2018
07:47:17
но вообще как я уже писал скоро будет свой webpack для пхп тут Сергей даже уже кидал ссылку)
но это возможно не правильно

Борис
20.06.2018
08:24:29
На самом деле ничего вредного в этой реализации дженериков нет. Это ж не проверки в рантайме на пыхе. Производительность проседает только при первом обращении. Дальше сбросить файл на диск, и опкеш его закешит. А так у тебя реальный дженерик. Если пишешь в strict то очень даже не плохо, лучше чем ничего

Aleh
20.06.2018
08:45:21
Темплейты скорее
А не генерики

Evgeniy
20.06.2018
08:56:22
двойной интерпретатор))

Google

Bohdan
20.06.2018
08:58:43
а потом запилить phparcel, phpabel...
мы вставили тебе интерпретатор в интерпретатор...

Борис
20.06.2018
08:58:56
двойной интерпретатор))
так-то твой CPU это интерпритатор машинного кода.
Так что, когда ты пишешь на PHP у тебя уже двойной интерпритатор
Как-то ты с этим живешь )))

Nurik
20.06.2018
09:01:05

Bohdan
20.06.2018
09:01:24
да это мы так, на аналогиях катаемся
тут скорее с babel проводить аналогию нужно

Nurik
20.06.2018
09:04:14

Sergey
20.06.2018
09:04:19
ну тип того, бандлить php приложеия не надо
у одного из моих преподов в универе был очень хороший вопрос на эту тему - чем компьютер от калькулятора отличается? И ответ как раз был наличие интерпритатора. Когда у тебя "инструкция" декодируется в машинную команду.

Nurik
20.06.2018
09:07:46
садись, два
Интерпретирует инструкции вшитые в ревизию процессора ?

Sergey
20.06.2018
09:08:23

Evgeniy
20.06.2018
09:08:48

Sergey
20.06.2018
09:08:51
короч причем тут webpack/babel?)

Борис
20.06.2018
09:09:05

Sergey
20.06.2018
09:09:16
хотя по факту вам ни бандлер ни интерпритатор не нужен - вам блин транслятор нужен
https://preprocess.io/
и он уже есть

Google

Sergey
20.06.2018
09:09:54
нужно только сорсмэпы допилить
и что бы ваш любимый шторм в них умел
(хотя можно просто language server запилить)

Denis
20.06.2018
09:10:59
а насколько он нужен?

Evgeniy
20.06.2018
09:11:13
ну хочешь прикольный синтаксис юзаешь
не хочешь, пишешь в скучном и унылом стиле
и надо больше всяких таких штук чтобы еще несовместимо было между собой

Nurik
20.06.2018
09:12:51

Sergey
20.06.2018
09:13:14
а насколько он нужен?
можно много прикольного делать, например - обкатывать фичи до того как их добавили в язык
собственно по этой причине babel так выстрелил
и сам JS так бурно начал развиваться

Evgeniy
20.06.2018
09:15:12
ну в случае с js есть куча браузеров которая давным давном поддерживала все по разному а хотелось писать так чтобы везде работало
ну и да дало пинок ко всяким штукам и обкатам нового синтаксиса

Sergey
20.06.2018
09:18:15
1. я бы хотел возможность описывать структуры (что-то типа array shapes в hack). Сейчас такая возможность есть но без возможности референсинга на эти типы
2. я бы хотел джэнерики
3. я бы хотел короткие лямбды
4. хочу delegates on как в котлине
5. хочу дата классы которые передаются по значению (по сути обойдусь array shapes)
для всего этого придется делать либо синтаксис либо вставки на HERE/NOWDOC
ну и еще много чего можно придумать
даже такую хрень как
__construct(
private Foo $foo,
private Bar $bar
)

Artem
20.06.2018
09:19:29
а для чего дата классы передающиеся по значению?

Sergey
20.06.2018
09:20:18
а для чего дата классы передающиеся по значению?
для того же для чего и array shapes. хочу структурный тайпинг с возможностью объявить что "вот сюда такая хрень должна придти". Есть два варианта - array shapes (структурный тайпинг) или дата классы (почти как классы но больше структуры)

Google

Sergey
20.06.2018
09:20:33
в конечном счете - более дешевая опциональная имутабельность

Anton
20.06.2018
09:21:08

Sergey
20.06.2018
09:21:59
я как-то пытался даже, но меня хватило на просто добавить возможность модификатор доступа подсовывать

Evgeniy
20.06.2018
09:24:14
ну да такая штука тоже веселит с конструктарами
генерировать свойства, конструктор и тд

Denis
20.06.2018
09:25:03

Sergey
20.06.2018
09:25:19
я б даже так делал

Admin
ERROR: S client not available

Anton
20.06.2018
09:25:36
да, причем есть шанс, что нужно не один патч

Sergey
20.06.2018
09:25:37
+ поясняющую статью и примеры

Anton
20.06.2018
09:25:38
а несколько
ибо каждый хочет по-своему видеть
формат подобных конструкторов

Sergey
20.06.2018
09:25:58
+ ссылки на 3v4l.org с примерами
а несколько
ну вариации синтаксиса чуть что поменять не сложно, не надо делать несколько. Лучше подумать и проработать RFC
ну и да - я думаю там будет 10% времени на продумать и реализовать и 90% сраться в комментах и в мэйлинглистах доказывая что эта фича нужна. + было бы неплохо к RFC добавить какой-нибудь фиксер (под php-cs-fixer) который автоматом в коде это поменяет
https://inviqa.com/blog/functional-programming-php-developers-guide-parser-combinators-phunkie
вот может кому-то будет интересно. Например можно отдельно в файликах какой-нибудь удобный DSL мутить

Google

Sergey
20.06.2018
09:30:23
или там вдруг какой-то чужой DSL захочется попарсить

Denis
20.06.2018
09:30:28

Sergey
20.06.2018
09:30:55

Denis
20.06.2018
09:31:04
разве?

Sergey
20.06.2018
09:31:08
разве

Denis
20.06.2018
09:31:11
ну ок

Sergey
20.06.2018
09:31:25
иначе у тебя уже давно бы лежал экстеншен для async/await

Anton
20.06.2018
09:31:26
иначе уже было бы сотни диалектов
кто-нибудь бы ; убрал и сделал питон из пхп. и т.п.

Maksim
20.06.2018
09:34:17
но я чёт сомневаюсь, что оно хоть в теории в пхп появится...

Nurik
20.06.2018
10:01:14

Maksim
20.06.2018
10:01:44

Sergey
20.06.2018
10:30:05
тут проблема что для большинства php разработчиков yield это колдуство прям и нипонятно

F01134H
20.06.2018
10:32:02
+
да штука вроде бы понятная... Непонятно - когда применять
я бы хотел на практике поюзать
так лучше всего запоминается

Nurik
20.06.2018
10:40:07
Генераторы чтоли ?

Sergey
20.06.2018
10:42:32
вот конкретно этот аспект генераторов