Bonjour les accros du web !
Aujourd'hui je viens de publier sur GitHub un mini projet de router pour PHP.
Un router c'est quoi ?
Tout simplement, c'est un script PHP qui récupère l'URL tapée par l'utilisateur, et qui lance des actions suivant celle-ci.
Mais, c'est quoi la différence avec ce que je fais ?
Plutôt que de travailler sur les pages 'statiques', un router va travailler sur l'index du site. Il va faire toutes les actions nécessaires depuis l'index; cela permet d'avoir des URL optimisées pour le référencement SEO (en gros, avoir des URL sexy !)
Un petit exemple pour mieux comprendre :
Mettons que vous ayez un blog et que vous vouliez lister tous les articles. Pour avoir une URL sexy, il faudrait écrire : "
http://mon-site-sexy.xyz/blog/articles/tous". Donc la, il faut créer un dossier 'blog', puis 'articles' puis 'tous' puis 'index.php' pour les traitements. Jusque là ça va, mais maintenant, vous voulez que l'URL pour voir tous les articles soit : "
http://mon-site-sexy.xyz/blog/mes-articles/tous-le(...) Alors là bonne chance ! Il faudrait recréer toute l'arboressance de fichier et renommer les fichiers... La galère ! Le principe d'un routeur, c'est qu'on lui dit si tu trouve ce type d'URL, alors tu fait ceci.
Un petit exemple de ton truc ?
Avec mon système assez simple et léger, il suffit simplement de définir les chemins possibles (routes) et les actions que vous voulez effectuer si jamais l'utilsateur met la bonne URL.
Exemple : Router::get('/posts/view/', post@listAll); permet d'enregistrer une route. Si jamais l'utilisateur va sur "
http://mon-site-sexy.xyz/posts/view/", alors PHP chargera la classe postController qui se situe dans le dossier controller et appelera la function listAll() de cette classe (allez voir sur GitHub pour plus d'informations).
Maintenant, si vous voulez voir tous les articles sur la page "
http://mon-site-sexy.xyz/mes-supers-articles/tous/(...) il suffit de remplacer Router::get('/posts/view/', post@listAll); par Router::get('/mes-supers-articles/tous/', post@listAll); !
Okay ! Maintenant on code !
Pour les sources, allez voir sur GitHub :
https://github.com/Pierre-JOU/SimpleRouter
En fait, j'ai rien compris ;-C J'y arrive pas ! Aidez moi !
Pas de problème ! Ouvre une issue sur GitHub ou contactez moi par mail : help@dev.amerik.fr
Bon code à tous et n'hésitez pas en cas de problème !
#PierreJ