It needed 65 commits to make the release of CRUDlex 0.12.0.

The homegrown file handling abstraction went away and got replaced with the awesome Flysystem, allowing many more storage types than the filesystem and AWS S3.

Also a caching mechanism for the crud.yml got introduced so it doesn’t get parsed on each page call but the compiled result is stored to disk and finally ends up in the opcache.

Two more new features are to be highlighted as they were contributed:

Read on to see the full changelog of CRUDlex for details!

  • Attention: Switched from the own abstraction “FileProcessorInterface” to the library Flysystem for file handling, API changes:
    • All implementations of the FileProcessorInterface are gone now
    • The class “MimeTypes” is gone now
    • DataFactoryInterface::createData now needs a League\Flysystem\FilesystemInterface as last parameter
    • The constructor of MySQLData now takes a FilesystemInterface instead of a FileProcessorInterface
    • ServiceProvider::init now takes only two parameters: $crudFileCachingDirectory, Container $app
    • AbstractData::shouldExecuteEvents is now public
    • AbstractData::createFiles, ::updateFiles, ::deleteFile, ::deleteFiles and ::renderFile are moved to an own class: FileHandler
  • Attention: Moved the event handling to an own class and so the API changed
  • Added a caching mechanism for the parsing of the CRUD YAML files
  • Added the possibility to group entities in the navigation bar, thanks to
  • Added an optional hideId parameter for references and many relations so the id is hidden in the reference buttons, thanks to
  • Optimistic locking can now be turned off per entity
  • Attention: Prefixed the name of the route for static assets from “static” to “crudStatic” just like the other routes
  • Added documentation about the routes added by ControllerProvider
  • Attention: Changed the following routes from “match” to just “get”, so only HTTP GET is allowed on them:
    • crudList
    • crudShow
    • crudRenderFile
  • Added documentation about how to optimize serving the static content
  • Attention: Moved the events code up to the abstract data class which changed the signatures a bit
  • “before” “delete” Events of cascade deleted children are now properly taken into account
  • added @var annotations to class members for better IDE usage
  • switched code formatting from Javaish style to the PSR-2 standard
  • Updated dependencies:
    • “silex/silex”: “~2.2”
    • “doctrine/dbal”: “~2.5”
    • “symfony/twig-bridge”: “~3.2”
    • “symfony/yaml”: “~3.3”
    • “symfony/translation”: “~3.3”
    • “symfony/intl”: “~3.3”
    • “symfony/browser-kit”: “~3.3”
    • “symfony/css-selector”: “~3.3”
    • “eloquent/phony”: “~1.0”
    • Quill Editor v1.3.1
    • flatpickr v3.0.7