phpsoftbox/database-lookup
Composer 安装命令:
composer require phpsoftbox/database-lookup
包简介
Shared keyed lookup specification for PhpSoftBox database integrations
README 文档
README
Общий объект описания keyed lookup для компонентов, которым нужно согласованно читать строки по явным идентификаторам.
use PhpSoftBox\DatabaseLookup\LookupSpec; $lookup = LookupSpec::forTable('shipment_products') ->lookupColumn('product_id') ->values([10, 20, 30]) ->where('shipment_id', 123);
Если warmup key не задан явно, он строится из fixed where-колонок и lookup
колонки: shipment_id + product_id. Явный ключ можно задать через
keyColumns('shipment_id', 'product_id').
Переиспользуемые lookup-спецификации
LookupSpec — immutable value object. Он не рассчитан на наследование: fluent-методы
возвращают новый объект спецификации, а сам объект должен оставаться простым переносимым
контрактом между Database, Validator, ORM и другими слоями.
Если спецификацию нужно описать заранее и переиспользовать в нескольких местах, лучше оформить это отдельной фабрикой или именованными методами в доменном коде:
use PhpSoftBox\DatabaseLookup\LookupSpec; final class ShipmentProductLookups { public static function productsForShipment(int $shipmentId): LookupSpec { return LookupSpec::forTable('shipment_products') ->lookupColumn('product_id') ->where('shipment_id', $shipmentId); } }
Такой подход оставляет LookupSpec закрытым и предсказуемым value object, но позволяет
централизовать таблицы, колонки и scoped-условия.
Лицензия
MIT
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-16