Набор легких классов для проектов любой сложности. Каждый класс не имеет внешних и внутренних зависимостей (любой класс может быть использован по-одиночке, либо в любой комбинации) и оформлен в виде одного файла php для подключения. Идеальны для интеграции в проекты где требуется быстрый и качественный код, при этом нет желания или возможности тащить огромные фреймворки или хотя бы Smarty, который состоит из огромного количества файлов.
Набор классов весьма стар (разработка 2008 – 2009 годов), но при этом не теряет актуальности. Очень активно применялась и продолжает применяться во всевозможных сайтах, админках, панелях управления, просто крон-скриптах. Создание безопасного и удобного приложения занимает очень мало времени, при этом не генерируя зависимостей от монструозных фреймворков.
Репозиторий на GitHub: github.com:petrows / php-light-classes
Примеры использования: github.com:petrows / php-light-classes / example
Демо-сайтик – работающее приложение из папки примеров скриптов
LForm – Генератор форм
Никогда не понимал людей которые делают сотни одинаковых шаблонов для форм, копипастя одно и то же из года в год. Ещё более не понимал горе-разработчиков у которых форма сбрасывается после отправки (например в случае ошибок). Класс LForm решает эту проблему раз и навсегда.
LTable – Генератор таблиц
Несмотря на новомодные дизайны из блоков таблицы все равно остаются единственным нормальным средством отображения структурированных данных. Это самый простой класс из всех, он только оборачивает рутинные конструкции в теги таблиц – строки и столбцы, облегчая ваш код.
LDB – Слой абстракции для доступа к базам данных
Современное приложение (даже самое простое) часто немыслимо без использования баз данных. Систему MySQL запросов очень гибки и функциональны, но тянут с собой кучу неудобств. Хочется грустить каждый раз когда вижу код типа такого:
$link = mysqli_connect("localhost", "my_user", "my_password", "world"); if (mysqli_connect_errno()) { printf("Cant connect: %s\n", mysqli_connect_error()); exit(); } $city_name = $_POST['name']; if ($result = mysqli_query($link, "SELECT Name FROM City WHERE name=$city_name LIMIT 10")) { printf("Select size: %d\n", mysqli_num_rows($result)); mysqli_free_result($result); } mysqli_close($link);
Такой код – источник потенциальных багов, уязвимостей и проблем в сопровождении. Появление объектных расширений типа mysqli не сильно ситуацию исправило в целом:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); if (mysqli_connect_errno()) { printf("Cant connect: %s\n", mysqli_connect_error()); exit(); } $city = $_POST['name']; if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) { $stmt->bind_param("s", $city); $stmt->execute(); $stmt->bind_result($district); $stmt->fetch(); printf("%s result %s\n", $city, $district); $stmt->close(); } $mysqli->close();
Код стал безопаснее, но удобным такой подход назвать язык не поворачивается.
Для решения всех этих и ряда других проблем был создан класс-обертка над популярными задачами баз данных, упрощая сильно жизнь разработчику и не теряя в гибкости mysql(i).
Вы всё ещё пишете
$res = mysql_query('SELECT `one`,`two` FROM `names` WHERE `name`=' . mysql_real_escape_string($_POST['name']) . ' ORDER BY `id` LIMIT 10');
вот так? Я – нет.
Возможности:
- Класс прост и быстр
- Простые действия не вызывают сложных конструкций. Простой select – простой код
- Обертки отдельно над часто используемыми действиями типа “получить строку по ID”, сортировки и т.д.
- Человеко-читаемый INSERT
- Работа с несколькими базами одновременно
- Удобный лог для отладки и контроля приложения
- Автоматический escape там где это требуется – высокая безопасность приложения
LTPL – Быстрый движок шаблонов
Вам нравится Smatry? Мне – нет. Хорошая идея, но реализация точно не для простоты и быстроты. Комплект для использования текущей (3.1.21) версии Smarty содержит 120 файлов! Колосс с кучей никому не нужных возможностей на мой взгляд. Если вам нужно что-то простое в использовании и быстрое – этот класс для васс.
Для решения этого вопроса был написан класс LTPL (в девичестве – просто tpl). Шаблонизатор очень лёгок и быстр, использует принцип компиляции шаблонов в php-файлы.
Возможности:
- Компиляция в быстрые php
- Переменные, функции, константы
- Возможность прямого включения php-логики в шаблон
- Возможность прямого включения php-функций в шаблон
- Конструкции IF-ELSE для условных включений в шаблон
Внимание: в шаблоны возможно внедрение php-логики, поэтому данная система не подходит для тех решений, где шаблоны могут редактировать пользователи или хотя бы не самые проверенные администраторы.