La réécriture d'url
Pour commencer, il va falloir créer un fichier .htaccess à la racine du projet.
J'ai déjà utilisé ça, c'est pour ajouter un mot de passe sur un site non?
Quand c'est associé à un .htpasswd oui, mais le .htaccess permet de faire beaucoup d'autres choses aussi, et principalement d'écrire des règles de traitement des requêtes Http. Tu as déjà entendu parler d'url rewritting?
Ah oui, c'est pour transformer une url comme /article/1 en /page=article&id=1
Oui c'est bien ça, mais on va utiliser quelque chose de très simple ici, je te le fournis déjà fait et je t'explique.
{"language":"application/json","content":"RewriteEngine On\n\nFallbackResource /index.php","filename":""}
"RewriteEngine On" indique simplement que l'on va utiliser me moteur de réécriture d'url.
"FallBackResource" précise que lorsque l'on ne trouve pas le fichier demandé dans l'url, on redirige vers /index.php.
Attention, cette instruction appelle le fichier index.php à la racine du serveur web, sur un domaine il fonctionnera parfaitement, mais si le site est en local, ou dans un dossier sur le serveur, il faut préciser ce chemin.
Par exemple dans un dossier wamp/www le projet est dans un dossier "mvc" alors il faudra préciser :
FallbackResource /mvc/index.php
Par exemple dans un dossier wamp/www le projet est dans un dossier "mvc" alors il faudra préciser :
FallbackResource /mvc/index.php
Par exemple, si dans le dossier css on a un fichier global.css, en envoyant une requête à l'url http://www.monsite.fr/css/global.css, on aura le fichier en retour. Par contre, si on appelle l'url http://www.monsite.fr/Article/1, le serveur ne trouvera pas le fichier 1 dans le dossier Article et nous redirigera donc vers index.php.
Mais c'est génial !
Le comportement de l'index
Tout à fait. Maintenant on va faire le fichier d'index en question, ça va être très simple, il y a deux choses à faire :
- Créer un autoload qui chargera automatiquement les classes
- Appeler le routeur pour qu'il trouve la route et l’exécute
Je me suis perdu à l'autoload... C'est quoi?
J'ai terminé cette partie