- Dropped support for PHP 7.4 and 8.0.
- Updated shutdown to no longer halt execution on an error if logger error handlers are disabled.
- Logger::enable() and ::disable() now control the screen log, as it used to in the old days.
Configs are now layered on top of each other. If a config file is found in multiple directories, they are merged together. Higher fields will override lower fields. This way, if one field is missing in a higher priority file, the lower priority can still be used.
Configs are now layered on top of each other. If a config file is found in multiple directories, they are merged together. Higher fields will override lower fields. This way, if one field is missing in a higher priority file, the lower priority can still be used.
- This resulted in some changes needing to be made in the test folder. All tests have been updated to work with these updated dependencies.
- Also, PHP 7.1 is no longer supported.
- psr/log is no longer a dependency of Core
Config files may now have a 'lock' key. If a config file has such a key, ConfigORM will refuse to commit changes.
This allows the developer to use Core::getEnv() in config files, without risk of it being overwritten by a commit.
- Components are now initialized before deferredComponentClasses are called. This ensures that components are properly prepared to be called.
- Directories are now added to components before components are initialized.
The following order has thus been established:
3.1 Load Components
3.1.1 setInstance of component
3.1.2 run onCreateContainer()
3.2 Add directories by category
3.3 each component init()
3.4 deferComponentClass invoke
See document on FuzeWorks boot order.
Release 1.2.0
After a very long development cycle, 1.2.0 is finally finished.
This release brings a great many new feautures to FuzeWorks. The FuzeWorks Core has been split up into multiple projects to allow a more flexible utilisation.
The following feautures have been implemented in 1.2.0:
- FuzeWorks is now released under the MIT license. This license fits the usage of FuzeWorks in commercial projects more than the former GPLv3 license.
- FuzeWorks now consists of so-called ``Components``. These Components can be added to the ``FuzeWorks\Configurator`` after which they shall be loaded. Each ``Component`` must have multiple methods which allow them to hook into other ``Components`` to communicate.
- FuzeWorks now supports PHP 7.3 and no longer supports 7.0.
- FuzeWorks now comes with an autoloader in ``FuzeWorks\Core``, allowing the developer to add a classMap to be autoloaded from a specific directory.
- ``FuzeWorks\Core`` now manages all error and exception handlers, executing them by order of ``Priority``
See merge request fuzeworks/core!69
- FuzeWorks\Core now manages autoloading of classes for Plugins. Plugins no longer need to implement this themselves. Autoloading for libraries to be added soon.
- FuzeWorks\Factory::getInstance('') now returns a requested component. No arguments will result in the Factory being returned. This should simplify invoking components. cloneInstance() replaces old functionality.
- FuzeWorks\Logger can now properly write logs to file. It's unknown how this issue wasn't discovered before.
- The plugins system wasn't properly registering the plugins config, because it was initialized at construct, which resulted in alternative directories not yet being loaded. The method has been changed to init() instead.
- Implemented a exception and error handler which other methods register to. These are executed in the order provided by the Priority class
- Logger now uses the $isEnabled property to determine if it is enabled. $print_to_screen now has its own methods.
- Plugins now use a 'plugin.pluginName.php' file by default
-
- Changed the enableDebugMode() method in Configurator. Now gets enabled when calling this method. Restricting this through detectDebugMode() is now optional.
- Added multiple logs accross FuzeWorks.