PHP Lightweight Classes

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

Набор классов весьма стар (разработка 2008 — 2009 годов), но при этом не теряет актуальности. Очень активно применялась и продолжает применяться во всевозможных сайтах, админках, панелях управления, просто крон-скриптах. Создание безопасного и удобного приложения занимает очень мало времени, при этом не генерируя зависимостей от монструозных фреймворков.

Репозиторий на GitHub: github.com:petrows / php-light-classes

Примеры использования: github.com:petrows / php-light-classes / example

Демо-сайтик — работающее приложение из папки примеров скриптов

LForm — Генератор форм

Никогда не понимал людей которые делают сотни одинаковых шаблонов для форм, копипастя одно и то же из года в год. Ещё более не понимал горе-разработчиков у которых форма сбрасывается после отправки (например в случае ошибок). Класс LForm решает эту проблему раз и навсегда.

LTable — Генератор таблиц

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

LDB — Слой абстракции для доступа к базам данных

Современное приложение (даже самое простое) часто немыслимо без использования баз данных. Систему MySQL запросов очень гибки и функциональны, но тянут с собой кучу неудобств. Хочется грустить каждый раз когда вижу код типа такого:

Такой код — источник потенциальных багов, уязвимостей и проблем в сопровождении. Появление объектных расширений типа mysqli не сильно ситуацию исправило в целом:

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

Для решения всех этих и ряда других проблем был создан класс-обертка над популярными задачами баз данных, упрощая сильно жизнь разработчику и не теряя в гибкости mysql(i).

Вы всё ещё пишете

вот так? Я — нет.

Возможности:

  • Класс прост и быстр
  • Простые действия не вызывают сложных конструкций. Простой select — простой код
  • Обертки отдельно над часто используемыми действиями типа «получить строку по ID», сортировки и т.д.
  • Человеко-читаемый INSERT
  • Работа с несколькими базами одновременно
  • Удобный лог для отладки и контроля приложения
  • Автоматический escape там где это требуется — высокая безопасность приложения

LTPL — Быстрый движок шаблонов

Вам нравится Smatry? Мне — нет. Хорошая идея, но реализация точно не для простоты и быстроты. Комплект для использования текущей (3.1.21) версии Smarty содержит 120 файлов! Колосс с кучей никому не нужных возможностей на мой взгляд. Если вам нужно что-то простое в использовании и быстрое — этот класс для васс.

Для решения этого вопроса был написан класс LTPL (в девичестве — просто tpl). Шаблонизатор очень лёгок и быстр, использует принцип компиляции шаблонов в php-файлы.

Возможности:

  • Компиляция в быстрые php
  • Переменные, функции, константы
  • Возможность прямого включения php-логики в шаблон
  • Возможность прямого включения php-функций в шаблон
  • Конструкции IF-ELSE для условных включений в шаблон

Внимание: в шаблоны возможно внедрение php-логики, поэтому данная система не подходит для тех решений, где шаблоны могут редактировать пользователи или хотя бы не самые проверенные администраторы.