Commit Graph

39 Commits

Author SHA1 Message Date
3343c08594 Implemented many CodeIgniter classes.
Preparing for Factory Build
2016-05-24 12:05:29 +02:00
6522fe2429 Implemented the language class.
The Language Class provides functions to retrieve language files and lines of text for purposes of internationalization.

In your FuzeWorks Core folder, you will find a Language sub-directory containing a set of language files for the english idiom. The files in this directory (Core/Language/english/) define the regular messages, error messages, and other generally output terms or expressions, for the different parts of the FuzeWorks.

You can create or incorporate your own language files, as needed, in order to provide application-specific error and other messages, or to provide translations of the core messages into other languages. These translations or additional messages would go inside your Application/Language/ directory, with separate sub-directories for each idiom (for instance, ‘french’ or ‘german’).

FuzeWorks comes with a set of language files for the “english” idiom. Additional approved translations for different idioms may be found in the FuzeWorks Archives. Each archive deals with a single idiom.

When  FuzeWorks loads language files, it will load the one in Core/Language/ first and will then look for an override in your Application/Language/ directory.
2016-05-22 19:29:55 +02:00
3284246fcf Added documentation to Database class. 2016-05-21 22:11:21 +02:00
6956a3a0d9 Implemented the new database engine. Advanced instructions will follow in Merge Request 2016-05-20 17:29:33 +02:00
be3c6c87ff Implemented new config.core.php variables.
It is now possible to disable the modules and the events system using the config file. This will completely turn the system off.
The event system will still load the event classes but it will not send them around.
2016-05-15 15:37:26 +02:00
7e3e707d9f Implemented Registry caching.
By changing the config.core.php file you can select how registries should be cached. Remember that this is not recommended during development.
The available options are file, apc, redis, memcached, wincache and dummy. Cache TTL can also be set. Some caching drivers require you to change the config.cache.php file.
2016-05-14 17:06:42 +02:00
ae861b8b6e Implemented a caching library.
The library comes with 6 drivers: APC, file, memcached, redis, wincache and a dummy driver. Which driver you can use is dependant on your situation.
In order to build this a Driver library has been implemented. A driver can be called using (FuzeWorks\)Libraries::getDriver($libraryName); This will load the driver library and the requested library. Regular library rules apply.

Every driver comes with the same methods (found in documentation) but the 2 most important are $driver->save($objectName, $object, $time); whereby $time is an integer in minutes; and $driver->get($objectName); which will receive the cached value;

To load a cache driver you need to run something like the following:
$cache = FuzeWorks\Libraries::getDriver('cache', array('adapter' => 'apc', 'backup' => 'file'));
This will try and load the APC cache driver. If this fails it will try and load the file driver. If all fails it will load the dummy driver. The dummy driver does not actually save anything, it's just a placeholder until you fix your environment.

More information can be found in the documentation.
2016-05-14 16:18:59 +02:00
2aef5abdd3 Implemented Helpers into FuzeWorks.
Helpers are small utilities that can be loaded to assist a performing certain functions. Helpers are simply global functions that get loaded when requesting them.

Helpers can be loaded using (\FuzeWorks\)Helpers::load('helperName'); Helpers can be put in the 'Core/Helpers' or the 'Application/Helpers' directory. The 'Applications/Helpers' directory is scanned first, so this one has priority over Core helpers.

It is possible to sort of 'extend' helpers. By putting a helper in the 'Application/Helpers' directory with the application prefix (found in config.main.php) you can load that helper first and then the helper in the core directory. This allows you to add or override functions without the need of copying the entire helper from the core. For example: there is a helper in the core directory named 'example_helper.php'. This one has a function named 'doSomething();' inside it. If you now create a helper in the application directory named 'MY_example_helper.php', then that one will be loaded first and can override the core class because the application helper is loaded first.

More detailed instructions will be provided in the documentation.
2016-05-14 14:06:04 +02:00
2cbc431283 Implemented the first extension: the Encryption extension.
The Encryption Library provides two-way data encryption. To do so in a cryptographically secure way, it utilizes one of multple PHP extensions.
2016-05-13 22:52:14 +02:00
4e9fe8db4a Implemented a basic Library system for FuzeWorks.
Libraries are small one-class utilities which can be loaded to fasten functionality for controllers and modules. It's meant to support modules and controllers but not the other way around.
Libraries can be put in the Core/Libraries directory. Libraries put here must use the FuzeWorks\Library namespace and must use the 'FW_' prefix. A library named 'Example' will be named 'FW_Example' and would be located in the file Example.php in the Core/Libraries directory.

It's also possible to extend on core libraries or completely add new libraries. Adding a new library can be done as easily as adding the file to the Application/Libraries folder. The used namespace is 'Application\Library'. Libraries that do not extend anything do not need a prefix.

Libraries that extend however require a prefix. This prefix is configurable in the config.main.php in the Application/Config directory. The default prefix is 'MY_'. If you want to extend the file should have a different name. In the 'Example' example the file should be named 'MY_Example.php' in the Applications/Libraries folder.

Libraries can be loaded using the Libraries::get('libraryName') method (FuzeWorks\Libraries::get()).
2016-05-13 22:20:53 +02:00
5bc326b5e1 Misc. changes to configuration files related to formatting 2016-05-12 12:18:08 +02:00
9f4742b063 Updated entire project to PSR2 code standard. Some classes still need to be moved around. 2016-05-07 19:22:09 +02:00
9d665e2ae1 Many Misc jobs:
- Modules can now be loaded using routes by adding a routes[] array to the moduleInfo.php. When it matches, the module gets loaded, and a route() function in the main class gets called. (Fixes #79)
- Composer can now load from a different file
- License headers have been added to all core files (Fixes #66)
- Table model has been renamed to sqltable. Interpret model has been removed
- layoutLoadViewEvent added
- Controllers now extend the \FuzeWorks\ControllerAbstract class
- Controllers are now in the \Application\Controller namespace
- Models are now in the \Application\Model namespace
- Events are now in the \FuzeWorks\Event namespace
- Moved some classes in a different namespace for a better overview
- Events can now properly load function listeners (fixes #81)
- Documentation added to more classes. (Partially fixes #58)
- Added replace() command to DatabaseUtils Abstract Model
- Added more unit tests for router, query and events
2015-10-11 19:14:49 +01:00
5093f98c4b Started working on renewed Unit Tests. 2015-09-06 15:42:57 +02:00
68b3b402e7 Made the core of FuzeWorks static.
Resolves #74

More tests are needed in order to prove functioning of renewed core
2015-09-05 21:47:35 +02:00
064adfe1c2 Moved internal 404 error template to PHP engine 2015-09-05 19:04:21 +02:00
fe4fe7e688 Changed the default page into a PHP template. 2015-08-29 20:34:38 +02:00
30f700a727 Implemented the fully renewed Layout Manager.
Now based on a new database schema, working with events and many more abilities.
An expansion with a built in login page might be possible.
2015-08-29 20:30:52 +02:00
4a0620c2e1 Implemented a small Init class that gets loaded at the defaultCallable.
You can use this class to do some actions at the start of every page. Usefull for authentication and other things.
2015-08-29 17:35:39 +02:00
bb66e6eb92 Added the ability to enable and disable composer loading 2015-08-29 17:26:47 +02:00
338d0d2a43 Implemented the ability to disable core modules.
Using the config.core.php, you can choose what modules should run in FuzeWorks
2015-07-28 13:09:47 +02:00
d9001d5f9e Removed Fuze References. Fixes #56 2015-07-07 17:27:46 +02:00
51a2d47525 Merge branch 'Issue_#46' into 'master'
QueryBuilder and new Model system

Implemented the new QueryBuilder and Model system.

Please applaud

See merge request !24
2015-05-06 21:42:13 +02:00
aab34844ee Implemented renewed querybuilder and a better databasemodel. Database utilities can from now on be added to this module.
Fixes #46
2015-05-06 21:25:57 +02:00
524ac87f77 Fix for #55. Created a better looking 404 error page 2015-05-06 18:27:53 +02:00
dd93772704 Router and Logger merge with GF, and many more CI Tests 2015-05-03 22:50:36 +02:00
b4a574dadf Removed files that are not important to the core 2015-05-03 20:42:50 +02:00
f074bce545 Added Controller Abstract for multiple parent classes of controller 2015-04-29 19:36:38 +02:00
c5318a2e99 Added new namespaces as described in Issue #37. The following namespaces are used:
\FuzeWorks for Core classes
\Controller for controller classes
\Model for model classes
\Module for modules

Also did the following changes:
- DatabaseModel now loads the database module as a dependency
- DatabaseModel is no longer abstract because of ModelServer
- Implemented a new mechanism for model types in the name of a ModelServer. This interface requires a Model Type Server to return a Model parent class based on a given type
- Added a backtrace to the logger class for easy and fast debugging

And that was it for this commit
2015-04-29 17:18:33 +02:00
8c1a7afda5 Fix for #28 and #23. This patch removes the mod and event registers so that modules can now be loaded dynamicly instead of using a global configuration file. 2015-04-22 11:31:29 +02:00
9ce89a180e It is now possible to have multiple types of models.
Just add one call to a model like "$this->setType('techfuze/databasemodel', 'DatabaseModel');" and you load a FuzeWorks2 esque SQL model
2015-03-16 13:29:03 +01:00
68c68cf91c Added a mod register which allows the system to load advanced modules. This allows for the future build of module versions, prevention of module name conflicts and much more. 2015-03-14 15:46:05 +01:00
f894727e40 Changed the way sections work. From now on it is a separate module called by events. The router has been made far more efficient 2015-02-24 14:19:57 +01:00
3c54281092 Implemented Controller sections. This way modules can be loaded as controllers allowing for seperation of code. 2015-02-24 12:51:53 +01:00
bedec427db Minor updates to default template 2015-02-23 21:54:00 +01:00
15610d13ff Fixed the default eventregister config 2015-02-23 20:51:04 +01:00
4343e773af Added EventRegister. This allows the framework to determine what modules should be loaded at an event. This way classes only get loaded at the right time 2015-02-23 20:27:26 +01:00
9edf81085a Updated the config class. JSON support has been removed and a PHP config file writer has been implemented. 2015-02-23 19:30:13 +01:00
22d835257e Initial Commit, merge of MicroCore and FuzeWorks3 2015-02-08 17:29:39 +01:00