Comments 12
Интересно, bootstap`ами для модулей я не пользовался, но буду знать.

А ведь в FrontController`е есть еще одна не оптимальная операция связанная с модулями — это то, что при добавлении директории с модулями идет ее обход с целью поиска контроллеров, что также сильно влияет на производительность. Я решал это с помощью переопределения FrontController`а cо вставкой кеширования.

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

По-моему там даже рефлексия или проверка интерфейса производится.
Нет пока не сталкивался.
Но в ZF точно найдется что по оптимизировать :)
Очепятки:
— регестрируем
— плогине обрабатуем
— небил
— путо
— класа
— класам

Это только что мне бросается в глаза. Может Word еще чего найдет
У вас неточность в терминологии.
Zend_Application_Resource_Modules — это не «ресурс», а «плагин бутстрапа ресурса» (или проще «плагин ресурса») — 4.3.2. Resource Plugins (ZF manual).

По делу:
— Я бы не стал перекрывать именно ресурс modules. Почему бы не назвать его прямо LazyLoadModules?
— В этом ресурсе я бы использовал не Bootstrap.php, а LazyLoadBootstrap.php?

Тогда функционал стандартного плагина останется доступен, и не будет зависеть от lazyload механизма
Хотелось бы узнать прирост в производительности от применения данного подхода.
Меня особенно интересуют затраты времени на автозагрузку.
Здесь ответ стандартен, как и при любой другой оптимизации, все очень сильно зависит от ваших приложений, конфигураций, подхода к атозагрузке
Но этого ресурса есть один недостаток — он всегда загружает все Bootstrap файлы в независимости от того какое модули мы используем в конкретном запросе.

Я не считаю это недостатком. Напротив, в этом есть определенный смысл, ведь Bootstrap модуля регистрирует в автозагрузчике свои ресурсы (например модели, помощники видов и пр.). Если мы не загрузим все эти ресурсы при старте, то не сможем получить доступ к ресурсам одного модуля из другого.

Например: в модуле System у нас определена модель User. А в модуле Blog нам нужно ее использовать. Если мы не загрузим все модули сразу, то нет возможности получить модель «на лету». Придутся к месту танцы с бубном, вроде написания брокеров моделей, сервисов, инклудивших нужные модели самостоятельно и прочее и прочее. Не очень красиво.
я, например, использую Module_Bootstrap для инициализации acl, навигации, роутов специфичных для модулей, чтобы каждый модуль был законченным и относительно независимым.

Module_LazyLoad_Bootstrap действительно был бы хорошим дополнением к обычному Bootstrap, но никак не смог бы заместить его. У них просто различные функции.
Only those users with full accounts are able to leave comments. Log in, please.