Interfaces:
- ConfigurationProvider
- Elements (Element Repository)
- EventDispatcher
- Symfony validator is required and can not be replaced.
All validation rules must be provided from Symfony Validator Constraints list. - Uuid Interface is provided by symfony/uid package
- Only DateTimeImmutable objects are used
Install composer packages:
make composer:install
Require composer package:
make composer:require p=symfony/validator
make tests:run
or with filter:
make tests:run f=CreateElementHandlerTest
make stan
- Add assertions to every field type (e.g. StringType must contain StringValue which checks base validation rules
like
is_stringormax_length=200) and for element (e.g. field name cannot be duplicated) - configuration validator + ConfigurationIsInvalidException
- encryption for field on demand (in configuration)
- element
nameproperty should be changed to something like group, band or something - every field should have own constraints instead of holding it in configuration array (and configuration can hold additional constraints)
- add some TestField to use it in tests to not use real field
- what about read model? do we need any bus for it?
- write more about makefile in readme
- fields should contain basic constraints (eg. string must be string and max length is 255)
- FieldsDtoValidator: rename this class + validate configuration field type (type can be invalid e.g. not exist)
- FieldsDtoValidator should be a default one for usage
- transactional manager interface?
- add assertion class
- validation failed exception could be used form symfony package
- test for empty constraints (allowMissingFields) is set to true
- when tests are run in docker it creates container and it is not reusable (every time make run:tests is run, new container is created)