Основным изменением в ядре является переход на использование namespaces и traits, поэтому не получится просто так перевести новые проекты на новое ядро. Вторым не менее важным изменением является использование нового VT и, как следствие, использование нового генератора mfd.
Организация файлов фреймворка теперь поддерживает git, поэтому только папка web/lib.eaze является git submodule'м. В lib.eaze находятся:
Base.Tree и Base.VFS теперь расположены в отдельном репозитории eaze-vfs и получили идеологию пакета. Тесты рабочие и находятся в lib-tests.
Весь пользовательский код по-прежнему находится в web/lib.
Благодаря поддержке неймспейсов появилась возможность использовать composer. Для этого необходимо немного изменить eaze.*php файлы для включения автозагрузчика composer.
HtmlHelper, Eaze.Database/MySql, FirePHP
Для сомневающихся, зачем это все нужно Велосипеды все еще актуальны.
Как это ни печально, но на скорость загрузки PHP скриптов до сих пор влияет количество include/require файлов (даже с opcacher'ами). И в ближайшем будущем, судя по roadmap php ничего не поменяется.
Что для этого есть в composer почитать? php composer.phar dumpautoload -o
– этой командой composer создаст classmap, в котором будет массив файл → класс. При каждом запросе он не будет сканировать файловую систему, а будет просто делать require необходимого класса.
При разработке новой версии eaze мы попытались сравнить такой подход (небольшая модификация Package) и существующий (все классы для одного URI в одном файле). Существующий оказался на 15-25 процентов быстрее. Опять же это синтетические тесты, но они показательны. Сомневающиеся могут самостоятельно организовать данный тест.
В Yii есть похожая концепция – yiilite.php. Но судя по цитате, они решили проблему только для ядра, и то не полностью:
Стоит заметить, что использование yiilite.php без APC может отрицательно повлиять на производительность, так как yiilite.php включает в себя классы, которые могут не требоваться при каждом запросе и отнимать некоторое время на парсинг.
sergeyfast: