phpsoftbox / requisites
Requisites component for the PhpSoftBox framework
dev-master
2026-03-06 12:35 UTC
Requires
- php: ^8.4
- phpsoftbox/database: dev-master
- phpsoftbox/forms: dev-master
- phpsoftbox/orm: dev-master
- phpsoftbox/validator: dev-master
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpunit/phpunit: ^11.2
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-runphp 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.
- selector (