05-02-2008, 11:42 PM
Salut,
Le "s", c'est pour signifier string : c'est une règle de notation (notation polonaise), que l'on apprécie ou pas (je sais qu'il y avait eu une controverse sur le forum à ce sujet à l'époque). J'avais appris le truc ici et personnellement, je trouve ça plus clair (j'avais pris l'habitude de typer strictement le nom de mes variables en Flash pour accélérer la saisie du code et j'ai gardé le truc pour php quand j'ai découvert la technique). Avec d'autres types de variables, ça donne :
- $iVariable => integer
- $bVariable => boolean
- $aVariable => array
Concernant le code, je vérifie que la variable $_GET['page'] n'est pas vide (pour être plus rigoureux, je devrais même lancer un isset comme LexLxUs pour tester son existence).
Ensuite, je vérifie que le fichier existe sur le serveur (avec file_exists) et que ce n'est pas un fichier de config ou un fichier qui contiendrait des points ou des slashs (avec preg_match) pour éviter qu'on me file un fichier qui n'est pas le mien (j'avais choppé le script sur le site du zéro).
Si le fichier n'existe pas, je renvoie vers une erreur 404 et si la variable est vide, je redirige vers la page d'accueil.
Enfin, j'intègre ma page :
Mon site est organisé de la façon suivante (3 répertoires de base et l'index qui contient que code ci-dessus):
- traitement
- affichage
- données
- index.php
Comme je sépare entièrement le traitement de l'affichage, les fichiers php contenus dans le dossier "traitement" (un pour chaque page appelée) ne renvoient rien vers le navigateur (aucun echo, tout ce qui sera affiché est stocké dans des variables, par exemple : $sTitre = "Mon titre de page". Chacun de ces fichiers renvoie aussi la page de template - l'affichage des données - qui sera utilisée (ici, c'est la variable $sPageHtml).
Quand le traitement est terminé, l'index inclue le fichier template correspondant à la page appelée :
- J'inclue le header
- J'inclue le corps de page défini par $sPageHtml (ici, la variable $sTemplatePath = "affichage/basic_design")
- J'inclue le footer
Juste une précision : mes templates sont de simple pages html renommées .tpl pour ne pas les confondre avec des pages indépendantes de fichiers php. Ces pages affichent les variables renvoyées par mon fichier de traitement avec de simples echo en php (qui me sert donc de moteur de template). Ex :
<title><?php echo $sTitre; ?></title>
L'intérêt est de séparer clairement traitement et affichage : je peux changer de design à volonté ou mettre en place un design alternatif sans toucher à mes fichiers php...
Le "s", c'est pour signifier string : c'est une règle de notation (notation polonaise), que l'on apprécie ou pas (je sais qu'il y avait eu une controverse sur le forum à ce sujet à l'époque). J'avais appris le truc ici et personnellement, je trouve ça plus clair (j'avais pris l'habitude de typer strictement le nom de mes variables en Flash pour accélérer la saisie du code et j'ai gardé le truc pour php quand j'ai découvert la technique). Avec d'autres types de variables, ça donne :
- $iVariable => integer
- $bVariable => boolean
- $aVariable => array
Concernant le code, je vérifie que la variable $_GET['page'] n'est pas vide (pour être plus rigoureux, je devrais même lancer un isset comme LexLxUs pour tester son existence).
Ensuite, je vérifie que le fichier existe sur le serveur (avec file_exists) et que ce n'est pas un fichier de config ou un fichier qui contiendrait des points ou des slashs (avec preg_match) pour éviter qu'on me file un fichier qui n'est pas le mien (j'avais choppé le script sur le site du zéro).
Si le fichier n'existe pas, je renvoie vers une erreur 404 et si la variable est vide, je redirige vers la page d'accueil.
Enfin, j'intègre ma page :
Mon site est organisé de la façon suivante (3 répertoires de base et l'index qui contient que code ci-dessus):
- traitement
- affichage
- données
- index.php
Comme je sépare entièrement le traitement de l'affichage, les fichiers php contenus dans le dossier "traitement" (un pour chaque page appelée) ne renvoient rien vers le navigateur (aucun echo, tout ce qui sera affiché est stocké dans des variables, par exemple : $sTitre = "Mon titre de page". Chacun de ces fichiers renvoie aussi la page de template - l'affichage des données - qui sera utilisée (ici, c'est la variable $sPageHtml).
Quand le traitement est terminé, l'index inclue le fichier template correspondant à la page appelée :
- J'inclue le header
- J'inclue le corps de page défini par $sPageHtml (ici, la variable $sTemplatePath = "affichage/basic_design")
- J'inclue le footer
Juste une précision : mes templates sont de simple pages html renommées .tpl pour ne pas les confondre avec des pages indépendantes de fichiers php. Ces pages affichent les variables renvoyées par mon fichier de traitement avec de simples echo en php (qui me sert donc de moteur de template). Ex :
<title><?php echo $sTitre; ?></title>
L'intérêt est de séparer clairement traitement et affichage : je peux changer de design à volonté ou mettre en place un design alternatif sans toucher à mes fichiers php...