[Из песочницы] ZExt PHP Framework
Данным постом хочу представить IT-сообществу свой давний проект: PHP фреймворк «ZExt».В результате многолетней работы в различных проектах у меня накопилась библиотека, так сказать, всяческих полезностей, облегчающих повседневный труд программиста. Некоторые компоненты данного фреймворка являються частями корпоративного фреймворка компании viboom.ru в которой я проработал продолжительное время создавая эти компоненты. От руководства компании было полученно согласие на публикацию части исходного кода фреймворка. В последнее время я провёл определённую работу по «причёсыванию» фреймворка и теперь готов его представить сообществу в надежде, что вы найдёте чего либо полезное для себя в компонентах фреймворка.Фреймворк представляеться «как есть» и его автор не несёт ответственности за его использование.Репозиторий на GitHub.
Фреймворк требует PHP версии не ниже 5.4.Для работы компонентов требуется добавить пространство имён «ZExt» в автозагрузку классов (PSR-0) по пути: «my_app_library/ZExt».
Можно воспользоватся собственным автозагрузчиком классов фреймворка:
require 'my_app_library/ZExt/Loader/Autoloader.php';
ZExt\Loader\Autoloader: registerDefaults (); Так же можно добавить фреймворк через Composer:
{ «require»: { «zext/zext»: «dev-master» }, «repositories»: [ { «type»: «git», «url»: «https://github.com/mikemirten/ZExt» } ] } Теперь немного о его компонентах:
Debug Компонент представляющий набор средств для отладки PHP-приложений.Может использоваться в любом приложении вне зависимости от используемых в нём фреймворков и прочих технологий.Использует jQuery подключенный в вашем проекте или, при его отсутствии, подключает сам через GoogleApis.Подключение отладочной панели с параметрами по умолчанию:
$debug = ZExt\Debug\DebugBar: initDefaults (); Вывод информации производится в нужном месте (на пример в скрипте вида (view)) через приведение объекта отладчика к строке: echo $debug; Результатом работы отладчика будет вот такая панель: Попробуем бросить исключение:
throw new Exception ('Looks like an error occurred…', 100); При этом отладчик, перехватив его, вернёт отладочную информацию в качестве ответа на запрос: Слева появился элемент «Exception» с информацией о брошенном исключении.Совершим не фатальные ошибки:
echo $undefinedVar;
trigger_error ('something wrong'); Profiler Компонент отвечает за профилирование различных действий приложения и представляет информацию о времени и результате выполнения этих действий.Сымитируем обращение к некому сервису приложения и добавим профилировщик в панель отладки:
$profiler = new ZExt\Profiler\Profiler ();
$profiler→startRead ('Database read'); sleep (1); // Read from some service $profiler→stopSuccess ();
$profiler→startWrite ('Database write'); sleep (1); // Write to some service $profiler→stopError ();
$profiler→setName ('Database') →setIcon ('db');
$debug→addProfiler ($profiler); Теперь посмотрим результаты: Html Компонент призван облегчить создание различных HTML-конструкций.Возмём тег с большим количеством атрибутов:
$tag = new ZExt\Html\Tag ('iframe');
$tag→width = 640; $tag→height = 480; $tag→frameborder = 0; $tag→scrolling = 'no'; $tag→src = 'page.php'; $tag→id = 'frame';
echo $tag; Список: $list = new ZExt\Html\ListUnordered ();
$list→id = 'list'; $list→title = 'My list';
$list[] = 'Item 1'; $list[] = 'Item 2'; $list[] = 'Item 3'; $list[] = 'Item 4';
echo $list;
- Item 1
- Item 2
- Item 3
- Item 4