PyroCMS v3.7-beta
PyroCMS v3.7-beta one of our biggest releases yet. Lot's to talk about! So let's get to it.
Upgrading
Please refer to the upgrade guide for mode detailed information on upgrading your applications.
Laravel 5.7
We've updated to Laravel 5.7.
Deprecated Legacy Installer
The installer package has been deprecated and has been removed from 3.7 documentation: https://github.com/pyrocms/installer
Please use composer create-project pyrocms/pyrocms
instead: https://pyrocms.com/documentation/pyrocms/3.7/getting-started/installation
Shift to Laravel Mix
We are deprecating our PHP compiler Assetic. Unfortunately this package has long fallen behind. It is becoming very difficult to justify carrying its weight.
Themes and addons are now scaffolded for use with an npm run install && npm run watch
and go approach using Laravel Mix. Webkit and similar tooling is clearly the standard and this project and it's developers will greatly benefit from the shift away from PHP compilers.
This is also a performance update because Assetic causes additional load when checking things for cache and compiling on the fly. Not to mention a slightly lighter project footprint will come of eventually dropping it and it's dependencies entirely in 4.0.
New Documentation
Initial documentation reformation has begun. You can see the progress starting here: https://pyrocms.com/documentation
Much work has already been done but this is an ongoing effort to continuously improve documentation from here forward. So far, structure has been improved. Content has been improved. Formatting has been improved and maintainability as well. Some standards have also been put in place to ensure more thorough and consistent documentation process and outcome going forward.
Table Plugin Function
You can now use table
much like you can form
or entries
to display an entry table in your views.
Shortcut UI
We've added UI for notification-like indicator / shortcuts in the topbar of the control panel.
Automatic Routing
We've automated controller actions to routes for you based on a predictable pattern. This reduced the amount of routes needing stored and looked through tremendously. Huge thanks to @frednwt for helping with this feature!
Automatic Routing Documentation
Automatic Override Deprecation
Addon's no longer automatically override views using the resources/views/addons/**
directory method.
This feature will remain until it's removed in the next version. You can disable it for testing or new projects by placing AUTOMATIC_ADDON_OVERRIDES=false
in your project's .env
file.
Disabled Laravel Package Discovery
We've added the following to the extra
section of our composer.json file.
Some addons like our new System module leverage package dependencies that would otherwise be auto-discovered. We need to retain control over registration in general so make sure to disable auto-discover for Laravel packages.
"laravel": {
"dont-discover": [
"*"
]
}
System Module Release
The System module is built on top of Laravel's Telescope package but is contained within the Control Panel and has some added functionality.
Addon Updates
Many addons have been cleaned up in order to improve performance, leverage automatic routing, remove assetic dependencies, and in preparation for the new marketplace. Below are the feature/functionality updates in 3.7 core addons.
Settings Module Update
The settings module now dumps settings to file for caching. We've also addressed issues around caching configuration so you can now run php artisan config:cache
out of the box.
Redirects Module Update
Redirects now dumps redirects to route file and caches domain redirects too. The php artisan route:cache
command is now supported out of the box.
Addons Module Update
Addons has been reworked in preparation for the new marketplace. We've improved on over-the-air addon management and shifted to caching repository listings locally in the database. Once initially imported (behind the scenes) listings will be kept up to date automatically.
To get started with the new addons module after updating, run php artisan addon:reinstall addons --seed
and then run php artisan addons:sync
for an initial import.
Users Module Update
We've made a couple small adjustments to clean up multi-factor authentication (see the Authy Authenticator post released in parallel with this one).
Pages Module Update
Pages now support translatable slugs and therefore translatable URI paths. We've also added fixed route names to pages so you can refer to their immutable route name instead of the path or fetching by ID from the DB.
Pages also dump routes to file now in order to reduce overhead in routing pages and support route caching.
Lastly pages can now be scheduled similar to Posts. You can enable a page and schedule it to go live at a later time.
Posts Module Update
Posts now support translatable slugs.
Files Module Update
Added ability to move files from folder to folder. Vastly improved file.url
or $file->url()
performance.
Multiple Field Type Update
Added the ability to check multiple records and add selected to your selection.
Files Field Type Update
Added the ability to check multiple files and add selected to your selection.
Added allowed_types
validation to selections.
File Field Type Update
Added allowed_types
validation to selection.
Grid Field Type
If you are using the Grid field type you will need to update to the latest version to fix an issue with Laravel compatibility.
What's next?
Focus going forward is heavy on performance and establishing a base of functional tests. We are looking for community members willing and able to help with testing!
We will also be focusing heavily on continuing documentation support. We've got structural standards and patterns that help making the decisions on documentation much easier and speeds up the process drastically.
Lastly but not least, we're working on a new website and control panel for the 4.0 release that will, similar to 3.0, encompass what we've learned the last few years and drastically improve documentation even more so, as well as provide developers with a true addon marketplace and account management area. More on these fronts as they become available.
Enjoy!
- Ryan