PHPackages                             olegv/brick - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. olegv/brick

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

olegv/brick
===========

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

076PHPCI passing

Since Mar 2Pushed 2mo agoCompare

[ Source](https://github.com/OlegVashkevich/brick)[ Packagist](https://packagist.org/packages/olegv/brick)[ RSS](/packages/olegv-brick/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Brick
=====

[](#brick)

[![PHP](https://camo.githubusercontent.com/4a3501997c3b637d1379d42bd6a5548e93415fe0a04078ee66f76594a5cb346e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/4a3501997c3b637d1379d42bd6a5548e93415fe0a04078ee66f76594a5cb346e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)[![PHPUnit](https://camo.githubusercontent.com/8556f3adf6c39b5d03c2bcd1af19f6128bc8c1e35bf7a72ed009c67b0ee63138/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f504850556e69742d7465737465642d3336364339433f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/8556f3adf6c39b5d03c2bcd1af19f6128bc8c1e35bf7a72ed009c67b0ee63138/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f504850556e69742d7465737465642d3336364339433f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)[![PHPStan](https://camo.githubusercontent.com/0ed0f0f95bf396cbf01751057d30bed394c7c6dc2c62f16baf3935bb62d3ad47/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c2532304d41582d3845343441443f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/0ed0f0f95bf396cbf01751057d30bed394c7c6dc2c62f16baf3935bb62d3ad47/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c2532304d41582d3845343441443f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)[![PSR-12](https://camo.githubusercontent.com/de7417bdd869e0f506cff0ebc235f106f3c656d005c0ff48bdf29abf6cb0f868/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532307374796c652d5053522d2d31322d3145393046463f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/de7417bdd869e0f506cff0ebc235f106f3c656d005c0ff48bdf29abf6cb0f868/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64652532307374796c652d5053522d2d31322d3145393046463f7374796c653d666c6174266c6f676f3d706870266c6f676f436f6c6f723d7768697465)[![Tests](https://camo.githubusercontent.com/81df3e5696d9f8509b469dbaf2a1172dcd3500bb83249a7108d2e59fbb0f4373/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f4f6c6567566173686b65766963682f627269636b2f74657374732e796d6c3f6c6162656c3d5465737473)](https://camo.githubusercontent.com/81df3e5696d9f8509b469dbaf2a1172dcd3500bb83249a7108d2e59fbb0f4373/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f4f6c6567566173686b65766963682f627269636b2f74657374732e796d6c3f6c6162656c3d5465737473)[![Analise](https://camo.githubusercontent.com/6cb0eabc6c5e819e800a46fe32855912adaca56aa59dfab1a48ec2dd737b5f03/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f4f6c6567566173686b65766963682f627269636b2f7374616e2e796d6c3f6c6162656c3d416e616c697365)](https://camo.githubusercontent.com/6cb0eabc6c5e819e800a46fe32855912adaca56aa59dfab1a48ec2dd737b5f03/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f4f6c6567566173686b65766963682f627269636b2f7374616e2e796d6c3f6c6162656c3d416e616c697365)[![License](https://camo.githubusercontent.com/6ef6d2bb90210e230d42a291d24c59603c0a95e3783df6bb749232fb7be9572c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4f6c6567566173686b65766963682f627269636b3f7374796c653d666c6174)](https://camo.githubusercontent.com/6ef6d2bb90210e230d42a291d24c59603c0a95e3783df6bb749232fb7be9572c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4f6c6567566173686b65766963682f627269636b3f7374796c653d666c6174)[![Immutable Components](https://camo.githubusercontent.com/7a94dd5d992e4381d9bfd6cd7ffe0c8b97be801836636802e91d61100e438d32/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d706f6e656e74732d496d6d757461626c652d626c756576696f6c6574)](https://camo.githubusercontent.com/7a94dd5d992e4381d9bfd6cd7ffe0c8b97be801836636802e91d61100e438d32/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d706f6e656e74732d496d6d757461626c652d626c756576696f6c6574)[![Server-side](https://camo.githubusercontent.com/84e707af7918769bbe6fdf725a5258b4948f0c5f9096f85ed51ab6ff2caa3254/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656e646572696e672d5365727665722d2d736964652d626c7565)](https://camo.githubusercontent.com/84e707af7918769bbe6fdf725a5258b4948f0c5f9096f85ed51ab6ff2caa3254/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656e646572696e672d5365727665722d2d736964652d626c7565)[![No Dependencies](https://camo.githubusercontent.com/f80c10b5a9a9744200620c7dc556b4f03075cf6699ccfa586c9ea53604351ea0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446570656e64656e636965732d4d696e696d616c2d73756363657373)](https://camo.githubusercontent.com/f80c10b5a9a9744200620c7dc556b4f03075cf6699ccfa586c9ea53604351ea0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446570656e64656e636965732d4d696e696d616c2d73756363657373)

**Строго типизированные 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 */
?>
Hello, !
```

```
echo new HelloWorld('World');
echo BrickManager::getInstance()->renderAssets();
```

---

Рекомендации по использованию
-----------------------------

[](#рекомендации-по-использованию)

- **Делайте композицию компонентов по возможности через `echo` или приведение к строке**
- **Оставьте конструктор пустым, а подготовку данных выполняйте в `prepare()`** - он автоматически срабатывает перед подключением шаблона
- **Используйте простые типы данных** — `string`, `int`, `float`, `bool`, `array` и `null`

---

Документация
------------

[](#документация)

- [Философия и архитектура](docs/01-philosophy.md)
- [Быстрый старт](docs/02-getting-started.md)
- [Компоненты](docs/03-components.md)
- [Трейты](docs/04-traits.md)
- [Управление ассетами](docs/05-assets.md)
- [Тестирование и статический анализ](docs/06-testing.md)
- [Дизайн-система и переносимость](docs/07-design-system.md)
- [Интеграции и сравнение с аналогами](docs/08-integrations.md)

---

Требования
----------

[](#требования)

- PHP 8.2+
- PSR-16 совместимая библиотека кэша (опционально, для `WithCache`)

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance56

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/791b13b30e50e389b5dc53f9badbf7b5614b81a54404ead08495bae08c06d178?d=identicon)[OlegVashkevich](/maintainers/OlegVashkevich)

---

Top Contributors

[![OlegVashkevich](https://avatars.githubusercontent.com/u/13260371?v=4)](https://github.com/OlegVashkevich "OlegVashkevich (72 commits)")

---

Tags

phpssr

### Embed Badge

![Health badge](/badges/olegv-brick/health.svg)

```
[![Health](https://phpackages.com/badges/olegv-brick/health.svg)](https://phpackages.com/packages/olegv-brick)
```

###  Alternatives

[spatie/laravel-menu

Html menu generator for Laravel

9812.8M10](/packages/spatie-laravel-menu)[league/statsd

A simple library for working with StatsD in PHP.

3514.3M12](/packages/league-statsd)[in2code/powermail

Powermail is a well-known, editor-friendly, powerful and easy to use mailform extension for TYPO3 with a lots of features

982.5M38](/packages/in2code-powermail)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
