olegv/brick

Инструмент для создания строго типизированных UI-компонентов на PHP

Maintainers

Package info

github.com/OlegVashkevich/brick

pkg:composer/olegv/brick

Statistics

Installs: 76

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-03-02 08:35 UTC

This package is auto-updated.

Last update: 2026-03-30 14:13:15 UTC


README

PHP PHPUnit PHPStan PSR-12 Tests Analise License Immutable Components Server-side No Dependencies

Строго типизированные 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)