Descartes est un système MVC pour PHP volontairement simple et minimaliste.
Descartes fourni un système de routage largement automatisé et utilise l'architecture Objet de PHP5 dans le but de découper les différentes fonctionnalitées d'un site en classes et méthodes. Descartes propose également un certain nombre de fonctionnalités permettant la mise en place simple d'une API Rest.
Descartes est distribué dans une forme intégrant un certain nombre d'outils, notamment une administration de base de données.
Descartes sert de base à une grande partie des développement de Raspbian France et est distribué sous license GNU/GPL V3.
Le système tire sont nom du philosophe Français René Descartes, en hommage à son brillant "Discours de la méthode" (et particulièrement aux "Règles de la méthode"), que nous pensons être bel et bon pour ce qui est du développement informatique.
-
Public Controllers:
- Extend
\descartes\Controller
. - Responsible for processing input data, formatting them, and handling requests from users.
- Each function in a public controller represents a page of the application.
- Common processing for all routes of a controller should be done in the constructor.
- If you need to do some logic on all method of the controller, for example for auth or data initialization, you can do it in construct.
- Extend
-
Internal Controllers:
- Extend
\descartes\InternalController
. - Used to perform the core logic for most tasks.
- Handle tasks like database interactions, business logic, etc.
- Extend
- Interaction with the Database.
- Methods available to simplify database interactions (CRUD).
- Methods in
\descartes\Model
that start with_
provide database operations.
- Located in the
template
directory. - Pages can be rendered using the
render
method of a controller.
- Defined in
routes.php
. - Routes map URLs to controller actions.
- The typical flow for a request:
- Router calls a public controller.
- Public controller calls one or more internal controllers.
- Internal controllers interact with models.
- Public controller renders a template.
You can set constants by defining an array key => value in variable $env
in following files (each file will be merged with previous file, overwriting existings constants if necessary) :
descartes/env.php
env.descartes.php
env.php
env.XXX.php
whereXXX
is the value of a previously define constantENV
.
Look into descartes/env.php
to see default available constants.
[Conclude the documentation, mentioning any additional resources or next steps.]