Приветствую!
Решил написать систему на движке PHP ...
Система называется RC - rewrite and customize - переписывай и настраивай, т.е. с этим нет никаких проблем :)
Зачем и для кого?
В первую очередь для себя. Все остальные фреймворки отличаются своей сложностью, на освоение нового фр. тратится огромное кол-во времени + если хочешь сделать что-то нестандартное или нешаблонное натыкаешься на тупик. Поэтому, я попыталься создать что-то простое, что можно с лёгкостью настроить "под себя". Мой фреймворк не ставит перед собой цель "переплюнуть" таких "мостров" как Zend и Symfony, однако может стать основой для другого фреймворка.
В своё время я написал пару вещей на CodeIgniter , мне этот фр. понравился своей простотой, но тем не менее я понял, как можно сделать лучше некоторые вещи (файлы настроек, автозагрузка классов, маршрутизация и т.д.)
Структура:
Основной класс называется rc , также он является статичным, он отвечает за автозагрузку классов и управление настройками, всё остальное загружается опционально. Класс rc после инициализации загружает стартовый скрипт (по умолчанию run.php в корневой директории фреймворка) (это делается опционально, т.к. фр. может работать и запускаться из одного файла)
FrontController - главный контроллер, он отвечает за маршрутизацию.
Как и в любой архитектуре MVC контроллер загружает модели и отображает шаблоны. При этом используется "децентрализованная система шаблонов", а именно любой шаблон может быть встроен в любое место другого шаблона. Отображается один едиственный главный шаблон в главном контроллере, все остальные шаблоны в него "встраиваются".
Основные нововведения:
1)Файлы настроек:
Все настройки хранятся в файлах .php в формате стандартного массива.
Почему не XML, JAML, INI ... ?
В файле настроек можно написать код, кот. будет загружать настройки из другого места, в т.ч. из (XML, JAML, INI). Также в файл настроек можно передавать параметры в т.ч. из других настроечных файлов.
2)Региональные настройки
Региональные настройки обеспечивают поддержку мультиязычности на уровне дат и прочих форматов, хранятся настройки в отдельных файлах в директории "config/regional". Есть возможность конвертировать даты и др. форматы из одной региональной локали в другую. При этом локаль не обязательно язык, она может быть просто определённым форматом данных (например MySQL, MsSQL).
3)Библиотека "Simple SQL"
Я являюсь противником паттерна "ActiveRecord" и прочих "конструкторов SQL", если в запросе используется больше, чем одна таблица - его лучше писать в ручную. Библиотека "Simple SQL" реализует простые запросы (SELECT, UPDATE, INSERT, DELETE) при помощью одной ф-и и параметров.
4)Маршрутизация
Маршрутизация настраивается в отдельной файле настроек "config/routes.php", при этом можно указывать дополнительные параметры, кот. будут передаватся в контроллер.
В следующих постах подробнее распишу 1 2 3 и 4
С новым годом!
Ссылко на гитхаб
Решил написать систему на движке PHP ...
Система называется RC - rewrite and customize - переписывай и настраивай, т.е. с этим нет никаких проблем :)
Зачем и для кого?
В первую очередь для себя. Все остальные фреймворки отличаются своей сложностью, на освоение нового фр. тратится огромное кол-во времени + если хочешь сделать что-то нестандартное или нешаблонное натыкаешься на тупик. Поэтому, я попыталься создать что-то простое, что можно с лёгкостью настроить "под себя". Мой фреймворк не ставит перед собой цель "переплюнуть" таких "мостров" как Zend и Symfony, однако может стать основой для другого фреймворка.
В своё время я написал пару вещей на CodeIgniter , мне этот фр. понравился своей простотой, но тем не менее я понял, как можно сделать лучше некоторые вещи (файлы настроек, автозагрузка классов, маршрутизация и т.д.)
Структура:
Основной класс называется rc , также он является статичным, он отвечает за автозагрузку классов и управление настройками, всё остальное загружается опционально. Класс rc после инициализации загружает стартовый скрипт (по умолчанию run.php в корневой директории фреймворка) (это делается опционально, т.к. фр. может работать и запускаться из одного файла)
FrontController - главный контроллер, он отвечает за маршрутизацию.
Как и в любой архитектуре MVC контроллер загружает модели и отображает шаблоны. При этом используется "децентрализованная система шаблонов", а именно любой шаблон может быть встроен в любое место другого шаблона. Отображается один едиственный главный шаблон в главном контроллере, все остальные шаблоны в него "встраиваются".
Основные нововведения:
1)Файлы настроек:
Все настройки хранятся в файлах .php в формате стандартного массива.
Почему не XML, JAML, INI ... ?
В файле настроек можно написать код, кот. будет загружать настройки из другого места, в т.ч. из (XML, JAML, INI). Также в файл настроек можно передавать параметры в т.ч. из других настроечных файлов.
2)Региональные настройки
Региональные настройки обеспечивают поддержку мультиязычности на уровне дат и прочих форматов, хранятся настройки в отдельных файлах в директории "config/regional". Есть возможность конвертировать даты и др. форматы из одной региональной локали в другую. При этом локаль не обязательно язык, она может быть просто определённым форматом данных (например MySQL, MsSQL).
3)Библиотека "Simple SQL"
Я являюсь противником паттерна "ActiveRecord" и прочих "конструкторов SQL", если в запросе используется больше, чем одна таблица - его лучше писать в ручную. Библиотека "Simple SQL" реализует простые запросы (SELECT, UPDATE, INSERT, DELETE) при помощью одной ф-и и параметров.
4)Маршрутизация
Маршрутизация настраивается в отдельной файле настроек "config/routes.php", при этом можно указывать дополнительные параметры, кот. будут передаватся в контроллер.
В следующих постах подробнее распишу 1 2 3 и 4
С новым годом!
Ссылко на гитхаб
Комментариев нет:
Отправить комментарий