Trace:
Differences ¶
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
en:about [2006/09/01 11:40] – doubleface | en:about [2006/09/03 09:08] – doubleface | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
+ | ===== General ===== | ||
Jelix is a framework for PHP5, whose objective is to contribute to the realization of applications or Web sites of any kind. | Jelix is a framework for PHP5, whose objective is to contribute to the realization of applications or Web sites of any kind. | ||
Line 11: | Line 12: | ||
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. | 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/ | ||
+ | * **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, | ||
+ | * **Designation of files and resources by selectors**, | ||
+ | * **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. | ||
+ | * **Handling of RESTfull** : by simple implementation of an interface: one can easily define what is done after HTTP GET/ | ||
+ | * 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 & | ||
+ | * **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" | ||
+ | |||
+ | |||
+ | ==== Traditional functions and characteristics | ||
+ | Functions which one finds in many frameworks: | ||
+ | * **The architecture of the core is MVC type** (Model-View-Controller). A coordinator handles the execution of an action according to the parameters in the URL. The possible actions are implemented in classes of jController type (controllers). | ||
+ | * **Database access abstraction layer**: jDb relies on PDO or its own classes (when PDO is not available) to reach the databases. | ||
+ | * **Localization**: | ||
+ | * **System of authentication and rights management**. | ||
+ | * Use of XML: declaration of the events, DAOs etc… That makes it possible to facilitate writing, generation and modifying these parts of a project by third-party tools, and thus to increase productivity. | ||
+ |