Engine: конфигурация, контекст и контейнер
Engine задаёт application primitives; HTTP/WS engines и components добавляют dispatch и интеграции. Manifest требует PHP ^8.1, intl/json и Server ^4. Транзитивные зависимости приложения могут повышать требования PHP.
Контейнер
Заголовок раздела «Контейнер»use Triangle\Engine\Container;
$container = new Container();$container->addDefinitions([ 'clock' => static fn (Container $container): object => new stdClass(),]);$clock = $container->get('clock');Definitions — callbacks с контейнером в аргументе; get() кэширует результат. Без definition может создаваться класс с zero-argument constructor. has() проверяет зарегистрированные definitions/instances, не все autoconstructible classes. make(class, constructorArgs) создаёт объект с позиционными значениями аргументов, не рекурсивный reflection autowiring. Не храните user-specific mutable state в кэшированном сервисе. Реализация интерфейса PSR Container не подтверждает полную PSR-11 conformance exception behavior.
Конфигурация и bootstrap
Заголовок раздела «Конфигурация и bootstrap»Config::load/loadAll/reloadAll/clear/get/set управляют деревом по именам файлов; конфигурация объясняет overlay и route files. Autoload координирует CLI/Server startup, подключает application files и вызывает Bootstrap. Bootstrap вызывает доступные middleware/database/session/router/events и настроенные bootstrap classes. Отсутствующий component может пропускаться; успешный старт не доказывает, что он включён.
Context, request и response
Заголовок раздела «Context, request и response»Context даёт get/set/delete/onDestroy/destroy и runtime-dependent storage. Это scoped state с требуемой проверкой cleanup, не постоянное хранилище. Engine Request/Response расширяют Server HTTP types; выбранный engine/scaffold может предоставлять Triangle aliases. В controller используйте типы установленного приложения.
responseJson() сериализует прямой JSON payload; response() может добавлять envelope, выбирать view и менять status через http_always_200. Default JSON flags включают JSON_NUMERIC_CHECK: переопределяйте options, когда numeric-looking строки identifiers должны оставаться строками. view() вызывается через View component, не выдуманный facade. Helpers требуют соответствующий application context.
Индекс деклараций · Компоненты · Совместимость. Engine source revision 89dac7f51f94.