Bricks і addX()
Brick — це одна capability Stack: «мені потрібен HTTP», «мені
потрібна сесія», «мені потрібен Whoops». Кожен
addX() реєструє саме її і повертає builder
(set* для конфігу, with* для opt-in).
Навіщо каталог окремо від рецептів: щоб швидко відповісти
«який метод увімкнути», не перечитуючи весь трек
Огляд.
Не варто додавати все «про запас». API без cookie не потребує
Session; чистий JSON API може обійтись без View; Logging
потрібен, коли ErrorHandling хоче писати в Monolog, а не лише
в error_log. Менше capabilities — менший контейнер
і зрозуміліший Bootstrap.
Каталог capabilities
Порядок рядків збігається з треком Огляд (крок у таблиці). Capabilities поза основним треком — внизу.
| Крок | addX() | Builder | Довідник |
|---|---|---|---|
| 1 | addHttp() |
HttpBuilder |
Http brick |
| 2 | addView() |
ViewBuilder |
View brick |
| 3 | addValidation() |
ValidationBuilder |
Validation brick |
| 5 | addSession() |
SessionBuilder |
Session brick |
| 6 | addDatabase() |
DatabaseBuilder |
Database brick |
| 6 | addConsole() |
ConsoleBuilder |
Console brick |
| 7 | addErrorHandling() |
ErrorHandlingBuilder |
ErrorHandling brick |
| 8 | addLogging() |
LoggingBuilder |
Logging brick |
| 8 | addMasking() |
MaskingBuilder |
Masking brick |
| 10 | addCasting() |
CastingBuilder |
Casting brick |
| — | addEvents() |
EventsBuilder |
Events brick |
| — | addTelemetry() |
TelemetryBuilder |
Telemetry brick |
| — | addComponents() |
ComponentsBuilder |
Components brick |
addProvider()
Коли сервіс специфічний для вашого додатку і не заслуговує окремого brick у Stack — реєструйте власний provider поруч із capabilities. Так glue лишається явним, а загальний API Stack не роздувається під кожен проєкт.
$stack->addProvider(new MyGlueServiceProvider());
Модель збірки — Огляд ConceptStack. Живі приклади — Огляд.