С праздником, коллеги! И вот нас ждет подарок.
Ну или кара небесная.
Пока не ясно.
Короче говоря, мы напряглись, собрались, сконцентрировались и готовы представить публике новую версию нашего Каркас конечностей .
Ну, не совсем версия, а второй кандидат на выпуск — 2010.1 RC2. Для тех, кто не знает, Конечность — это PHP-фреймворк, ориентированный на быструю и гибкую разработку.
Наши приоритеты/гибкость — качество кода — скорость разработки.
Лимб с одним списком:
- Парадигма - MVC
- Внедрение зависимости - Инструментарий (императивное создание экземпляра)
- Организация приложения - ПерехватывающийФильтр
- ОРМ - АктивРекорд
- DBAL — собственная реализация (MySQL 4.1+, SQLite, Oracle (OCI8), PostgreSQL 8.2+, Linter)
- Шаблонизатор — Macro, WACT, Blitz и т. д.
- Тестирование - на основе Простой тест
возьми код , вооружитесь документацией и отчитываться, отчитываться, отчитываться.
А теперь подробнее о том, что мы имеем.
Пакеты для конечностей
Основной - энергичный
Пакет содержит глобальные функции для ленивой загрузки кода, работы с переменными окружения, пакетами.Кроме того, он содержит базовые контейнеры данных (наборы, объекты, коллекции).
И всякие утилитарные штучки: lmbArrayHelper для манипулирования массивами и коллекциями, lmbHandle , для тех, кто любит откладывать что-то на потом и lmbDelegate , для тех, кто не хочет делать это сам и предпочитает делегировать.
Инструментарий - придание гибкости
Инструментарий – реализация паттерна Dynamic Service Locator, один из методов Внедрение зависимости .Дело в том, что существует некий легкодоступный объект, который является общей точкой доступа ко всем популярным объектам (сервисам).
Это своего рода клей, который не дает коду скатиться в пучину статических зависимостей.
АктивРекорд - лишение рутины
ActiveRecord, как можно легко догадаться по названию, является одной из возможных реализаций ORM (отображение объектных отношений).Первоначальная идея пакета была взята из среды Ruby-On-Rails. РоР в данном случае выступал в качестве функционального ориентира.
И это то, что он может сделать/
- автоматически определять имена и типы полей таблицы
- подтвердить модели
- отношение один к одному , один ко многим И многие-ко-многим
- ValueObjects
- наследование в пределах одной таблицы (наследование одной таблицы)
- «Ленивая загрузка» (LazyAttributes) для атрибутов
- «жадные» операции (С нетерпением жду)
- объектный и глобальный события
- пользовательские коллекции
- связь с параметрами
ДБАЛ - манипулятор данных
Не нравятся 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. С какой стороны мне его укусить?
- Страница для вступающих в нашу секту
- Как создать простое CRUD-приложение
- Как создать интернет-магазин
- Документация
- Часто задаваемые вопросы
- Форум
- Биты кода
- Дорожная карта
P.S.: Не пинайте меня сильно за ошибки, ведь накануне этого светлого момента я не спал 30 часов.
Напишите мне в личку и мой портативный клон Грызлова спокойно все исправит. ЗЫЫ: Еще раз с праздником! Простой код, легкая отладка и еще больше интересных идей, благодаря которым наша работа нравится! Теги: #php #pohape #framework #limb #limb3 #born #php
-
«Тонкий Мир» Глава 1
19 Oct, 24 -
Работа С Oauth V2
19 Oct, 24 -
Егэ Можно Сдать Онлайн
19 Oct, 24 -
Вы Смотрели «Звездные Войны»?
19 Oct, 24