Releases: philiplb/CRUDlex
Releases · philiplb/CRUDlex
0.14.0
- Added PHP 7.2 as test target
- Attention: Dropped support for PHP <= 7.1
- Attention: CRUDlex is now not anymore dependent on Silex as framework; the Silex implementation got split to https://github.com/philiplb/CRUDlexSilex2; a Symfony 4 implementation is done at https://github.com/philiplb/CRUDlexSymfony4Bundle
- Attention: Splitted the class ControllerProvider into Controller and Silex\ControllerProvider with Controller being customizable and implementing the new ControllerInterface
- Attention: Splitted the class ServiceProvider into Service and Silex\ServiceProvider
- Attention: Changed the mechanism to define custom layouts and templates from Pimple keys like $app['crud.layout'] = 'myLayout.twig' to the Provider function $app['crud']->setTemplate('layout', 'myLayout.twig')
- Attention: Changed the i18n management flag from the Pimple key "crud.manageI18n" to the Provider functions $app['crud']->isManageI18n() and $app['crud']->setManageI18n()
- Attention: Moved the class "ServiceProvider" from the namespace "CRUDlex" to the namespace "CRUDlex\Silex"
- Attention: Prefixed all Twig functions and filters with "crudlex_"
- Replaced all Pimple calls to "app." in the templates with calls to the crud instance or new Twig functions
- Updated dependencies:
- "phpunit/phpunit": "~7.2"
- "eloquent/phony": "~3.0"
- "eloquent/phony-phpunit": "~4.0"
0.13.0
0.12.0
- 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 https://github.com/dmaciel
- Added an optional hideId parameter for references and many relations so the id is hidden in the reference buttons, thanks to https://github.com/jmfayard
- 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
0.11.0
- Added a french translation, thanks to, https://github.com/k20human
- Added a new data type: WYSIWYM (What You See Is What You Mean), with a visual editor producing HTML
- Added a "CRUD YAML Reference" chapter in the documentation
- The referencing children list of an entity has now an "Create New" button, thanks to, https://github.com/k20human
- The endpoint for static files now uses ETag caching speeding up the rendering of the UI
- Fixed the initialization of the TwigServiceProvider using the Silex 2 API now
- Attention: Removed the method AbstractData::fetchReferences and so simplified further implementations
- Fixed the feature of prepopulated creation forms via GET parameter
- Nicer visualization of boolean values using icons
- Fixed the initialization of the TwigServiceProvider if it wasn't present yet
- Fixed adding the YAML loader and languages to the translator by moving it to the boot phase of the service provider
- Fixed a crash if a many field was a reserved MySQL word
- Filters now only do a LIKE-comparison if the field is a text, multiline or fixed field, else they use strict equals
- Restructured the i18n handling and initialization a bit so the 'crud' provider is properly lazily initialized and the YaML not parsed for routes outside CRUDlex
- Nullable fields with empty form input are now properly stored as null
- Removed dependencies:
- Moment.js
- Updated dependencies:
- "eloquent/phony": "~0.14"
- "symfony/browser-kit": "~3.2"
- "symfony/css-selector": "~3.2"
- "symfony/twig-bridge": "~3.2"
- "symfony/yaml": "~3.2"
- flatpickr 2.4.8
- jQuery 3.2.1
0.10.0
- Added a new data type implementing a many-to-many relationship: many
- Switched to SemVer
- Added validation of the entity definition YAML file
- Replaced handwritten mocks with Phony
- Moved the mime type reading into an own class
- Added a meaningful exception if invalid field names are given in "fieldList" or "filter"
- Attention: The minimum PHP version is now 5.5
- Attention: Updated to Silex 2.0
- Attention: Switched from PSR-0 to PSR-4
- Attention: The field entity.field.reference.table is not needed anymore
- Attention: Renamed entity definition YAML fields:
- setitems -> items
- filepath -> path
- fixedvalue -> value
- Attention: Moved the following functions from the ServiceProvider to Twig extensions:
- arrayColumn -> Twig Filter arrayColumn
- getLanguageName -> Twig Filter languageName
- formatFloat -> Twig Filter float
- basename -> basename
- formatDate -> formatDate
- formatDateTime -> formatDateTime
- Attention: Replaced the following functions of the class EntityDefinition with getSubTypeField:
- getReferenceNameField
- getReferenceEntity
- Attention: Replaced the following functions of the class EntityDefinition with getField:
- getDescription
- getFloatStep
- getItems
- getValue
- getPath
- isUnique
- isRequired
- Attention: Replaced the following functions of the class EntityDefinition with setField:
- setDescription
- setFloatStep
- setItems
- setValue
- setPath
- setUnique
- setRequired
- Switched to a flag-sprites.com generated css sprite for the language flags
- Updated dependencies:
- "silex/silex": "~2.0"
- "symfony/twig-bridge": "~3.1"
- "philiplb/valdi": "0.10.0"
- "symfony/yaml": "~3.1"
- "symfony/translation": "~3.1"
- "symfony/intl": "~3.1"
- "symfony/browser-kit": "~3.1"
- "symfony/css-selector": "~3.1"
- "eloquent/phony": "~0.13"
- Bootstrap 3.3.7
- Switched to the array shorthand
- Correctly saving null if not required date time fields are not filled
0.9.10
- Attention: Removed the prefix "CRUD" from all classes as they live in their own namespace anyway
- Attention: The data types "int" and "bool" got renamed to "integer" and "boolean"
- Attention, API changes:
- CRUDlex\Data -> CRUDlex\AbstractData
- EntityDefinition::getInitialSortAscending() -> EntityDefinition::isInitialSortAscending()
- ServiceProvider::getMangeI18N() -> ServiceProvider::isManagingI18n()
- Show-Page: The id "crudEntityShowTable" is now a class
- CRUDlex\EntityValidator changed its return structure to the one of Valdi:
http://philiplb.github.io/Valdi/docs/html/0.9.0/manual/gettingstarted.html#validation - The date and datetime fields changed moved their classes to the input fields and changed their names to "crudDate" and "crudDateTime"
- Attention: Fixed a security issue in the static file provider
- Changed the entity validation to https://github.com/philiplb/Valdi
- Changed the date and date time pickers to https://github.com/chmln/flatpickr
- Replaced the markdown manual and the APIGen documentation with an unified Sphinx version
- Added RTL support in the i18n system
- Added file handling events
- Made a base path configurable for the SimpleFilesystemFileProcessor
- The ServiceProvider uses now static instantiation instead of calling his own class making it easier to override
- Added some more IDs and classes in the HTML to be more tweakable
- Fixed a crash if the table name of an entity is a MySQL keyword
- Fixed a crash if the field name of an entity is a MySQL keyword
- Fixed a crash if the sort field name of an entity is a MySQL keyword
- Fixed a crash if non required reference fields where not given
- Fixed a crash if referenced entities got soft deleted by a third party
- Fixed the sort order being properly handled in the pagination buttons now
- Fixed and refactored a lot of things revealed by static code analysis
0.9.9
- Attention: From now on, the created_at and updated_at timestamps are stored as UTC values in the MySQL data provider
- The list views can be sorted now
- Added optimistic locking for editing an entity
- CRUDMySQLData now offers an option to use UUIDs as primary key instead of an auto incremented value
- Added a function to the service provider to get the available locales
- Added a function to the service provider to get the name of the language of a locale
- Generating the language picker based on the available translation files instead of being hard coded
- Fixed and refactored a lot of things revealed by static code analysis
- Updated dependencies:
- Symfony-Components to the current LTS version 2.8
- "symfony/...": "~2.8" (current LTS version)
- "phpunit/phpunit": "~4.8"
- "satooshi/php-coveralls": "1.0.1"
- "apigen/apigen": "4.1.2"
- Eonasdan/bootstrap-datetimepicker V4.17.37
- Bootstrap 3.3.6
- moment.js 2.11.2
- jQuery 2.2.0
0.9.8
- Added complete i18n support, initially with en, de and gr
- Added events for reactions before or after creating, updating or deleting an entity
- Added the possibility to override every single template
- Initializing all needed providers in the CRUDServiceProvider if not done yet by the application
- Made the nameField of a reference optional
- Fixed a crash when choosing "created_at", "updated_at", "id", "deleted_at" or "version" as filter field
- Some potential crashes in CRUDEntityDefinition fixed revealed by new unit tests
- Fixed the display of very small float values which where converted to scientific notation