
Jan
04.04.2017
11:55:02
именованные конструкторы)

Kirill
04.04.2017
11:55:11
не, ну если надо, то всё это можно на том же пыхе реализовать

Evgeniy
04.04.2017
11:55:22
ну да дали костылю целое имя паттерна)

Jan
04.04.2017
11:55:26
можно, через __get, __set

Google

Kirill
04.04.2017
11:55:30
нет

Jan
04.04.2017
11:55:32
но надо ли упрарываться)

Kirill
04.04.2017
11:55:34
на уровне синтаксиса

Jan
04.04.2017
11:55:44
ой, __call т.е.

Evgeniy
04.04.2017
11:55:48

Kirill
04.04.2017
11:55:56
в пыхе можно экстендить сам синтаксис языка на самом пыхе, но это чрёная магия
настолько чёрная, что мало кто знает о стрим врапперах вообще

Evgeniy
04.04.2017
11:56:27
оо не знал\
не сильный значит извращенец

Kirill
04.04.2017
11:56:54
ну всё просто, создаём враппер и проксируем сырцы

Jan
04.04.2017
11:56:58
ну, тут такое)

Kirill
04.04.2017
11:57:07
дальше разбиваем по токенам, строим аст, кешим и переписываем

Jan
04.04.2017
11:57:09
к самокату ракетный двигатель присобачить

Google

Kirill
04.04.2017
11:57:14
+1
вот есть пример работы, запуск сырцов php 7 на 5.6: https://github.com/ReflectPHP/examples

Evgeniy
04.04.2017
11:58:25
приятно по беседовали, узнал новый вид извращений в php

Kirill
04.04.2017
11:58:49
да, синтаксический
но там внутри полный трешак: https://github.com/ReflectPHP/Compiler/blob/master/src/Extension/AbstractTypehintExtension.php :DDDD
так что я забил на это дело

Evgeniy
04.04.2017
12:01:15
https://github.com/ReflectPHP/Compiler/blob/master/src/helpers.php
:D

Kirill
04.04.2017
12:01:56
❤
dd debug forever

Evgeniy
04.04.2017
12:02:53
но все равно прикольная штука, чтобы синтаксис php7 в php5 писать

Kirill
04.04.2017
12:03:28
я ещё её лет 5 назад начал писать =))))
и выехал с этой статьёй на хабр
когда в пых (тогда ещё 5.4 вроде) добавились статические типы, статик конструктор, свойства и прочее
один хрен - это всё можно сделать, но это, простите - пиздец

Evgeniy
04.04.2017
12:05:54
я видел там статью про jphp
подумал ну извращенцы
а это ты уже был опытным извращенцем

Kirill
04.04.2017
12:06:51
нет, это начал тот самый Дима =)))

Google

Evgeniy
04.04.2017
12:07:11
все равно молодцы

Kirill
04.04.2017
12:07:17
я просто писал расширения, кусок libgdx переписал под него и критиковал
потом забил

Evgeniy
04.04.2017
12:07:24
там как раз kphp быбло
facebook свой hhvm
и еще jphp :D

Kirill
04.04.2017
12:07:55
ещё есть под дотнет и ещё какой-то
ну и не надо забывать про qphp и asm jit сборки
*dynasm

Evgeniy
04.04.2017
12:08:59
ладно пойду работать )

Kirill
04.04.2017
12:09:14
а у меня отпуск :D

Evgeniy
04.04.2017
12:09:40
а я пишу свое видение ContainerInterface из psr

Evgeniy
04.04.2017
12:09:57
довольно давно начал делать, а сейчас это мейнстрим и уже accepted
но доку лень докончить

Kirill
04.04.2017
12:11:09
о, я уже раза два начинал писать свой контейнер
но всё забрасывал

Evgeniy
04.04.2017
12:11:27
можешь мой посмотреть)

Kirill
04.04.2017
12:11:29
хотел переписать нормально ларовский и под симфони адаптировать

Evgeniy
04.04.2017
12:12:09
у меня получилось прикольно, гибче чем всякие php-di даже)
хотя есть нюансы)

Google

Kirill
04.04.2017
12:12:39
ларовский контейнер мощнее всех существующих
на несколько порядков

Aleksandr
04.04.2017
12:12:50

Evgeniy
04.04.2017
12:12:56
в чем именно мощь?
можно на эту тему по беседовать )

Aleh
04.04.2017
12:13:14
зачем нужен ContainerInterface - вот где вопрос

Kirill
04.04.2017
12:13:16
я уже 100500 раз это писал =(

Evgeniy
04.04.2017
12:13:45
:D

Kirill
04.04.2017
12:13:52
блин, он просто не "по-феншую", а так, чтобы можно было отстрелить себе не только ноги, но и нахрен польшу по-дороге снести

Admin
ERROR: S client not available

Evgeniy
04.04.2017
12:13:53
сарказм

Aleksandr
04.04.2017
12:13:55

Aleh
04.04.2017
12:14:17

Evgeniy
04.04.2017
12:14:59
вот кстате мой код контейнера https://github.com/smpl/mydi/tree/github.com/smpl/mydi/issues/74

Aleksandr
04.04.2017
12:15:16
Ок, я тебя понял. Контейнер мы не передаём, но например посмотри как в зенд экспрессив реализованы фабрики - в них передается контейнер

Evgeniy
04.04.2017
12:15:36
так это service locator

Aleksandr
04.04.2017
12:15:42
Т9 сука

Evgeniy
04.04.2017
12:15:43
уже плохо такое надо избегать)
сам дядюшка фаулер в 2004 году об этом написал

Google

Kirill
04.04.2017
12:16:47
хорошо, вот пример возможностей ларовского контейнера:
public function some(AnyRepo $some) { ... }
...
$container->when(SomeClass::class)
->needs(AnyRepo::class)
->give(function() {
return new DoctrineAnyRepo(...);
});
$container->call('SomeClass@some');

Aleh
04.04.2017
12:17:11

Kirill
04.04.2017
12:17:21
он не компилится

Aleh
04.04.2017
12:17:26
и не нужен

Evgeniy
04.04.2017
12:18:02

Kirill
04.04.2017
12:18:09
сам код: пример того, как можно всунуть реализацию по интерфейсу внутрь метода внутри конкретного класса или набора классов (его детей)

Evgeniy
04.04.2017
12:18:10
из psr ContainerInterface

Kirill
04.04.2017
12:18:34
так я не получал ничего

Aleh
04.04.2017
12:18:42
чтобы вызвать метод, надо брать контейнер, оч удобно
а еще простыню кода написать

Evgeniy
04.04.2017
12:18:56
зачем люди пытаюстя переизобрести синтаксис

Kirill
04.04.2017
12:18:57
я вызвал метод у класса, создав объект оного сквозь контейнер и просунул в метод реализации интерфейсов из контейнера
не, ну можно $container->call([$some, 'some'])
или другой callable

Aleh
04.04.2017
12:19:44
все равно это абсолютно вредное и не нужное нечто

Kirill
04.04.2017
12:20:26
srsly? https://github.com/SerafimArts/SerafimArts/blob/master/app/Interfaces/Http/Controllers/ArticleController.php#L28
вот на практике использвоание
короче, если нужен феншуй, то симфонийский
а ларовский, как я уже сказал, на порядки более мощная штука. Нужно оно или нет - уже вам решать

Evgeniy
04.04.2017
12:21:53
или свой самописный)
кому то и pimple хватает

Kirill
04.04.2017
12:22:27
ну pimple, symfony, php-di - это всё одно и то же
только с разных сторон