@oop_ru

Страница 112 из 785
Evgeniy
18.02.2017
14:49:30
IoC реализует ContainerInterface

в начале его спрашивают ты можешь загрузить EntityManager::class

он говорит да или нет, если говорит да, то ему говорят грузи хули и что он вернет передадут пользователю

который запросил в locator нужный ему entityManager

Google
Evgeniy
18.02.2017
14:51:48
если он говорит я не могу (нету файла конфига по сути) locator идет по другим объектам реализующим ContainerInterface и спрашивает у них можешь загрузить ...

и так пока объекты с ContainerInterface не кончатся которые были переданы ему в constructor если он прошел их все и не смог загрузить вылетаем с NotFoundException

примерно такая логика

Sergey
18.02.2017
14:52:46
мне не интересна его биография, мне интересно узнать его зону ответственности. Что он делает? Одним предложением

Aleh
18.02.2017
14:53:08
инклудит файлы по имени класса)

Sergey
18.02.2017
14:53:19
ну вот что-то типа такого я хотел услышать)

Evgeniy
18.02.2017
14:53:32
https://github.com/container-interop/fig-standards/blob/master/proposed/container.md

Aleh
18.02.2017
14:53:47
посмотри как там твоя проблема решена

Sergey
18.02.2017
14:54:21
https://github.com/container-interop/fig-standards/blob/master/proposed/container.md
я знаю про стандарт. Меня не интересует интерфейс - меня класс, конкретная реализация интересует

Aleh
18.02.2017
14:54:35
ты пытаешься сделать какой-то модульный подход, как в пайтоне или ноде в пхп

но тут не так

Evgeniy
18.02.2017
14:54:48
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-11-container-meta.md вот и https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-11-container.md

Google
Evgeniy
18.02.2017
14:55:09
это accepted стандарты и вот тот самый костыль на случай если пользователь либы не знает что то из psr

доказывает его необходимость

Aleh
18.02.2017
14:55:25
эм

чет я вообще не уловил логику

Evgeniy
18.02.2017
14:56:10
потому что вы код начали смотреть через одно место не с той стороны

Aleh
18.02.2017
14:56:13
вижу два psr, причем к ним пользователи, которые не знают про psr

Evgeniy
18.02.2017
14:56:20
привязавшись к include и к ob_start

Aleh
18.02.2017
14:56:33
но ты так и не объяснил зачем оно

мы все пытаемся выбить из тебя

но ты сопротивляешься(

партизан

Sergey
18.02.2017
14:56:46
потому что вы код начали смотреть через одно место не с той стороны
мы тут в чатике ООП. То есть место где можно позагоняться на тему "почему у тебя имена классов не передатю что они делают"

Sergey
18.02.2017
14:57:05
Aleh
18.02.2017
14:57:12
да, что вот)

Sergey
18.02.2017
14:57:19
"ой все"

Evgeniy
18.02.2017
14:57:39
опиши мне зону ответственности этого класса

IoC реализует ContainerInterface

мне не интересна его биография, мне интересно узнать его зону ответственности. Что он делает? Одним предложением

там были дополнительные детали, чтобы было понятней но мой ответ что ответсвенность IoC состоит в том чтобы соответствовать ContainerInterface

Google
Evgeniy
18.02.2017
14:58:44
это было достаточная информация

Aleh
18.02.2017
14:59:08
где-то в ContainerInterface есть требование юзать include и ob_start?

Evgeniy
18.02.2017
14:59:25
причем тут это ?

там нет требования юзать Reflection но ее юзают

Aleh
18.02.2017
14:59:39
мы тут хотим узнать зачем ты их юзаешь

Evgeniy
18.02.2017
14:59:47
и она еще медленее чем include php файла

Aleh
18.02.2017
14:59:51
зачем использовать Reflection легко описать

Evgeniy
18.02.2017
15:00:03
чтобы вынести определения создания объекта в отдельный фаил

в тех случаях когда информации в рефлектион не достаточно например

Aleh
18.02.2017
15:00:24
не вопрос, зачем его импортить?

Evgeniy
18.02.2017
15:00:34
а какой другой вариант?

Sergey
18.02.2017
15:00:55
и она еще медленее чем include php файла
вообще-то чтение с файловой системы помедленнее будет

Sergey
18.02.2017
15:01:01
а еще парсинг

и выполненение

Evgeniy
18.02.2017
15:01:12
reflection точно также читает

Aleh
18.02.2017
15:01:16
psr-4?)

Evgeniy
18.02.2017
15:01:27
в случае кэша в обоих случаях он будет

psr-4 вообщем не об этом

Aleh
18.02.2017
15:01:50
в смысле не об этом?))

Google
Aleh
18.02.2017
15:01:55
конечно же об этом

Evgeniy
18.02.2017
15:02:20
к сожалению нет давай я договорю с Сергеем потом покажу тебя что там psr-4 не при делах ?)

чтобы не вести 2 дискуссии паралельно

Aleh
18.02.2017
15:02:36
при делах

смотри

Evgeniy
18.02.2017
15:03:40
сейчас будем мерить бенчмарком подключение файла и рефлестион потом вспоминать про кэши в виде apc и тд

а еще парсинг

и выполненение

Aleh
18.02.2017
15:03:42
ты предлагаешь контейнеру бегать по фс и по имени класса лоадить файлы, все файлы должны лоадится через psr-4, а фабрики в контейнер надо, тадададада, передать!

Admin
ERROR: S client not available

Aleh
18.02.2017
15:03:52
надо сравнивать бегание по фс

и не бегание по фс

кто же победит

хм

Evgeniy
18.02.2017
15:04:09
хорошо давай о psr-4

вот твоя ситуация у тебя есть такой код

http://pastebin.com/ZzyBAycz

он впринципе не противоречит psr

Google
Evgeniy
18.02.2017
15:06:25
но адский говно код в конструкторе

Aleh
18.02.2017
15:07:47
new Container([ Test::class => factory(function(Container $c) { return new Test($c->get(Logger::class); }) ]);

Evgeniy
18.02.2017
15:08:10
ок верно

но ты понимаешь что количество объектов в твоем коде овер много

Aleh
18.02.2017
15:08:39
какая разница сколько их?

Evgeniy
18.02.2017
15:08:44
и писать такие определения в самом начале это инициализировать дофига всего

Aleh
18.02.2017
15:08:53
ничего не инициализируется

Evgeniy
18.02.2017
15:08:59
да не все такие кривые и легаси

Aleh
18.02.2017
15:09:02
оно инициализируется по запросу

Evgeniy
18.02.2017
15:09:23
код функции выполняется да

а массив keyValue

у тебя таких классов как Test может быть много

Aleh
18.02.2017
15:10:07
даже если их около 10000, то это всего лишь 320 килобайт вроде

и нет никаких пробежек по фс

Evgeniy
18.02.2017
15:11:13
так работа фс кэшируется и php код тоже кэшируется

opcache

Aleh
18.02.2017
15:11:51
опкеш не кеширует фс О.о

Evgeniy
18.02.2017
15:12:10
он байт код кэширует

по твоему как кэшируется загрузка классов ?)

если не фс ?))

которая осуществляется через упомнятой тобой psr4 или deprecated psr0

получается инклуд будет закэширован скорей всего

Aleh
18.02.2017
15:13:44
что?

Страница 112 из 785