Разработка микрофреймворка

AmdY

Пью пиво
Команда форума
Redjik, там же можешь в замыкание завернуть, будет тебе ленивая инициализация
 

Redjik

Джедай-мастер
Redjik, там же можешь в замыкание завернуть, будет тебе ленивая инициализация
если использовать service locator в контроллере - да,
если же создавать контроллер через DIC, то все что мы передали в контрорллер в качестве зависимости будет инициализировано, но так то пофиг =))
 

fixxxer

К.О.
Партнер клуба
если же создавать контроллер через DIC, то все что мы передали в контрорллер в качестве зависимости будет инициализировано
как ты себе представляешь иное без извращений с рефлексией и кодогенерацией?
 

Вурдалак

Продвинутый новичок
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
Вурдалак, есть подозрение, что в ряде случаев затраты на такое проксирование превысят затраты на не всегда нужную инициализацию. =)

Ну то есть я бы такое стал пихать только туда, где это точно дает очень существенный выигрыш. А существенный выигрыш обычно подразумевает тяжелую инициализацию, то есть тяжелый код прямо в конструкторе, а это какой-то странный конструктор: уместнее в таком случае сделать рефакторинг именно этого класса, сделав ленивую инициализацию внутри.
 

Вурдалак

Продвинутый новичок
fixxxer, не, ну это очевидно. Это такой костыль для тяжелых конструкторов [внешних библиотек], кейс редкий.
 

hell0w0rd

Продвинутый новичок
Я сходу не представляю случаев, когда отложная инициализация сервиса нужна не контроллеру. А если каким-то экшенам не нужен тяжелый сервис - выделить их в отдельный контроллер.
 

fixxxer

К.О.
Партнер клуба
fixxxer, не, ну это очевидно. Это такой костыль для тяжелых конструкторов [внешних библиотек], кейс редкий.
И причем обычно у таких библиотек убогий API, и лучше написать свой адаптер, чем решить сразу все вопросы.

М, да, стоило просто написать "не нужен" =)
 

Вурдалак

Продвинутый новичок
fixxxer, не, ну делать ленивую инициализацию самому мне не очень интересно. Тут достаточно прописать «lazy: true» и всё. А если в каком-то месте получается лазанья-код, то может быть это и оправдано.

Короче, на диване с чашкой чая можно что угодно оправдать и опровергнуть.
 

Вурдалак

Продвинутый новичок
В Pimple конечно не нужен. Pimple — это просто контейнер, а ленивая инициализация — это скорее компетенция дампера контейнера. А Pimple живёт без таких страшных слов.
 
Последнее редактирование:

claygod

Новичок
Идея приведения в порядок зависимостей конечно оказалась не простой )) Спасибо за подсказку всем принявшим участие в обсуждении (как минимум, взял на вооружение замыкания). Организовал зависимости ( архив с изменённой версией 0.37 ). Для файлов ядра получился сервис-локатор, т.к. им дан доступ к контейнеру, остальные же зависимости реализованы таким образом, чтобы в класс через конструктор передавать переменные и объекты, но не контейнер. Резолверы прописаны в классах (в подвалах - нижней части), хотя конечно их можно вынести и куда-то отдельно (но хранить вместе мне показалось удобным - меняешь класс, добавляешь конструктору параметр или объект и тут же прописываешь в резолвере).
 

fixxxer

К.О.
Партнер клуба
А за архив без папочки внутри вообще полагается расстрел на месте. Ну вот я сделал wget и unzip, и мне теперь эту помойку чистить.
 
  • Like
Реакции: AmdY

С.

Продвинутый новичок
А за архив без папочки внутри вообще полагается расстрел на месте. Ну вот я сделал wget и unzip, и мне теперь эту помойку чистить.
А вот пользовался бы ГУИ, как все обычные люди, не строил бы из себя кул программера, не напоролся бы.
 

fixxxer

К.О.
Партнер клуба
Не беспокойся за меня, зачистил я тоже одной строкой в шелле.
Что не отменяет того, что за такое надо расстреливать.
 

hell0w0rd

Продвинутый новичок
fixxxer, а можно узнать как зачистил?) rm -rf + автодополнение, или есть более интересные варианты?
 

claygod

Новичок
А за архив без папочки внутри вообще полагается расстрел на месте.
Хм.. я наоборот люблю, но наверно действительно, всё должно быть в каталоге - поменял, спасибо за подсказку.

По поводу 99 года - я скорее с 89 бы сравнивал ))

На гитхаб не выложил - сначала надо освоить работу с гитхабом, а на работе у меня win, и инсталлировать софт нельзя (никакой). Так что тут небольшая заминка сорри.
 
Сверху