Bonjour,
Je viens d'attaquer le développement du module PHP de mon générateur de sites web et déjà quelques questions se posent par rapport à l'environnement Java / Servlet que je pratique plus couramment.
Après avoir parcouru un certain nombre d'articles (notamment php.net) et visionné quelques vidéos traitant du sujet, il me semble avoir compris que pour la mise en place d'un site PHP, ex nihilo, la pratique la plus courante consiste à :
a) créer un "contrôleur front end" (ou "super contrôleur"), la plupart du temps dénommé index.php, recevant les URL demandées par l'utilisateur et servant de routeur
b) créer N contrôleurs dédiés, correspondant chacun à une URL et fournissant en retour le contenu correspondant
c) mettre en place sur le serveur HTTP une redirection permanente, au niveau du fichier .htaccess, afin que toutes les requêtes entrantes soient systématiquement envoyées au routeur précité.
Est-ce exact jusqu'ici ?
Si c'est le cas, je vois déjà une première différence de taille avec les servlets Java / serveur Tomcat (ou autres) dans la mesure où une servlet est, structurellement, un routeur qui reçoit toutes les requêtes reçues par le serveur.
Il n'y a donc aucune configuration particulière à faire au niveau du serveur, autre que la déclaration de la servlet correspondant au site web. Bien qu'il soit toujours possible d'en déclarer plusieurs, avec des URL différentes, ce cas de figure n'est pas d'usage courant pour un même site.
Dès lors, et avant de développer en détail le module PHP du générateur, je voudrais m'assurer que :
a) le principe du contrôleur front end + N contrôleurs dédiés + redirection serveur HTTP est pertinent
b) savoir si ce principe est le plus utilisé (notamment en MVC) ou s'il existe d'autres approches
c) si, comme je le crains, la redirection serveur est tributaire du type dudit serveur et doit donc être adaptée en conséquence
Je précise que pour l'instant, il s'agit de générer un site en PHP "pur", c'est à dire hors framework tel que Symfony ou autre. L'intégration de ces frameworks dans le générateur sera réalisée en suivant, une fois les bases posées.
A priori, et pour conserver sa généricité au générateur web, je pense intégrer la possibilité de basculer entre le mode décrit ci-dessus et un mode sans contrôleurs dédiés via une propriété située au niveau des options projet.
Si j'ai bien compris la problématique en question, ceci devrait permettre de créer des fichiers PHP correspondant à chaque URL, c'est à dire sans contrôleur et sans redirection serveur, supprimant ainsi la dépendance par rapport à un environnement extérieur qu'on ne contrôle bien souvent pas (cf. billets récurants sur ce forum à propos des configurations .htaccess) et des typologies de serveurs qui varient (bien que Apache soit un standard bien installé).
Merci de m'indiquer si je fais erreur dans l'approche ci-dessus et sur quels points, afin que je puisse adapter mon code en conséquence.
Je viens d'attaquer le développement du module PHP de mon générateur de sites web et déjà quelques questions se posent par rapport à l'environnement Java / Servlet que je pratique plus couramment.
Après avoir parcouru un certain nombre d'articles (notamment php.net) et visionné quelques vidéos traitant du sujet, il me semble avoir compris que pour la mise en place d'un site PHP, ex nihilo, la pratique la plus courante consiste à :
a) créer un "contrôleur front end" (ou "super contrôleur"), la plupart du temps dénommé index.php, recevant les URL demandées par l'utilisateur et servant de routeur
b) créer N contrôleurs dédiés, correspondant chacun à une URL et fournissant en retour le contenu correspondant
c) mettre en place sur le serveur HTTP une redirection permanente, au niveau du fichier .htaccess, afin que toutes les requêtes entrantes soient systématiquement envoyées au routeur précité.
Est-ce exact jusqu'ici ?
Si c'est le cas, je vois déjà une première différence de taille avec les servlets Java / serveur Tomcat (ou autres) dans la mesure où une servlet est, structurellement, un routeur qui reçoit toutes les requêtes reçues par le serveur.
Il n'y a donc aucune configuration particulière à faire au niveau du serveur, autre que la déclaration de la servlet correspondant au site web. Bien qu'il soit toujours possible d'en déclarer plusieurs, avec des URL différentes, ce cas de figure n'est pas d'usage courant pour un même site.
Dès lors, et avant de développer en détail le module PHP du générateur, je voudrais m'assurer que :
a) le principe du contrôleur front end + N contrôleurs dédiés + redirection serveur HTTP est pertinent
b) savoir si ce principe est le plus utilisé (notamment en MVC) ou s'il existe d'autres approches
c) si, comme je le crains, la redirection serveur est tributaire du type dudit serveur et doit donc être adaptée en conséquence
Je précise que pour l'instant, il s'agit de générer un site en PHP "pur", c'est à dire hors framework tel que Symfony ou autre. L'intégration de ces frameworks dans le générateur sera réalisée en suivant, une fois les bases posées.
A priori, et pour conserver sa généricité au générateur web, je pense intégrer la possibilité de basculer entre le mode décrit ci-dessus et un mode sans contrôleurs dédiés via une propriété située au niveau des options projet.
Si j'ai bien compris la problématique en question, ceci devrait permettre de créer des fichiers PHP correspondant à chaque URL, c'est à dire sans contrôleur et sans redirection serveur, supprimant ainsi la dépendance par rapport à un environnement extérieur qu'on ne contrôle bien souvent pas (cf. billets récurants sur ce forum à propos des configurations .htaccess) et des typologies de serveurs qui varient (bien que Apache soit un standard bien installé).
Merci de m'indiquer si je fais erreur dans l'approche ci-dessus et sur quels points, afin que je puisse adapter mon code en conséquence.