Implemented a PSR-4 compliant scheme.
##### FuzeWorks can now be properly loaded by Composer, without any lost functionality.
> Closes#97
See merge request !50
Resolve "Make FuzeWorks Composer Compatible"
###### We want to make FuzeWorks Composer compatible so FuzeWorks can be loaded as a dependency.
This will allow us to load FuzeWorks/Core into FuzeWorks/Application, and possibly use FuzeWorks in other projects as well.
FuzeWorks will need to be trimmed down a lot, and directories should be determined in a different way. All tasks are still to be determined and put in here as a list.
> Closes#100
See merge request !49
The index file has been removed as well. This file has been replaced with the FuzeWorks\Configurator class. The configurator prepares FuzeWorks and loads it when requested. This allows for more flexible startups.
Implemented Nette/Latte engine.
This Engine allows for really neat ways to handle templates. It is an optional dependency which will be installed if composer is used.
See merge request !48
Implemented renewed Routing and Output system.
Everything is in accordance with issue #89 and #90.
> Closes#89
> Closes#90
> Closes#98
See merge request !47
This debugger allows for advanced debugging for both development and production environments.
This did however require the implementation of an ENVIRONMENT constant. This has been put in the index file. If no constant is set it will be set by the core class and the default is PRODUCTION.
Chances are that the location for this constant will move in the future.
There is also a proper way now that fatal errors will lead to a 500 error on the screen. This is either done by Tracy or FuzeWorks, depending on if Tracy is available.
Core Unit Tests
The first tests have been added:
- Layout
- Core
- Events
- Helpers
- Factory
- Config
- Libraries
Please wait until more of the list is handled.
Some of the events mentioned in #77 are fixed. However not all of them are done yet.
> Closes#84
> Closes#88
> Closes#93
See merge request !44
The following tests for classes have been implemented:
- Security
- Input
- Encryption Library
- Utf8
A mocking autoloader has been added (but is not yet configured correctly)
This allows the user to install new Logging templates that run in specific circumstances. By default the FuzeWorks default (as you already know it) template is installed, and a CLI one.
Closes#88
A class can now extend the Factory class and use all of its properties.
Properties like the layout system can be called like $this->layout, when extended. Just like the old days with the Bus abstract class.
Advantage of this system is that you don't require the use of extending the Factory class. Calling the factory for just one use is also possible.
Closes#93.
Now it only features one (simpler) ORM, which is the ConfigFileORM.
If a new type of config should be added, it should be done through models.
Unit tests for the basic config class have been implemented.
The Factory class is the central point for class communication in FuzeWorks. When someone needs to load, for instance, the layout class, one has to do the following:
$factory = Factory::getInstance();
$layout = $factory->layout;
The Factory class allows the user to replace dependencies on the fly. It is possible for a class to replace a dependency, like Logger, on the fly by calling the $factory->newInstance('Logger'); or the $factory->setInstance('Logger', $object); This allows for creative ways to do dependency injection, or keep classes
separated.
It is also possible to load a cloned instance of the Factory class, so that all properties are independant as well,
all to suit your very needs.