Utiliser plusieurs fichiers
Le format .phtml
À partir de maintenant nos projets vont utiliser plusieurs fichiers, nous allons donc faire la différence entre :
les fichiers qui contiennent du HTML et du PHP qui auront le format
.phtml.les fichiers qui contiennent uniquement du PHP qui auront le format
.php.
Require
require est une fonctionnalité native de PHP qui permet d'injecter le code d'un fichier dans un autre.
Pour l'instant, vous allez surtout l'utiliser pour afficher le contenu de vos templates (les fichiers .phtml) depuis vos fichiers .php.
Au fur et à mesure des nouveaux modules, vous l'utiliserez pour des nouvelles choses.
Fonctionnement de require
Utiliser require c'est assez simple :
Donc si par exemple, vous avez un fichier home.phtml dans un dossier templates:
Lorsque require injecte le contenu d'un fichier, le code dans le fichier injecté a accès au code déclaré avant lui mais pas celui déclaré après :
template.phtml
Si votre fichier index.php ressemble à ceci :
index.php
Votre titre va bien être injecté, mais votre contenu, déclaré après le require n'est pas disponible dans template.phtml.
Vous devez modifier votre fichier comme ceci pour faire fonctionner le code :
index.php
Comment organiser un projet PHP
Pour démarrer un projet PHP, vous avez besoin de l'architecture de dossiers et fichiers suivante (elle évoluera au fur et à mesure que vous apprenez de nouvelles notions) :
assets
assets c'est le dossier qui contiendra vos fichiers SASS, CSS et JavaScript.
controllers
controllers c'est le dossier qui contiendra vos fichiers de logique PHP, donc vos fichiers .php, à l'exception de votre index.php qui sera toujours à la racine de votre projet.
templates
templates c'est le dossier qui contiendra vos templates qui contiennent votre code HTML, donc vos fichiers .phtml.
index.php
index.php est l'unique fichier d'entrée de votre site, c'est le seul fichier que vous allez lancer, ce qui veut dire qu'à partir de là dans votre navigateur l'URL sera toujours : localhost/dossier/de/mon/exercice/index.php. Toutes les informations que vous voudrez transmettre passeront par les paramètres d'URL ou les formulaires.
Rediriger vers une URL
Vous aurez souvent besoin de rediriger vers une URL sans que l'utilisateur s'en rende compte, pour faire ça on utilise ;a fonction header fournie par PHP, attention à bien respecter les espaces, sinon ça ne fonctionnera pas :