Index.php

Petit nouveau ! | 7 Messages

24 janv. 2006, 15:14

Bonjour,

Suite à différentes recherches et tests, je suis tombé sur l'idée suivante : réduire l'arborescence de mon site à une seule page : index.php. Avec une règle d'url rewriting, je peux en effet renvoyer toutes mes pages sur une seule et même. Cela facilite grandement les évolutions et les mises à jour.

Seulement, je me demande si cela ne va pas surcharger mon serveur et mes connexions à la base de données. Est-ce que le fait de tout centraliser peut poser des soucis sur le serveur.

Merci d'avance pour vos éclairages.

Mammouth du PHP | 19672 Messages

24 janv. 2006, 19:08

On appelle ça les "pseudo-frames" et c'est très utilisé. Il y a un tuto intéressant sur le sujet sur phpdebutant

Il n'y a pas vraiment de raison pour que ça surcharge davantage le serveur : il n'y aura pas vraiment plus de requête qu'avec des pages séparées. Tout ce qu'il y aura en plus, ce sont les includes qui varieront selon le lien cliqué.

Personnellement, j'utilise cette méthode en permanence et ça simplifie beaucoup mon code.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 24 Messages

26 janv. 2006, 14:35

(...) réduire l'arborescence de mon site à une seule page : index.php. Avec une règle d'url rewriting, je peux en effet renvoyer toutes mes pages sur une seule et même. (...) Seulement, je me demande si cela ne va pas surcharger mon serveur et mes connexions à la base de données. Est-ce que le fait de tout centraliser peut poser des soucis sur le serveur.
Au niveau du déroulement de ton algo PHP, rien ne va faire évoluer la charge si ce n'est le changement d'architecture (include depuis un controleur frontal), chose quasi-négligeable.

En revanche, si tu as beaucoup de connexions HTTP, la règle de réécriture apache (basée sur de l'expression régulière) peut consommer + ou - CPU à la longue (variable en fonction de la complexité de la règle). D'autre part, si tu utilises une redirection via proxy (tag [P]) il te faudra utiliser le mod_proxy et donc faire attention aux problèmes de sécurité que cela peut engendrer.

Personnellement, j'aime bien le système de redirection par 404 : seul un fichier "index.php" est accessible dans le DocumentRoot et le serveur HTTP est configuré pour rediriger les erreurs 404 vers ce fichier. Ainsi, toute URL autre que l'URL de base fait appel à ton fichier.

Ce système est rapide, il ne faut pas oublier de redéfinir le code d'erreur pour qu'il ne soit plus une erreur et de ce fait accepté par les navigateurs et robots. Tu peux en prime faire du cache en générant tes fichiers statiques et lier ton mécanisme qui décide quelle page afficher à un moteur de recherche [ exemple ].
Besoin de repères pour une utilisation PRO de PHP ?
Best practices PHP 5 (ouvrage en français !)