承接 phpsoftbox/database-lookup 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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
  • 点击次数: 4
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-16