Adds the "develop.debugSnowboard" config option to enable to disable Snowboard debugging, overriding the default behaviour in following the app debug mode.
This should be backwards compatible in that any classes who have `onGetInspectorConfiguration` methods will still use their overridden method, but for new applications, they can now use an `inspector.yaml` file within the class name for the inspector, or the controller itself.
It should also support the old `configuration` based array structure, as well as the new one without this key.
Updates `failed_jobs` table to add missing `uuid` column. This also updates the `payload` and `exception` columns to be inline with the default Laravel migration.
- If no bootstrap is provided in "phpunit.xml", the standard Winter CMS bootstrap is used.
- If a custom bootstrap is provided by the "-b" option, it will be used.
- Finally, the bootstrap specified in "phpunit.xml" will be used.
- Added the ability for relative and absolute paths to be used in "phpunit.xml" for the bootstrap path.
The fixes in 9637b67c23 stopped overridden POST values from working, as these were interpreted as arrayed values. This makes the checkbox and switch inputs stop working, as these have a default "unchecked" value which is then overridden by the "checked" value when checked.
This will enable the ability to override data attribute config values on the JavaScript side.
This can be useful for per-instance overrides derived from other frontend code, and saves developers having to override data attributes using JavaScript.
- The Snowboard and PluginLoader objects are now frozen and cannot be modified.
- Added a Proxy in front of Snowboard to handle plugin loading
- Plugin "Snowboard" instances are blocked from running certain methods
- Update tests to check hardening
As per documenation, key names must start with a # or .
However there was no validation to this, which in turns translating to elements unexpectedly being replaced by random keys. One such example is title replacing the page <title>. You could test for example with a div key and see everything fall on itself :)
The way this was discovered was by using the Crop and Insert functionality which upon inserting the image replaces the page title with the name of the file inserted.
The PR is making changes to 2 systems, the old one which is used by the above and also the Snowboard system which I have learnt to be the new way.
- Deprecate "runPluginRefreshCommand" method and replace with "instantiatePlugin", to better describe the functionality within.
- Use namespace to guess plugin being detected, falling back to path if there is no namespace given - this fixes testing for symlinked plugins.
- Add type hints and return types for most methods
Very useful for projects using mix for their own plugins that would like to avoid running any mix packages provided by either the Winter core or other plugins that the project owner doesn't control.
Includes handling of Windows interrupt/break signals in Powershell to correctly cleanup when terminating the Mix commands early.
Co-authored-by: Ben Thomson <git@alfreido.com>