Hit the road for Symfony full-stack
This version should be the last one using Symfony components and Pimple as a dependency injection container. Last versions pushed forward compatibility with Symfony framework by making all Roadiz components more independant from the DI container. And this release keeps on decoupling our architecture.
If you want to move to our next Roadix major version using Symfony framework, you should upgrade to v1.7 first and resolve any deprecations. Use Controller services instead of using
$this->get('service') or worse
This update requires composer.json changes and performing database migrations, make sure to backup your websites before upgrading.
New Webhook component
Roadiz can now send webhook at content update to any location (we provide Gitlab CI and Netlify webhook consumers). Webhooks can be trigger manually, at content update or scoped for any node inside a given root node. This new feature relies on Symfony Messenger and RateLimiter components.
- Added Webhooks node root to scope triggered events, add
Bye bye Rozier
Backoffice theme has been removed from Roadiz main repository and it is a Composer dependency in order to allow using it into next Roadiz versions with Symfony framework. If you are using standard-edition or headless-edition make sure to require it in your project:
composer require roadiz/rozier
- Moved default backoffice services from BackendController to
- We moved every
EventSubscriber from backoffice theme back to core because they're essential to Roadiz Core behaviour
- Moved Rozier Explorer abstracts and interfaces symbols to
RZ/Roadiz/Explorer namespace, make sure to update your project if you use/implement explorers
- New document listing mode
Headless edition Docker image
Headless edition has now a dedicated Docker image to use it with no code at-all! This is handy if you do not need any custom features and a quick start:
- Backoffice section definition was removed from webhook namespace to prevent any dependencies from Core to Rozier theme.
SettingTypeResolver to remove Symfony Form types definitions from Entity
- Remove deprecated Security classes
meta as Twig Globals, fixed Install setup
static_domain_name database setting, use
staticDomainName in YAML configuration to prevent database access to initialize assets packages
em service usage as much as possible, i.e. in TreeWidgets. ConsoleCommands
- Moved Document related event subscribers to
- Replaced Splashbase service with Unsplash, this requires an API key (stored in Roadiz settings)
- Added new
documents:prune:orphans command to remove document from database when no file has been found on file-system (except for embeds)
- Do not prevent
ExceptionSubscriber to be executed in debug mode and JSON format responses
- Additional database table indexes
Document::isLocal method to test if filename and folder are not empty
custom_public_scheme setting for headless projects
- Documents: added new
- Documents: added
RandomImageFinder service to allow different random image service in your project
AbstractSplashbasePictureFinder is deprecated as splashbase.co is not available anymore
- OpenID: removed
settingsBag usage for main configuration, Openid provider throws
UsernameNotFoundException to allow ChainUserProvider to test other user providers.
- Markdown: update to
- Added new
roadiz/dts-generator to generate Typescript type definition from your node-types.
Roadiz v2 will be a symfony-pack to be added to any existing Symfony 5.3+ application. It will composed of a
roadiz/rozier-bundle to ensure compatibility with existing themes (such as our Backoffice theme) in the first time. Then new projects will be able to use
App logic instead of themes and even API-platform.
All Roadiz sub-packages:
random will still be used as framework agnostic package between v1.x and v2.x until v1.x is obsolete.
Our next steps are to migrate latest projects and our most important middleware themes (AbstractBlogTheme, AbstractApiTheme) to this new architecture. This will allow Roadiz to benefit from the awesome Symfony bundle community.
Then in the long-term we plan to re-develop our backoffice theme with new user-interface and better features, taking advantage of headless architecture.