Re !
Pour l'avancée de foolproof c'est "nada" en ce moment. Avec le début du cours je travail plus trop et je vais mettre à jour le noyau du site, donc je travail pas sur les modules. Mais vous allez comprendre ça en lisant la suite du message.
Donc le site foolproof est un site entièrement développé à la main utilisant le PHP, SQL, HTML, CSS, JS, XML, JSON.
Le noyau du site est composé d'une librairie MVC (Framework) que j'ai aussi développé afin de faciliter le travail.
Voici la structure du site :
www/
→ Applications/ # Contient l'application web
→ _Cache/ # Cache de l'application
→ _Log/ # Logs de l'application
→ Backend/ # Application backend (pas d'explication, même chose que Frontend)
→ Entities/ # Entités (membre, news, commentaire, ...)
→ Member.php # Visualisation d'un membre en Objet
→ News.php # idem
→ Comment.php # idem
→ ...
→ Errors/ # Pages d'erreur
→ 404.php # Page d'erreur 404
→ 500.php # Page d'erreur 500
→ ...
→ Frontend/
→ Config/ # Configuration de l'application
→ routes.xml # Route de l'application
→ Modules/ # Modules de l'application
→ Member/ # Module membre
→ MemberController.php # Contrôleur du module
→ Page/ # Module page
→ PageController.php # Contrôleur du module
→ ...
→ Templates/ # Layout de l'application
→ Default/
→ template.php # Gabarit
→ Modules/ # Modules de l'application
→ Member/ # Module membre
→ add.php # Vue
→ edit.php # Vue
→ view.php # Vue
→ index.php # Vue
→ Page/ # Module page
→ home.php # Vue
→ view.php # Vue
→ index.php # Vue
→ img/ # Images du thème
→ css/ # CSS du thème
→ js/ # JS du thème
→ ...
→ FrontendApplication.php # Contrôleur de l'application
→ Models/ # Modèles
→ Member/ # Module membre
→ MemberManager.php # Définition des fonctions pour le module Membre
→ MemberManager_PDO.php # Fonctions PDO pour le module Membre
→ Bootstrap.php # Fichier de configuration personnelle de l'application
→ Library/ # Librairie installée
→ Sly/ # Librairie SlyWork (pas d'explication)
→ Webroot/ # Fichier visible depuis Internet
→ frontend.php # Lancement du frontend
→ backend.php # Lancement du backendImaginons que je suis un utilisateur qui arrive sur la page d'accueil du site (l'explication sera en très gros, sinon c'est trop complexe).
J'ai donc l'URL :
http://foolproof.ch/
A ce moment, un
htaccess va me rediriger sur le fichier
frontend.php se trouvant dans le répertoire
Webroot.
Ce fichier va lancer l'application "
Frontend" en exécutant la fonction
Run qui se trouve dans le fichier
FrontendApplication.php.
A ce moment, je vais devoir analyser l'URL qui a été inscrite dans le navigateur afin de savoir où je vais diriger l'utilisateur.
J'en ressort un slash (
/), tout simplement car c'est ce qui suit le nom de domaine.
Avec cette donnée, je vais aller analyser le fichier
routes.xml (ce fichier définit les routes de l'application).
?xml version="1.0" encoding="utf-8" ?
routes
route url="/" module="Page" action="home" /
/routesLe fichier me dit que "
/" va appeler le module "
Page" puis exécuter l'action "
home".
On va donc chercher le contrôleur du module
Page et exécuter la fonction "
home".
?php
namespace Applications\Frontend\Modules\Page;
use Library\Sly\Controller\BackController;
use Library\Sly\Controller\Component\CheckComponent;
use Library\Sly\Core\Cache;
use Library\Sly\Helper\HTMLHelper;
use Library\Sly\Network\HTTPRequest;
class PageController extends BackController
{
public function executeHome() {
$this-page-addVar('description', '');
}
}La fonction est assez courte, elle va simplement ajouter à la page une variable du nom de "
description" étant vide.
A la fin de la fonction
executeHome(), je vais automatiquement allez chercher la vue qui correspond à cette fonction (
home.php).
?php use Library\Sly\Helper\HTMLHelper; ?
section id="home-page"
headerh1 class="hidden"Page d'accueil/h1/header
pPage d'accueil/p
/section
Ce code HTML sera inséré dans le gabarit principal de l'application (que je ne vais pas mettre en entier) grâce à la variable
$content qui le contient.
div id="main-content" class="content"
?php echo $content; ?
/divPuis l'HTML final qui à été généré grâce à la vue demandée par l'utilisateur qui a été insérée dans le gabarit principal du site sera renvoyé à l'utilisateur.
Voila, c'est comment le site fonctionne en très très très très très très lite.
Vu que j'ai sûrement très mal expliqué il y a des bouts que vous n'avez sûrement pas compris.
J'attends donc avec impatience vos questions.
@+