phpsoftbox/requisites

Requisites component for the PhpSoftBox framework

Maintainers

Package info

github.com/phpsoftbox/requisites

pkg:composer/phpsoftbox/requisites

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-03-06 12:35 UTC

This package is auto-updated.

Last update: 2026-03-06 12:36:01 UTC


README

Компонент для хранения и валидации реквизитов/паспортных данных/заявлений в унифицированном виде.

Статус: draft (дизайн и план внедрения).

Что решает

  • Не привязан к одной предметной области (Company).
  • Поддерживает разные сущности-владельцы (компания, пользователь, заявление и т.д.).
  • Поддерживает разные схемы полей и валидации, в том числе country-specific.
  • Позволяет использовать как общую таблицу, так и кастомные таблицы проекта.

Документация

  • 01-instructions.md
    • включает детальную стратегию payload-миграций (schema_version, lazy/eager, backfill);
    • включает обязательную тестовую стратегию и DoD по этапам.

Payload Migrations

  • PayloadMigrationEngine — выполняет пошаговые N -> N+1 миграции payload.
  • MigrationAwareStorageAdapter — lazy-миграция на find()/save().
  • BackfillMigrationRunner — eager/backfill миграция таблицы requisites_records.
  • StaticTargetVersionResolver — целевая версия схемы по profile/selector.

CLI

Пакет регистрирует команду requisites:migrate.

Примеры:

  • php psb requisites:migrate --profile=company --dry-run
  • php psb requisites:migrate --profile=company --selector=country:RU --from=1 --to=3 --batch-size=200

Profile Contract

  • RequisitesProfileInterface — контракт profile-definition:
    • selector (selectorKey/defaultSelector);
    • схемы (schemas);
    • target versions + payload migrators;
    • requestSchemaClasses для request-level валидации;
    • storageDefinition для profile-routed storage.