olegv / brick
Инструмент для создания строго типизированных UI-компонентов на PHP
dev-master
2026-03-02 08:35 UTC
Requires
- php: >=8.2
- ext-mbstring: *
- psr/simple-cache: ^3.0
Requires (Dev)
- phpstan/phpstan: ^2.1.33
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/phpunit: ^11.5
This package is auto-updated.
Last update: 2026-03-30 14:13:15 UTC
README
Строго типизированные UI-компоненты для PHP — без фреймворков, без магии, без overhead.
Brick приносит компонентный подход в PHP: каждый UI-элемент — это readonly класс с типизированными свойствами, HTML-шаблоном, стилями и скриптами в одной директории. Контракт компонента виден в IDE, проверяется PHPStan и не ломается молча при рефакторинге.
Установка
composer require olegv/brick
Быстрый старт
// HelloWorld/HelloWorld.php class HelloWorld extends Brick { public function __construct( public string $name, ) {} }
// HelloWorld/template.php /** @var HelloWorld $this */ ?> <h1>Hello, <?= $this->e($this->name) ?>!</h1>
echo new HelloWorld('World'); echo BrickManager::getInstance()->renderAssets();
Рекомендации по использованию
- Делайте композицию компонентов по возможности через
echoили приведение к строке - Оставьте конструктор пустым, а подготовку данных выполняйте в
prepare()- он автоматически срабатывает перед подключением шаблона - Используйте простые типы данных —
string,int,float,bool,arrayиnull
Документация
- Философия и архитектура
- Быстрый старт
- Компоненты
- Трейты
- Управление ассетами
- Тестирование и статический анализ
- Дизайн-система и переносимость
- Интеграции и сравнение с аналогами
Требования
- PHP 8.2+
- PSR-16 совместимая библиотека кэша (опционально, для
WithCache)