SlimBrowser
- 1 year ago
- 0
- 0
Limb3 — свободный PHP5 фреймворк , приспособленный к быстрой разработке приложений, без существенного усложнения поддержки получившихся продуктов. Limb3 не является монолитным фреймворком, что позволяет использовать его в качестве библиотеки компонентов. Limb3 состоит из набора относительно независимых пакетов, каждый из которых должен решать свою задачу. Каждый пакет более или менее независим от других, и для разрешения межпакетных зависимостей используется схема, принятая в PEAR .
Первый официальный релиз Limb2 состоялся весной 2004 года, однако работа велась около года и до этого. Осенью 2004 года Limb занял 3-е место на Zend PHP 5 Contest . Два года использования выявили плюсы и недостатки Limb2, и в конце 2005 года началось разделение кодовой базы на более узкоспециализированные пакеты. Полностью отказаться от Limb2 было на тот момент невозможно, поэтому было решено создать полностью отдельную ветку Limb3. При разработке предъявляются высокие требования к качеству кода. Около 90 % кода Limb3 покрыто модульными тестами. В разработке используются Agile -методики: TDD , парное программирование , и проч. Limb3 не накладывает на разработчиков никаких ограничений в вопросах интеграции с другими фреймворками.
Базовый пакет, отвечающий за поддержку подключения других пакетов. Содержит базовые классы для работы с различными контейнерами данных и коллекциями. Практически все остальные пакеты зависят от него.
Пакет является реализацией паттерна . Его суть состоит в том, что есть некий легко доступный объект, который является общим местом для доступа ко всем популярным объектам (сервисам) и в том, что возможности этого объекта можно легко расширять.
Пакет реализует относительно простой компилирующий шаблонизатор, со следующими особенностями:
Пакет предоставляет объектно-ориентированный доступ к базе данных , абстрагируясь от деталей конкретной реализации. В данный момент поддерживаются следующие базы данных: MySQL ( MySQLi ), PostgreSQL , SQLite и Oracle .
Реализация паттерна ActiveRecord , отчасти схожего с реализацией подобного паттерна в Ruby on Rails .
Пакет позволяет строить веб-приложения, применяя паттерн MVC . Сам пакет предоставляет классы для реализации только Controller-составляющей. Выбор средства для реализации модели и отображения всё равно лежит на конечном разработчике приложения, хотя WEB_APP реализован таким образом, чтобы максимально упростить работу с приложениями, где в качестве модели будут выбраны «родные» для Limb3 пакеты DBAL и ACTIVE_RECORD, а в качестве отображения — пакет VIEW.
Пакет для организации и запуска SimpleTest тестов для приложений, которые содержат большие тестовые наборы. В поставку с пакетом входят классы, которые позволяют выполнять тесты в cli или web -режиме.
Название | Зависимости | Назначение |
---|---|---|
ACL | CORE | Пакет реализует функционал ACL |
ACTIVE_RECORD | CORE, DBAL, VALIDATION | Реализация паттерна ActiveRecord |
CACHE | CORE | Набор классов, предназначенных для обобщения различных техник кеширования |
CALENDAR | JavaScript календарь | |
CLI | CORE | Различные средства, упрощающие разработку CLI интерфейса |
CONFIG | CORE | Различные средства для работы с конфигурационными файлами |
CORE | Пакет, отвечающий за поддержку подключения других пакетов. Содержит базовые классы для работы с различными контейнерами данных и коллекциями. Практически все остальные пакеты зависят от него. | |
DATETIME | CORE | Пакет для работы с временем, датой, временными периодами |
DBAL | CORE, TOOLKIT, NET | Пакет, абстрагирующий работу с БД |
FS | CORE | Различные средства для работы с файловой системой: базовые файловые операции, нахождения файлов по псевдонимам и др. |
FILTER_CHAIN | CORE | Имплементация паттерна . |
I18N | CORE, TOOLKIT, VALIDATION, CONFIG, UTIL, CLI, DATETIME | Пакет, упрощающий процесс интернационализации приложений |
IMAGEKIT | CORE | Примитивные средства, абстрагирующие работу с графическими библиотеками |
JS | Пакет, содержащий JavaScript -средства для модульной загрузки кода и набор базовых JavaScript классов | |
MACRO | CORE, FS | Шаблонизатор MACRO |
Обертка PHPMailer библиотеки, предназначенной для отсылки почты | ||
NET | CORE, UTIL | Набор классов в для работы с сетевыми протоколами (в основном с HTTP ) |
SEARCH | CORE, DBAL, I18N | Средства для организации индексирования и поиска (пакет длительное время не находится в разработке) |
SESSION | CORE, DBAL | Средства для работы с PHP-сессиями и абстрагирования источника хранения сессионных данных(пока только БД) |
TESTS_RUNNER | Тестовая оболочка, основанная на SimpleTest, позволяющая организовать группы тестов, используя расположение тестов в файловой системе | |
TOOLKIT | CORE | Средства для организации Dependency Injection (реализация Dynamic Service Locator) |
TREE | CORE, TOOLKIT, DBAL, VALIDATION, CACHE | Пакет для организации хранения деревьев в БД |
VALIDATION | CORE | Пакет, предоставляющий различные средства валидации данных |
VIEW | WACT[опционально], MACRO[опционально] | Пакет, содержащий средства для работы с представлением |
WACT | Шаблонизатор WACT | |
WEB_APP | CORE, CONFIG, FILE_SCHEMA, TOOLKIT, I18N, WACT, CLI, CACHE, DBAL, VALIDATION, ACTIVE_RECORD, SESSION, MAIL, DATETIME, FILTER_CHAIN, NET | Набор различных средств для построения web-ориентированных приложений |
WYSIWYG | CORE, WEB_APP, WACT (MACRO) | Расширенный текстовый редактор для ввода гипертекста |