Database
Пакет и установка
Заголовок раздела «Пакет и установка»triangle/database · AGPL-3.0-or-later
composer require triangle/databasecomposer check-platform-reqscomposer show triangle/databaseКоманда разрешает доступный релиз, не обязательно сверенную здесь ревизию. Сохраните и проверьте lock приложения. Direct requirements не заменяют ограничения PHP/extensions транзитивных зависимостей.
| Зависимость | Constraint |
|---|---|
php | ^8.1 |
triangle/engine | ^8.1 |
illuminate/database | ~11.19.0 |
illuminate/pagination | ~11.19.0 |
illuminate/events | ~11.19.0 |
symfony/var-dumper | ~7.1.0 |
Архитектура
Заголовок раздела «Архитектура»Фасад запросов — Triangle\Database\Manager, наследник Illuminate Capsule; базовая модель — Triangle\Database\Model. Компонент загружает Eloquent, именованные подключения и pagination resolvers. Triangle\Database\DB и Triangle\Database\Facades\Db не предоставлены.
Конфигурация и lifecycle
Заголовок раздела «Конфигурация и lifecycle»config/database.php задаёт default, persistent и connections. Без подключений или Capsule bootstrap завершается. Затем регистрируются default/именованные подключения, глобальный Capsule и Eloquent. При Server и persistent mode создаётся heartbeat каждые 55 секунд для открытых MySQL-соединений; это не пул и не автоматический безопасный retry транзакций.
Параметризованные запросы
Заголовок раздела «Параметризованные запросы»use Triangle\Database\Manager as DB;
$rows = DB::select('select id from users where email = ?', [$email]);Выполняйте после database bootstrap, с созданной таблицей users и валидированным email. Bindings защищают значения, но не динамические имена таблиц/колонок; такие идентификаторы выбирайте по allowlist.
Транзакции и долгоживущие workers
Заголовок раздела «Транзакции и долгоживущие workers»Унаследованный Capsule API даёт connection/query/transaction. Ограничивайте транзакцию единицей работы, не скрывайте ошибки, откатывайте её до переиспользования соединения; не делайте внешние side effects внутри повторяемой транзакции. Eloquent/PDO остаются блокирующими без отдельно асинхронного драйвера/runtime. Нужен соответствующий PDO extension; MongoDB требует выбранный совместимый драйвер. Проверяйте reconnect и изоляцию на конкретном lock.
Источник и проверка
Заголовок раздела «Источник и проверка»Database · 90d6f6cbc467. Ограничения запуска framework.