Я и сам чутка потестировал, но это для себя — даже не документировал. У меня числа чуть похуже, но это скорее из-за того что у меня там все-таки разное еще и происходит, а не только классы грузятся. Ну и запускаю я это хрен знает где на очень странно настроенной машине с кучей фигни. Как это все попадет на нормальный сервер — буду уже хвастаться или плакаться :)
По памяти: ab выдавал где-то 0.8 с Хотплагом, чуть меньше 0.1 без. Хотя может и вру. Давайте лучше Котеровским числам верить
Был. Я тогда не знал о тукенайзере в пхп, и require вырезал весьма криво, а переделывать не захотел. Кроме того, изучения Zend Framework после этого забросил, так и не написав на нем ни одного проекта. Скриптина лежит здесь, можешь использовать любую понравившуюся часть :)
Зацепило низким стартом. Первая строчка, которую ты пишешь уже служит твоим целям, а не целям запуска фреймворка. Кстати, сами создатели коханы говорят о зенде: «Фреймвор задумывался как инструмент для быстрой разработки, но им не является». В какой-то степени я согласен, много движений уходит на связывание компонентов. В кохане расширяемость решена немного иначе.
Что-то Ваше решение напоминает наколенкособранное — «похачил», «пофиксил». Не пробовали, коль уж занялись слиянием более аккуратно пропарсить структуру «без хаков» и «фиксов»?
Я предлагаю так и сделать, просто может кто очень хочет этим заняться, или уже сделал, или есть готовое решение?
Еще там есть несколько фич, которые очень сложно сделать. Например, как избавиться от хака Zend_Loader? Унаследовать его? А как попросить _Autoloader использовать именно наш класс? И так далее.
В этом всём надо разбираться, а возможно, что ZF такие штуки пока не поддерживает. Чем больше я его использую, тем он оказывается недоделаннее — вот только что зааппрувил баг к ним в трекер :)
Поэтому я и сделал на хаках. Да, быстро и грязно. Но хватит один раз собрать HotPlug.php и всё, можно больше не париться, так что эти хаки неопасны и их можно в любой момент убрать, не опасаясь, что программа сломается.
Ну, товарищ, не пытайтесь найти всегда чьи-либо готовые решения, иногда приходится писать самому и руками. Если Вы рассказываете про решение, то постарайтесь сделать его универсальнее. Пока я вижу только может, а вдруг, а что если, может унаследовать и так далее. Иначе, Ваша статья рассказывает лишь о том, что я молодец — решил поставленную передо мной задачу. Хабр же, на мой взгляд, предполагает несколько другой масштаб предоставления информации — я нашёл решение, готов поделиться. Ваше решение грязное, увы и ах.
Еще одна причина не использовать ZF, слишком громоздкий, корявый и универсальный фреймворк, а судя по объему, авторы первоначально принесли свои идеи с явовских монстров.
Сам ты тролль, раз тебе всюду тролли видятся. ZF и правда громоздкий (не лень было отдельно делать обертки даже для функций типа include/is_readable и т д), и излишне универсальный (т к все компоненты могут использоваься отдельно или быть заменены на другие).
Хотя зачем объяснять это троллю, что подходы, применяемые к большим серверным явовским или другим долгоживущим приложениям, непрменимы в php хотя бы из-за разного способа взаимодействия приложения с веб-сервером.
Занимаюсь этой же задачей в настоящий момент. Решение подобное предложенному вами исключил по причине отсутствия универсальности: надо создавать файл со списками классов, а это как-то криво. Добился того, что собирается только Zend Framework со всеми зависимостями и покомпонентно (иначе полная сборка существенно увеличивает расход памяти, а использоваться могут не все классы). Именно такой вариант считаю правильной сборкой в один файл, т.к. даже при обновлении надо будет всего лишь перезапустить скрипт с таким же набором опций. Готового ничего не находил (поэтому и решил взяться за задачу). Скоро причешу код, добавлю скрипту управление через консоль и выложу здесь в статье. Надеюсь кому-то будет полезно.
Пока я реализовал отключение только по папкам. Адаптеры подключатся все сразу, но не вижу именно в этом большой проблемы. В конце концов намного важнее отлючить неиспользуемые библиотеки, чем биться за каждый файл.
Я бы не сказал. Там, скажем, хелперов к виду больше, чем фаилов в некоторых библиотеках :)
Нет, мне ваше решение совсем не нравится. Чем плох фаил со списком классов? Возможно, метод его создания кривоват, но сама практика не так плоха. Тем более, похожим образом работает Zend_Loader_PluginLoader
По поводу хэлперов вида: более 80% используются так или иначе на большом проекте (обеспечивается за счёт Zend_Form).
В принципе непонятно зачем нужно генерить какой-то файл, если достаточно только структуры директорий и включений (замечу, что автоладер использовать тоже не нужно) — это даёт все необходимые зависимости. В итоге имеем подход для сборки любых больших библиотек (взятых из того же PEAR). Это более серьёзный результат.
Короче, это 2 разных подхода: мой позволяет получить фаил легче и без лишнего, ваш — собрать любую библиотеку полностью без лишних телодвижений. Хватит холивара 8)
Господа, с ZF сталкиваюсь не часто, но приходится… Я точно помню что для ZF был олнайн сервис, где ты указываешь калссы которые тебе нужны, а сервис сам определяет зависимости и выдает тебе архив с минимальным набором классов.
Кто ни будь может подсказать урл? а то я находил, даже делал мини сборку которую сейчас успешно юзаю в проекте… но урл вот забыл и как то нагуглить не могу :)
Я понимаю и спрашиваю тут, потому что собрались люди явно в теме и есть шанс получить ответ. прошу прощения за офтопик… :) но если ктото все же знает урл этого сервиса, я буду очень благодарен. Или в личку, если не сложно, дабы не засорять топик.
ам… код без подсветки читать не удобно, но мне кажется здесь отсутствует самое главное — проверка файлов на актуальность. собственно из-за этого и желательно сливать в один файл, т.к. проверка времени последнего обновления и становится бутылочным горлышком.
Решение гораздо проще — отключить проверки кэшера опкода, всё равно это для продакшина где обнавления не частые.
Сборка Zend Framework