Framework

SaaS-платформа для PHP

za-ek
Обзор фреймворка

SaaS-фреймворк

Фреймворк zaek разрабатывался для быстрого создания модулей, основное отличие zaek фреймворка от других - это максимальное использование возможностей языка php.

В zaek фреймворке используется проблемно-ориентированное проектирование (DDD), а это значит, что разобраться в такой программе проще, нежели в программе, созданной с ООП подходом, даже хорошо документированной.

Поскольку PHP является скриптовым языком, то данный фреймворк придерживается логики программа=скрипт. Начав работать с zaek фреймворком, Вы поймёте, насколько это удобно.

Установка

Репозиторий фреймворка располагается по адресу https://github.com/za-ek/zaek, там же расположены инструкции по установке. В первую очередь, необходимо установить базовое расширение, в которое входят скрипты контроллера, примеры файлов конфигурации и локализации.

Ключевые моменты

Конфигурация

По умолчанию, загружаются все файлы конфигурации из директории /zaek/conf, затем Вы можете добавлять конфигурации в программе и они будут сохраняться в стек. Данный стек будет обходиться при доступе к параметру конфигурации в порядке LIFO, поэтому, если конфигурация хранится в объекте на уровне ниже и переопределена на уровне выше, нижестоящий объект создан не будет.

Маршрутизация

Базовая маршрутизация производит поиск файлов в директории /content/, т.е. обращение к адресу http://www.example.com/test.php подключит скрипт /content/test.php. Для расширения маршрутизатора переопределите в классе CMain, описанном в файле /zaek/bin/controller.php, метод route($uri), который возвращает путь к файлу.

Шаблоны

Шаблоны хранятся в папке /templates/, в базовой установке есть два шаблона: default и empty. Шаблон default используется по умолчанию и имеет базовый шаблон html5, пустой шаблон просто подключает вызываемый скрипт.

Буферизация

По умолчанию используется буферизация вывода, поэтому в любом скрипте Вам доступны методы header и setcookie, также, Вы можете выполнять отложенный вывод значений, например, вывод заголовка страницы может быть переопределён непосредственно в исполняемом скрипте.

Использование базы данных

Интерфейс подключения к базе описан в директории /zaek/lib/zaek/data/, в классах CCluster и CConnector, CCluster является коллекцией объектов подключения, а CConnector - абстрактным классом объектов подключения, пример реализации доступен для использования ini-файлов и расширения mysqli. Описаны методы выборки (select), удаления (delete), обновления (update) и добавления (insert) данных.

Создание модулей

Для создания модулей установите расширение zaek_dev, которое включает в себя интерфейс для управления файлами и размещения их в модулях. Поскольку идея фреймворка - это одна программа соответствует одному скрипту, в контексте модуля каждый файл будет являться единицей, которая может быть включена в единственный модуль. Пример написания модуля будет описан в другой статье. Создание модулей позволяет Вам устанавливать их на другие системы, работающие с za-ek framework.

Development - Testing - Production

Для организации системы из трёх серверов Вы можете использовать стандартную библиотеку обновлений. Разработав модуль на сервере development, Вы можете нажатием одной кнопки установить модуль на сервер testing и затем на сервер production.