pjplonka / leaf-cmf-core
Core package for LeafCMF
v0.0.6
2024-09-01 19:06 UTC
Requires
- php: ^8.2
- symfony/uid: *
- symfony/validator: *
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: *
This package is not auto-updated.
Last update: 2025-06-22 23:29:49 UTC
README
Interfaces:
- ConfigurationProvider
- Elements (Element Repository)
- EventDispatcher
Packages
- 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
Makefile
Examples:
Composer
Install composer packages:
make composer:install
Require composer package:
make composer:require p=symfony/validator
Tests
make tests:run
or with filter:
make tests:run f=CreateElementHandlerTest
Stan
make stan
TODO:
- Add assertions to every field type (e.g. StringType must contain StringValue which checks base validation rules
like
is_string
ormax_length=200
) and for element (e.g. field name cannot be duplicated) - configuration validator + ConfigurationIsInvalidException
- encryption for field on demand (in configuration)
- element
name
property 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)