Trace: • roadmap • components • principles • about
This is an old revision of the document!
Table of Contents
General ¶
Jelix is a framework for PHP5, whose objective is to contribute to the realization of applications or Web sites of any kind.
Here is what is proposed to the developer:
- API dealing with numbers of technical aspects: data access, MVC model, templates, exit format generator (HTML, XUL,…), Web services (xml-RPC, json-RPC), authentication, rights management, localization etc.
- a modular structure and an organization of the files of the project, imposing a framework and some developing standards.
- a “layer” organization of the project: presentation, coordination, service, business, persistence.
These characteristics allow for a better re-use of the code, a capitalization of know-how, a better organization in the development, all this moving to a better productivity.
Jelix uses to the maximum of specificities of PHP5, in order to be the lightest and most powerful possible. This is why a project based on Jelix is 100% object.
Features: ¶
Original functions and characteristics ¶
- Modular architecture : an application can be cut out in several reusable modules.
- Minimal guarantee on the data exchange : Jelix controls the generation of exit format according to the type of request. For example, if we have a request for a XML-RPC web service, we cannot generate HTML, the answer will be obligatorily in XML-RPC. That thus offers a certain robustness of the application in client/server communication. (Unless the developer does not use objects from Jelix, because nothing indeed prevents from making an echo of anything anywhere).
- Generation of technical errors in specified format : thanks to the Jelix system described before, all the technical errors are returned in the format awaited by the client. For example: no HTML formatted error when client is awaiting XML-RPC or RDF response.
- Light and evolutionary template engine (jTpl), with a syntax halfway between Smarty and PHP. A plugin system like in Smarty is also available.
- jDAO, object-relational mapping, based on the DAO design pattern (Data Access Object). Declared in XML files, automatic generation of its SQL requests , handling of security problems (SQL injection etc…).
- Designation of files and resources by selectors, and not by physical ways, then bringing a certain independence to a module from the installation.
- Event system allowing module-to-module communication.
- Overload file : it is possible to redefine some files of a module without changing the originals (DAO, templates, properties). Useful when a module is used by several applications at the same time, or to make easy the update of a third module.
Modern functions and characteristics ¶
Functions that we don’t find so often in frameworks:
- Web Services : Jelix deals with analysis of the content of requests, and the generation of the response. XML-RPC and JSON-RPC are handled. Other types of services Web are completely possible (SOAP,…).
- Handling of RESTfull : by simple implementation of an interface: one can easily define what is done after HTTP GET/POST/PUT/DELETE requests.
- Template system: it is possible to define several templates, each one redefining the template of modules.
- Automatic system for URL generation and mapping : no complete URL in Jelix. The framework has the responsibility to generate urls in the templates or elsewhere, according to the configuration of URL mapping defined nn actions (mod_rewrite &co).
- PHP scripts for code generation to execute in command liner, allowing fast creation of various files of a project (module, DAO, template, actiongroup etc)
- Technical cache system : almost all non PHP files of a Jelix project “are compiled” in PHP in order to improve the performances (templates, DAO, events etc.).