Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1505 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Besoin de conseil pour structurer mon code

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Besoin de conseil pour structurer mon code

n°1059591
latruffe
Bdovore
Posté le 25-04-2005 à 12:11:55  profilanswer
 

Salut à tous,
 
j'aimerai avoir quelques conseils sur la manière de coder en php.
 
Je m'explique : je code actuellement en utilisant un système de template (pbplib). Cela me permet d'avoir un code vraiment lisible et clair, complètement séparé du code html.
 
En gros, la structure de mes pages est toujours sensiblement la même :
 

Code :
  1. Demarrage de session
  2. Include des fonctions / librairies
  3. Recup des variables de session
  4. Selection des différents templates à utiliser
  5. Queries sur la base
  6. Remplisage des templates + affichage


 
Le problème que je rencontre, c'est que cette manière de coder n'est pas très souple si je désire appliquer des modifications à l'ensemble du site. En effet, une certaine partie du code est hardcodé dans chaque page (par exemple pour afficher la fenêtre de login) et par conséquent, si je désire modifier ce code, il faut que je modifie toutes les pages (le cauchemard).
 
Je cherche donc à savoir quelle est la meilleure solution pour avoir plus de souplesse.
 
Je pense que j'ai deux solutions :
 
1. faire appel à des fichiers include que je peux insérer dans mon code :
    par exemple, je colle un include ("insert.login.php" ) et si je désire faire un changement, je n'ai qu'à modifier ce fichier.
 
2. faire appel à des fonctions
 
Le seul a-priori que j'ai sur les fonctions, c'est le passage de variable. Je voudrais que cela soit transparent (d'où mon penchant vers l'include). Normalement, le nombre de variables doit être assez limité mais difficle de prévoir tous les cas possible. En plus, étant donné que je travaille systématiquement avec un objet template, cela signifie qu'il faudrait le passer à chaque fois.
 
Donc, ne sachant que choisir, je me tourne vers vous.
 
Quelle est la meilleure methode à suivre pour avoir un code souple ? Est-ce que l'abus d'include est dangereux pour la santé ? bref vos avis sont les bienvenus.


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
mood
Publicité
Posté le 25-04-2005 à 12:11:55  profilanswer
 

n°1059618
KangOl
Profil : pointeur
Posté le 25-04-2005 à 12:38:23  profilanswer
 

pour un code souple...
des includes + des classes


---------------
Nos estans firs di nosse pitite patreye...
n°1059644
latruffe
Bdovore
Posté le 25-04-2005 à 12:58:44  profilanswer
 

En terme de perfs, l'include ne pose pas de problème ?


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°1059645
jagstang
Pa Capona ಠ_ಠ
Posté le 25-04-2005 à 13:00:09  profilanswer
 

perfs... c'est du langage interprété hein...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1059646
latruffe
Bdovore
Posté le 25-04-2005 à 13:00:58  profilanswer
 

oui, c'est vrai :D


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°1059708
cerel
Posté le 25-04-2005 à 14:04:41  profilanswer
 

Je vais t'expliquer un peu comment je fais. Avec un pote on est en train de coder un cms, voila comment ce dernier se decompose :
 
1) Tout le "travail" se fait dans "index.php". Ce fichier la se charge d'inclure les fichiers minimaux pour le cms.
Il charge le "theme" puis la template (definie par le theme) qui correspond a la structure globale du site. Il cree ensuite un classe menu, ainsi qu'une classe session.
Ensuite, il recupere un id passe via get, puis va cherche dans la base la page correspondante a cet id. Esuite il inclus cette page.
 
2) La page incluse peut faire ce qu'elle veut, elle peut ajouter des elements au menu en accedant a l'instance cree par index. Elle peut acceder aux var de sessions via l'instance cree par l'index.
L'unique chose que doit comporter ce fichier, est une fonction "returnContent" qui doit retourner une String qui contient tout l'xhtml du "module". Ce fichier peut egalement acceder a la BDD via une classe instancie par l'index.
 
3) Une fois que ce module a renvoye la string, le fichier index va metre cette string a l'endroit specifie par la template. Le fichier va egalement recuperer la css associe au theme pour le metre dans la template. Sans oublier le menu, qui n'est "construit" qu'a la fin du processus (comme ca les pages peuvent ajouter des entrees aux menus).
 
4) Une fois que la template de base a ete "completee" par les differents elements, elle est envoyee au visiteur. Et ce n'est que dans ce dernier point que la moindre information est envoyee au visiteur. Donc il n'y a pas de probleme a envoyer des headers dans les modules :p
 
 
Voila donc en gros comment ca se passe dans notre cms. Il faut ajouter qu'il y a 2-3 classes "helpers" (genre classe pour creer des formulaires).
Il faut dire que le cms n'est pas OO. Ce que je veux dire, c'est que les "modules" sont de simple fichiers (ce ne sont pas des classes qui doivent heriter d'un certain objet). Et on n'utilise les classe que quand cela est utile. Genre pour le formulaire. Dans ce cas la c'est utile, car c'est un objet qui ne peut pas etre creer en un appel a une fonction.
Pour les sessions, ces dernieres possedent des proprietes (genre la personne est-elle loguee, id, heure de conn).
 
Un des avantages a avoir un fichier qui inclus les modules, au lieu d'avoir les modules qui incluent les fichiers necessaires, et que tu controles le "point d'entree" de ton site. En gros, il faut toujours passer par index.php + un id. Si qqn essaye d'acceder directement a un fichier php cela ne fonctionne pas (aucun affichage).
 
J'ai prefere opter pour cette methode, car je trouve qu'elle permet un plus grand controle.
En effet, dans l'autre methode qui consiste a creer des pages "independantes" qui se chargent elles d'inclure les fichiers necessaires, je trouve qu'il n'y a pas bcp de controle de la part des fichier inclus.


Message édité par cerel le 25-04-2005 à 14:06:30
n°1059757
latruffe
Bdovore
Posté le 25-04-2005 à 14:28:54  profilanswer
 

Merci de ton intervention, c'est très instructif :jap:
 
J'aime le concept de la classe menu (j'avais pensé à qq chose comme ça, sans pour autant aller jusqu'à une classe mais au final, pourquoi pas).
 
Idem pour le système des css.
 
Par contre, je pense que je ne vais pas retenir l'idée du fichier index unique (même si je dois reconnaitre qu'en terme de sécurité c'est sans doute un plus).  
 
Mais vraiment, merci pour tes conseils, ça commence à se préciser dans mon esprit :)


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Besoin de conseil pour structurer mon code

 

Sujets relatifs
recherche info sur code barre[PHP] Ajouter des boutons de balises PHPBB à un formulaire ?
Php avec glob / fopenbesoin de codes
[PHP/XML] Afficher en fonction de sa valeur classer ? [maj]Adresse Mac par PHP
Quel centre de formation PHP/MySQL?besoin urgent d'une base de donnée Access
[CSS] [RESOLUT] Pb d'affichage d'un MAJ dans un block CSS par du PHPPHP Array_unshit Tableau associatif
Plus de sujets relatifs à : [PHP] Besoin de conseil pour structurer mon code


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR