All Versions
17
Latest Version
Avg Release Cycle
144 days
Latest Release
-

Changelog History
Page 1

  • v0.15.0 Changes

    🚀 Released: Upcoming

    • 👍 Attention: the support for PHP 7.1 has been dropped
    • ➕ Added PHP 7.4 support
    • 🛠 Fixed a crash where the namefield of a many relation is a MySQL keyword, thanks to https://github.com/th-lange
    • 🛠 Fixed a timeout within the fetching of the language names
    • 🛠 Fixed a crash if a referenced entity had hard deletion
    • 🛠 Fixed a crash if a route of a non existent entity was requested, properly returning an HTTP 404 now
    • ⚡️ Updated dependencies:
      • "philiplb/valdi": "1.0"
      • "symfony/http-foundation": "4.4"
      • "symfony/routing": "4.4"
      • "symfony/yaml": "4.4"
      • "symfony/translation": "4.4"
      • "symfony/intl": "4.4"
      • "symfony/twig-bridge": "4.4"
      • "doctrine/dbal": "2.10"
      • "riimu/kit-phpencoder": "2.4"
  • v0.14.0 Changes

    September 07, 2018
    • ➕ 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"
  • v0.13.0 Changes

    February 12, 2018

    🚀 Released: 2018-02-12

    • 0️⃣ The soft deletion is now optional (but switched on by default)
    • 🛠 Fixed content type of static files by detecting the mimetype by their name
  • v0.12.0 Changes

    August 22, 2017
    • 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
  • v0.11.0 Changes

    April 01, 2017
    • ➕ 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
  • v0.10.0 Changes

    September 18, 2016

    🚀 Released: 2016-09-18

    • ➕ Added a new data type implementing a many-to-many relationship called "many", sponsored by italic
    • 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
  • v0.9.10 Changes

    July 19, 2016
    • 🚚 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
  • v0.9.9 Changes

    February 11, 2016

    🚀 Released: 2016-02-11

    • ⚡️ 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
  • v0.9.8 Changes

    September 28, 2015

    🚀 Released: 2015-09-28

    • ➕ 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
  • v0.9.7 Changes

    July 25, 2015

    🚀 Released: 2015-07-26

    • ➕ Added an optional description per field
    • CRUDData::listEntries() can take now operators for the filter parameter
    • ➕ Added filters for the list views
    • Big cleanup of the CRUDEntityDefinition constructor
    • Not required number fields not being entered by the user end up the database as NULL instead of as 0
    • null is a valid value when validating an int, float or reference which is not required in an entity
    • ➕ Added classes to the create, edit and delete forms so they can be hooked easily with JavaScript
    • 🔒 Using the DBAL querybuilder in the CRUDMySQLData class instead of constructing the queries via string concatenation; this might solve some unknown security issues and is more readable
    • 🛠 Fixed all issues revealed by SensioLabsInsight
    • The requirements are now mentioned in the README.md
    • 📦 Set the preferred-install in the composer package
    • 📚 Moved some features to an own chapter in the documentation
    • ➕ Added setters to CRUDEntityDefinition:
      • setServiceProvider
      • setUnique
      • setFilePath
      • setSetItems
      • setFloatStep
      • setFieldLabel
      • setTable
      • setLabel
    • ⚡️ Updated dependencies to:
      • "silex/silex": "~1.3"
      • "symfony/twig-bridge": "~2.7"
      • "symfony/yaml": "~2.7"
      • "phpunit/phpunit": "4.7.6"
      • "symfony/browser-kit": "~2.7"
      • "symfony/css-selector": "~2.7"
      • "apigen/apigen": "4.1.1"
      • Eonasdan/bootstrap-datetimepicker V4.14.30
      • Bootstrap 3.3.5
      • moment.js 2.10.3
      • jQuery 2.1.4