LIMB

LIMB
Limb3 PHP Web Application Framework
LIMB logo.gif
Тип

CMF

Написана на

PHP

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

2007.4 (31 декабря 2007)

Лицензия

LGPL

Сайт

limb-project.com

Limb3 — это свободный PHP5 фреймворк, приспособленный к быстрой разработке приложений, без существенного усложнения поддержки получившихся продуктов. Limb3 не является монолитным фреймворком, что позволяет использовать его в качестве библиотеки компонентов. Limb3 состоит из набора относительно независимых пакетов, каждый из которых должен решает свою задачу. Каждый пакет более или менее независим от других, и для разрешения межпакетных зависимостей используется схема, принятая в PEAR.

Содержание

История и идеология

Первый официальный релиз Limb2 состоялся весной 2004 года, однако работа велась около года и до этого. Осенью 2004 года Limb занял 3-е место на Zend PHP 5 Contest[1][2]. Два года использования выявили плюсы и недостатки Limb2, и в конце 2005 года началось разделение кодовой базы на более узкоспециализированные пакеты. Полностью отказаться от Limb2 было на тот момент невозможно, поэтому было решено создать полностью отдельную ветку Limb3. При разработке предъявляются высокие требования к качеству кода. Около 90% кода Limb3 покрыто модульными тестами. В разработке используются Agile-методики: TDD, парное программирование, ContinuousIntegration и проч. Limb3 не накладывает на разработчиков никаких ограничений в вопросах интеграции с другими фреймворками.

Основные пакеты limb3 и их функции

core

Базовый пакет, отвечающий за поддержку подключения других пакетов. Содержит базовые классы для работы с различными контейнерами данных и коллекциями. Практически все остальные пакеты зависят от него.

  • подключение классов и поддержка отложенной загрузки кода (autoload)
  • отложенная инициализация объектов
  • контейнеры данных (как списковые, так и несписковые контейнеры данных)
  • объектные формы call_back вызовов
  • различные утилитарные классы для сериализации, создания декораторов на лету, упрощению работы с массивами

toolkit

Пакет является реализацией паттерна Dynamic Service Locator. Его суть состоит в том, что есть некий легко доступный объект, который является общим местом для доступа ко всем популярным объектам (сервисам) и в том, что возможности этого объекта можно легко расширять.

macro

Пакет реализует относительно простой компилирующий шаблонизатор, со следующими особенностями:

  • никаких ограничений на РНР-вставки
  • включение и враппинг шаблонов (с поддержкой зон)
  • облегчённая поддержка контекстов данных (локальные и глобальные данные)
  • отсутствие runtime дерева компонентов
  • модификация данных производится с помощью фильтров

dbal (Data Base Abstraction Layer)

Пакет предоставляет объектно-ориентированный доступ к базе данных, абстрагируясь от деталей конкретной реализации. В данный момент поддерживаются следующие базы данных: MySQL (MySQLi), PostgreSQL, SQLite и Oracle.

active_record

Реализация паттерна ActiveRecord, отчасти схожего с реализацией подобного паттерна в Ruby on Rails.

  • автоматическое определение наименований и типов полей таблицы
  • поддержка отношений один-к-одному, один-ко-многим и много-ко-многим
  • поддержка ValueObjects
  • поддержка наследования в рамках одной таблицы (Single Table Inheritance)
  • поддержка «отложенной загрузки» (LazyLoading) для коллекций
  • тесная интеграция с шаблонизатором

web_app

Пакет позволяет строить веб-приложения, применяя паттерн MVC. Сам пакет предоставляет классы для реализации только Controller-составляющей. Выбор средства для реализации модели и отображения всё равно лежит на конечном разработчике приложения, хотя WEB_APP реализован таким образом, чтобы максимально упростить работу с приложениями, где в качестве модели будут выбраны «родные» для Limb3 пакеты DBAL и ACTIVE_RECORD, а в качестве отображения — пакет VIEW.

tests_runner

Пакет для организации и запуска SimpleTest тестов для приложений, которые содержат большие тестовые наборы. В поставку с пакетом входят классы, которые позволяют выполнять тесты в cli или web-режиме.

Полный список пакетов limb3, с описанием

Название Зависимости Назначение
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 Имплементация паттерна Intercepring Filter.
I18N CORE, TOOLKIT, VALIDATION, CONFIG, UTIL, CLI, DATETIME Пакет, упрощающий процесс интернационализации приложений
IMAGEKIT CORE Примитивные средства, абстрагирующие работу с графическими библиотеками
JS Пакет, содержащий JavaScript-средства для модульной загрузки кода и набор базовых JavaScript классов
MACRO CORE, FS Шаблонизатор MACRO
MAIL Обертка 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) Расширенный текстовый редактор для ввода гипертекста

Примечания

  1. Perrick Penet Introduction to SimpleTest. FOSDEM, Bruxelles (2005). Архивировано из первоисточника 11 сентября 2012. Проверено 7 февраля 2012.
  2. PHP5 Coding Competition Winners, Google Blogoscoped (26 октября 2004). Проверено 7 февраля 2012.

Литература

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "LIMB" в других словарях:

  • limb — LIMB, limburi, s.n. 1. Partea lată (şi verde) a frunzei, legată de ramură (sau de tulpină) prin codiţă. 2. Marginea gradată a scării unui instrument topografic de măsură. 3. Navă folosită la limbare. – Din fr. limbe, germ. Limbus. Trimis de… …   Dicționar Român

  • limb — [lım] n [: Old English; Origin: lim] 1.) out on a limb alone and without help or support ▪ All the other countries signed the agreement, leaving Britain out on a limb. ▪ He d gone out on a limb (=taken a risk) to help us. 2.) an arm or leg 3.) …   Dictionary of contemporary English

  • Limb — (l[i^]m), n. [OE. lim, AS. lim; akin to Icel. limr limb, lim branch of a tree, Sw. & Dan. lem limb; cf. also AS. li[eth], OHG. lid, gilid, G. glied, Goth. li[thorn]us. Cf. {Lith}, {Limber}.] 1. A part of a tree which extends from the trunk and… …   The Collaborative International Dictionary of English

  • Limb — can have many meanings. ten thousand to be precise.*from the Old English lim : **Limb (anatomy), a limb is a jointed or prehensile appendage of the human or animal body **a large or main branch of a tree. **In social structure, a representative,… …   Wikipedia

  • limb — [ lım ] noun count ** 1. ) an arm or a leg: She rested her tired, aching limbs. an artificial limb 2. ) a large branch on a tree 3. ) a part of something that sticks out out on a limb in a position where you have no support from other people… …   Usage of the words and phrases in modern English

  • limb — ► NOUN 1) an arm, leg, or wing. 2) a large branch of a tree. 3) a projecting part of a structure, object, or natural feature. ● life and limb Cf. ↑life and limb ● out on a limb Cf. ↑ …   English terms dictionary

  • limb — limb1 [lim] n. [with unhistoric b < ME lim < OE, akin to ON limr, limb < IE base * (e)lei , to bend > EL(BOW)] 1. a part that extends from the trunk of a body, as an arm, leg, or wing 2. a large branch of a tree 3. any projecting part …   English World dictionary

  • Limb — Limb, v. t. 1. To supply with limbs. [R.] Milton. [1913 Webster] 2. To dismember; to tear off the limbs of. [1913 Webster] …   The Collaborative International Dictionary of English

  • Limb — Limb, n. [L. limbus border. Cf. {Limbo}, {Limbus}.] A border or edge, in certain special uses. (a) (Bot.) The border or upper spreading part of a monopetalous corolla, or of a petal, or sepal; blade. (b) (Astron.) The border or edge of the disk… …   The Collaborative International Dictionary of English

  • LIMB US — (лат.), кайма, край. Этим термином в анатомии пользуются для обозначения 1) свободного снабженного ячейками края для корней зубов зубного отростка верхней и нижней челюстей (pars, s. proces sus alveolaris maxillae et mandibulae) limbus… …   Большая медицинская энциклопедия

  • limb — lȉmb m <N mn ovi> DEFINICIJA 1. rel. prekogrobno boravište starozavjetnih pravednika i umrle nekrštene djece 2. tehn. rub s ucrtanom stupanjskom skalom, sprava za mjerenje kutova 3. astron. obod nebeskih tijela ETIMOLOGIJA lat. limbus:… …   Hrvatski jezični portal


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»