Renamed 'oframe' to 'Oframe'.
Rewrite all requests to index.php. The current URL will be passed on as the GET variable 'u'.
The Request will aks the Router for the Page that belongs to the current URL. When the Request recieves the Page, it will ask the Page to respond the Request.
Instead of letting the Request respond directly, let the Application respond to a Request. This way, the Request will only be aware of the fact that it is a request. It doesn't need to know that a Response is created based on it, or that a certain Page must be loaded because of its current URL.
Let the Router gather all routes that are created by the modules. The ModuleManager will provide all available modules to the Router.
Define all routes of each module inside a 'routes.xml' file. This file will be read and interpreted by the Module. The Module will convert the data to Route objects and pass them back to the Router. In collaboration with the routes, the Router will check if it can route the current URL to a Page. If not, an RouteNotFoundException will be thrown.
Refactored the code inside the Module to read data routes from an XML file to be more readable.
Moved the Router and Route classes to a subdirectory 'routing' to group them together. In the future, there will probably be some factories to create routes from different sources. Those can also be placed in this subdirectory.
Extracted the creation and parsing of the routes.xml file from the Module class into a seperate XmlRouteFactory. This factory will try to read the routes.xml file from the specified module and create Route objects from it. This factory enforces the uniform usage of a routes.xml file, with that specific naming, placed inside the config directory of the specified module.
Moved the Module and ModuleManager classes to the subdirectory 'modules'. A new Module class to represent the 'Oframe' module has been added in the main directory. Every other module will also need a Module class that extends the \Oframe\Modules\Module class. This way the application always knows what modules are available.
Created a ModuleFactory with the responsibility to create single modules, or all modules at once. The ModuleManager is therefor no longer needed and thus removed. To comply with PSR-0 we will have to change the filename and directory convention of only using lowercase letters. If the directory name and module alias will be assumed equal, their case will also have to be equal.
In accordance with the PSR-0 standard, all directories and files have been altered to follow the capitalization of the classes they contain. Files and directories that are not directly related to namespacing are NOT altered (e.g. the 'source' and 'source/lib' directories).
MIT license added in the root directory of the project.