Trace:
Differences ¶
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:features [2007/11/30 13:43] – laurent | en:features [2024/04/24 14:22] (current) – [General informations] laurent | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== General information ====== | + | ~~LANG: |
| - | 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: | + | ====== General informations ====== |
| - | | + | Jelix is a framework for PHP 7.4 and 8, whose purpose is to ease the development of applications or Web sites of any kind. |
| + | |||
| + | Here is what is proposed to developers: | ||
| + | |||
| + | | ||
| * a modular structure and an organization of the files of the project, imposing a framework and some developing standards. | * a modular structure and an organization of the files of the project, imposing a framework and some developing standards. | ||
| * a " | * a " | ||
| - | These characteristics allow for a better re-use of the code, a capitalization of know-how, a better organization in the development, | + | These characteristics allow a better re-use of the code, a capitalization of know-how, a better organization in the development, |
| + | |||
| + | Jelix makes the most of PHP 7.4 features, in order to be the lightest and most powerful possible. | ||
| + | |||
| + | ====== Goals ====== | ||
| + | |||
| + | We develop Jelix by keeping these words in mind: | ||
| + | |||
| + | * **Performance**: | ||
| + | * **Simplicity**: | ||
| + | * **Flexibility**: | ||
| + | * **Robustness**: | ||
| + | * **Pragmatism**: | ||
| - | 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 ====== | ====== Features ====== | ||
| - | ===== Original functions and characteristics ===== | + | |
| - | * **Modular architecture** : an application can be cut out in several reusable modules. | + | ===== Original functions and characteristics ===== |
| - | * **Minimal guarantee on the data exchange** : Jelix controls the generation of exit format | + | |
| - | * **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. | + | * **Modular architecture** : an application can be cut out in several reusable modules. |
| - | * **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 | + | |
| - | * **Event system** allowing module-to-module communication. | + | |
| - | * **Overload | + | * **Light |
| + | | ||
| + | | ||
| + | * **Designation of files and resources by selectors**, | ||
| ===== Modern functions and characteristics | ===== Modern functions and characteristics | ||
| Functions that we don’t find so often in frameworks: | 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. | + | * **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/ | * **Handling of RESTfull** : by simple implementation of an interface: one can easily define what is done after HTTP GET/ | ||
| - | * Template | + | * **Generic CRUD**: Jelix provides a generic controller to build a CRUD interface which then allows to manage records of a SQL table (Create, Read, Update, Delete and list). Only a jForms file, a jDao file and few lines of code are required. |
| - | * **Automatic system for URL generation and mapping** : no complete | + | * **Themes |
| - | * **PHP scripts for code generation** to execute in command | + | * **Automatic system for URL generation and mapping** : no hard-coded |
| + | * **PHP scripts for code generation** to execute in the command | ||
| * **Technical cache system** : almost all non PHP files of a Jelix project "are compiled" | * **Technical cache system** : almost all non PHP files of a Jelix project "are compiled" | ||
| - | + | * **UTF-8 compliant**: | |
| + | * **Module dedicated to unit tests**: unit tests are essentials to create a reliable application. So Jelix provide a module which has an interface to launch unit tests and a simple way to create unit tests (using simpleTest) | ||
| ===== Traditional functions and characteristics | ===== Traditional functions and characteristics | ||
| + | |||
| Functions which one finds in many frameworks: | 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). | + | * **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. | + | * Jelix provide **several output generators** (jResponse objects): XHTML, CSS, ATOM, RSS, XML, RDF, ZIP, PDF (with TCPDF). Others formats are also possible. |
| - | * **Localization**: | + | * **Database access abstraction layer**: jDb relies on PDO or its own classes (when PDO is not available) to access to the databases. |
| + | * **Localization**: | ||
| * **System of authentication and rights management**. | * **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. | + | * 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 (for example with JelixEclipse, |
| - | + | ===== How does Jelix work ===== | |
| - | + | ||
| - | ===== How does Jelix works ===== | + | |
| {{http:// | {{http:// | ||
| - | | + | |
| + | | ||
| - A method | - A method | ||
| - | - Then the method | + | - Then the method |
| - | - The method of the controller | + | - The method of the controller |
| - | - Jelix gets this jResponse object, | + | - Jelix gets this jResponse object, |
| ====== Your first application ====== | ====== Your first application ====== | ||
| - | Read the [[en: | + | |
| + | Read the [[en:tutorials: | ||

