Icon

Partager Envoyer

(Document)

Architecture et principaux fichiers

L'application chora suit l'architecture normale d'une application web conçue avec le cadriciel CodeIgniter (https://www.codeigniter.com/).

 

Dossier racine

Un premier routage (au niveau du serveur http hôte) est éventuellement effectué à la lecture du fichier .htaccess qui se trouve à la racine de votre installation (notamment, pour réécrire les URLs en éliminant le fichier index.php de celles-ci.) :
/.htaccess

Le fichier principal est chargé :
/index.php

Il charge à son tour les différents environnements configurés (dans le cas d'une installation multisites) :
/websites.php

Les fichiers système du cadriciel se trouvent dans /system/.
Les bibliothèques de tiers utilisées par ce dernier se trouvent dans /vendor/.
Les fichiers de l'application proprement dite se trouvent enfin dans /application/.

D'autres dossiers se trouvent à la racine de votre installation : ce sont ceux qui ne doivent pas, pour des raisons de sécurité, être situés dans le dossier web de l'application.
/assets/ fichiers de contenus (tels que les fichiers css, javascript, les polices de caractères, les médias...) et fichiers internes  de la bibliothèque CRUD (Create-Read-Update-Delete) qui peut être utilisée pour étendre l'application avec la génération de formulaires.
/_ca/ fichiers d'autorité de certification
/_documentation/ documentation technique sous forme de fichiers texte ou HTML
/_src/ fichiers source
/_utilities/ utilitaires externes
/_xsl/ feuille de styles xsl pour l'affichage des flux rss
/binaries/ (optionnel) doit contenir les binaires tiers utilisés par l'application sur serveurs Microsoft Windows (sont actuellement supportés : FFMpeg, Ghostscript, Xpdf-tools, Antiword)
/install/ contient un installateur graphique pour effectuer la configuration initiale de l'application (à supprimer après l'installation dans un environnement ouvert de production)
/certs/ fichiers certificats utilisés notamment par la bibliothèque cUrl
/webstats-ext/ dossier pouvant accueillir une application externe pour la génération de statistiques de fréquentation web, telle que Matomo (les vues devront être modifiées pour inclure le code Javascript requis).

Ainsi que quelques fichiers :
/log.php fichier pouvant être appelé directement pour la création d'événements système de l'application via l'API RESTful.
/sitemap.xml.gz fichier de sitemap généré par l'application

Et les divers fichiers README et license (fichiers légaux).
 

Dossier application

Une fois les environnements chargés, la configuration de l'application est effectuée à partir des fichiers placés dans :
/application/config/
/application/config/<ENVIRONMENT>/
(dans le cas d'une installation multisites).
 

Architecture Modèles - vues - contrôleurs

Le cadriciel CodeIgniter implémente la logique MVC (Modèles, Vues, Contrôleurs) de manière peu contraignante : il privilégie avant tout le fait de pouvoir réutiliser le code existant ou au contraire de séparer celui qui n'est pas réutilisé, limitant ainsi les dépendances complexes entre les fichiers pour plus d'agilité.

Suivant cette logique, certains contrôleurs de chora n'ont pas de modèle correspondant (généralement lorsqu'ils ne modifient pas la base de données).

Et certains traitements servant uniquement à l'affichage d'informations optionnelles sont effectués dans les vues de chora, l'idée étant de limiter au maximum les modifications à apporter aux contrôleurs de l'application. Ces traitements peuvent toujours être supprimés ou modifiés sans affecter le reste de l'application.
 

Les fichiers MVC (Modèles - Vues - Contrôleurs) de chora se trouvent dans les dossiers suivants :
/application/models/
/application/views/
/application/controllers/


Les bibliothèques partagées (libraries) et les fichiers de simples fonctions d'aide (helpers) propres à l'application se trouvent dans :
/application/helpers/
/application/libraries/

(Notez que les fichiers de bibliothèques dont le nom commence par MY_* étendent ceux du cadriciel.)
 

Fonctionnement

Les URLs chargés par les utilisateurs sont conformes au schéma suivant :
http://<URL racine de votre site>/<contrôleur>/<méthode du contrôleur>[/<paramètre 1>/<paramètre 2>...]
Ils renvoient donc habituellement à un fichier contrôleur se trouvant dans /application/controllers/

Eventuellement (la plupart du temps), le contrôleur appelé se charge de l'inclusion des fonctions d'aide et des bibliothèques nécessaires (dans /application/libraries/ et /applications/helpers/), fait appel aux modèles se trouvant dans /application/models/ pour interagir avec la base de données, puis renvoie le résultat sous forme d'affichage d'une page html générée à partir d'un ou plusieurs fichiers de vues se trouvant dans /application/views/.
Dans certains cas, un traitement supplémentaire est appliqué sur la sortie à partir des fichiers dans /application/hooks/.
 

Vues communes

Certaines vues sont communes à la majorité des pages affichées par l'utilisateur, suivant la logique de la mise en page des documents produits. Ce sont :
—cinq vues pour l'en-tête (la première charge les quatre autres) :
/application/views/Head.php : en-tête HTML (de la balise <html> jusqu'avant la balise <body>)
  /application/views/css.php
  /application/views/js.php

  /application/views/Subbhead.php : en-tête du site contenant la balise <body>,chargeant le menu principal (ou menu haut) et quelques conteneurs comme celui des modaux. Cette vue est chargée dans Head.php.
  /application/views/Main_menu.php : menu principal haut de l'application (en-tête du site chargé dans Subhead.php)

—et une vue pour le pied de page :
/application/views/Footer.php : pied-de-page HTML du site (comprenant la fermeture des balises </body> et </html>)

Les vues intermédiaires utilisées pour l'affichage des collections, contenus (data), événements (events), libellés (tags), etc. sont rangées dans des sous-dossiers correspondant à la nature des informations qu'elles concernent de /application/views/ :
/application/views/collections/
/application/views/data/
/application/views/events/
/application/views/tags/
...

Autres

Les autres dossiers présents dans /application/ sont :
/application/cache/ contient les fichiers de cache de l'application
/application/core/ contient des fichiers système modifiés (pour étendre le système)
/application/hooks/ (contenant des fonctions de traitements aditionnels appliqués au code produit par l'application : utilisé seulement pour la minification du code HTML/JS/CSS et par le profileur activé selon la configuration de l'environnement de débogage (DEBUG_ENVIRONMENT))
/application/language/ fichiers de langue de l'application (ils sont lus/générés par l'interface de gestion i18n)
/application/logs/ fichiers des journaux PHP de l'application (leur contenu dépend de l'environnement de débogage (DEBUG_ENVIRONMENT))
/application/migrations/ fichiers de migration de la base de données

Enfin, le fichier /application/paiementpp.php est une passerelle directe pour les paiements effectués via Paypal qui est utilisée dans le cas d'un site ecommerce et qui peut servir d'exemple pour intégrer d'autres fournisseurs de services de paiement en ligne. Il est accédé directement.

 


Ce document a été publié le 2019-07-27 09:57:28. (Dernière mise à jour : 2019-07-27 09:58:08.)




This website uses 'cookies' to enhance user experience and provide authentification. You may change which cookies are set at any time by clicking on more info. Accept
x