Каркас Конечностей, Версия 2010.1 Rc2

С праздником, коллеги! И вот нас ждет подарок.

Ну или кара небесная.

Пока не ясно.

Короче говоря, мы напряглись, собрались, сконцентрировались и готовы представить публике новую версию нашего Каркас конечностей .

Ну, не совсем версия, а второй кандидат на выпуск — 2010.1 RC2. Для тех, кто не знает, Конечность — это PHP-фреймворк, ориентированный на быструю и гибкую разработку.

Наши приоритеты/гибкость — качество кода — скорость разработки.

Лимб с одним списком:

Тем, кому не терпится разорвать нас на куски критикой и сообщениями об ошибках, пожалуйста.

возьми код , вооружитесь документацией и отчитываться, отчитываться, отчитываться.

А теперь подробнее о том, что мы имеем.



Пакеты для конечностей



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

Кроме того, он содержит базовые контейнеры данных (наборы, объекты, коллекции).

И всякие утилитарные штучки: lmbArrayHelper для манипулирования массивами и коллекциями, lmbHandle , для тех, кто любит откладывать что-то на потом и lmbDelegate , для тех, кто не хочет делать это сам и предпочитает делегировать.



Инструментарий - придание гибкости
Инструментарий – реализация паттерна Dynamic Service Locator, один из методов Внедрение зависимости .

Дело в том, что существует некий легкодоступный объект, который является общей точкой доступа ко всем популярным объектам (сервисам).

Это своего рода клей, который не дает коду скатиться в пучину статических зависимостей.



АктивРекорд - лишение рутины
ActiveRecord, как можно легко догадаться по названию, является одной из возможных реализаций ORM (отображение объектных отношений).

Первоначальная идея пакета была взята из среды Ruby-On-Rails. РоР в данном случае выступал в качестве функционального ориентира.

И это то, что он может сделать/



ДБАЛ - манипулятор данных
Не нравятся ORM? Вот вам DBAL! DBAL (уровень абстракции базы данных) обеспечивает объектно-ориентированный доступ к базе данных, абстрагируясь от конкретных деталей реализации.

Архитектура пакета DBAL вполне стандартна:

  • Драйвер — базовые классы, абстрагирующие доступ к базе данных.

  • Query — группа классов, позволяющих тем или иным образом инкапсулировать SQL-запросы различного назначения (SELECT, INSERT, UPDATE, DELETE).

  • Критерии — группа классов, позволяющих строить условия для SQL-запросов в объектной форме.



Просмотр, WACT и Макрос - выдающийся на экране
Limb следует парадигме MVC как средству логического разбиения кода на относительно независимые фрагменты.

Пакет View представляет одноименный уровень MVC и является абстракцией определенного механизма шаблонов.

На данный момент основным шаблонизатором в лимбе является Macro, пришедший на смену WACT. Помимо них, View поддерживает Blitz, JSON и собственный PHP. Макрос — это своего рода синтаксический сахар для нативного PHP. Мы не пошли по пути помощников, а остались верны тегам и фильтрам.

Коротко о Макросе:

  • промежуточная компиляция в PHP-код
  • две области видимости переменных: глобальная и локальная (на уровне шаблона)
  • механизм фильтра
  • шаблоны объединяются посредством include (включение дочернего шаблона), обертки (включение в родительский шаблон) и template+apply (применение шаблона)
  • поддерживается концепция слота
  • готовые теги для работы со списками, деревьями, листингом, формами и их полями, ссылками и интернационализацией
  • готовые фильтры для различного форматирования строк, чисел, дат и специальных форматов
  • расширяется с помощью наших собственных тегов и фильтров


Веб-приложение И система управления контентом - объединяя всю эту радость
Я уже упоминал MVC? И вот его вторая часть — WebApp. Пакет предоставляет классы для реализации только компонента Controller. Выбор инструмента для реализации модели и отображения по-прежнему остается за разработчиком конечного приложения.

С другой стороны, пакет реализован таким образом, чтобы максимально упростить работу с приложениями, где в качестве модели будут выбраны «родные» пакеты Limb DBAL и ActiveRecord, а в качестве инструмента отображения — пакет View. .

В общем, вдвойне, а местами и втрое.

Вам нужна админ-панель и средства для ее быстрого расширения? Они у меня есть - пакет CMS! Аутентификация, идентификация и прочее, инструменты для быстрого построения CRUD-интерфейсов, фильтров, форм.



ТестыRunner — внимательно следим за качеством
Пакет для организации и запуска тестов SimpleTest для приложений, с большим количеством тестов и сложными многоуровневыми фикстурами.

Пакет не имеет зависимостей от других пакетов, поэтому его можно аккуратно вырезать из Limb лобзиком для использования отдельно.



И другие
Список со всеми 37 (ужас!) пакетами .

Вот самые важные из них/

  • КЭШ(2) — абстракции от кэш-хранилищ (файлы, APC, база данных, память, сессии) и инструменты для работы с кэшами (защита от собачьей кучи, тегирование и логирование)
  • КОНСТРУКТОР — генератор консольного кода (модели, контроллеры, админка)
  • ФИЛЬТР_ЦЕПЬ — реализация паттерна Intercepring Filter, основа приложений Limb
  • МИГРАЦИЯ — синхронизация схемы базы данных между разработчиками и привязка ее к коду
  • ТАСКМАН - у нас есть свой Муравей, да


выводы

1. Зачем ты все это написал, если оно не стабильно?
На самом деле, я написал это, чтобы сделать его стабильным.

Чем больше приложений, тем стабильнее код. Некоторые новые пакеты (миграция, профиль, конструктор) мне кажутся сырыми, несмотря на то, что они используются в живых проектах.

Ну и хотелось привлечь в разработку «новую кровь».

2. Где я могу это получить?
Как я уже говорил, репозиторий находится на GitHub, и вы можете скачать его там код версии 2010.1 RC2 .

3. С какой стороны мне его укусить?
Хорошо короткое видео Кроме того, Лимб родился и вырос.

P.S.: Не пинайте меня сильно за ошибки, ведь накануне этого светлого момента я не спал 30 часов.

Напишите мне в личку и мой портативный клон Грызлова спокойно все исправит. ЗЫЫ: Еще раз с праздником! Простой код, легкая отладка и еще больше интересных идей, благодаря которым наша работа нравится! Теги: #php #pohape #framework #limb #limb3 #born #php

Вместе с данным постом часто просматривают: