Structure d'un site en php

Moof
WRInaute discret
WRInaute discret
 
Messages: 206
Inscription: 22 Mar 2003

Structure d'un site en php

Message le Mer Jan 10, 2007 6:48

Salut la compagnie,

Je me lance dans un nouveau site (parce que j'aime bien et ça m'amuse). Mais cette fois-ci, j'ai envie de le faire proprement. Avec un système de templates, conçu pour pouvoir être multilingue par la suite, ...

J'aimerais savoir comment vous vous y prenez pour structurer vos sites ?
Perso, je pensais créer :
- un dossier fonctions regroupant tout plein de fonctions php pratiques.
- un dossier class contenant les différentes classes que j'utiliserai.
- un dossier templates
- un dossier styles pour les css.
- un dossier lang ? pour les fichiers langues ?
- un dossier include contenant les pages php incluses dans toutes les pages de mon site.

Deuxième question : est-ce que vous codez tout à la main, ou utilisez-vous des classes php trouvées sur internet ou dans des scripts de forum par exemple (je pense par exemples aux classes pour gérer les connexions mysql, les classes de sessions, de templates, ...) ?

Merci pour vos conseils !


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Message le Mer Jan 10, 2007 11:20

Très bonne façon de faire je pense.
Pour ce qui est des class, parfois ça ne sert a rien de se fatiguer lorsque l'on trouve des petits bijoux de programmation sur le net.

jexl
WRInaute discret
WRInaute discret
 
Messages: 224
Inscription: 23 Juin 2005

Message le Mer Jan 10, 2007 11:23

Hello,

De mon coté je fais tout comme tu as dis, sauf que mes classes, je les mets dans mes dossiers. Exemple si je créé un système de petites annonces, ma class annonce se trouvera dans mon dossier annonce, ca me simplifie la tache quand ensuite je veux les réutiliser dans un autre site.

Et puis je n'utilise plus de template. Ca me rajoute une couche supplémentaire de boulot qui à mon gout n'en vaut pas la peine. De plus, conçernant les templates, il ne faut pas oublier que ca charge de nouvelles classes, de nouvelles fonctions.... et de ce fait augmente la charge serveur.

Oui je code tout à la main. Ca me permet de pouvoir intervenir rapidement, et sans perdre du temps à comprendre le code qu'un autre aura fait.

Pour finir, essaies de faire en sorte d'organiser ton boulot pour être le plus à l'aise possible.
Il n'y à pas de recettes qui s'adapte à tous les codeurs.

Bon courage, et amuses toi bien.

Moof
WRInaute discret
WRInaute discret
 
Messages: 206
Inscription: 22 Mar 2003

Message le Mer Jan 10, 2007 12:34

Audiofeeline a écrit:Pour ce qui est des class, parfois ça ne sert a rien de se fatiguer lorsque l'on trouve des petits bijoux de programmation sur le net.


Je suis d'accord avec toi.

Quels sont les petits bijoux dont tu parles ?

jexl a écrit:Et puis je n'utilise plus de template. Ca me rajoute une couche supplémentaire de boulot qui à mon gout n'en vaut pas la peine. De plus, concernant les templates, il ne faut pas oublier que ca charge de nouvelles classes, de nouvelles fonctions.... et de ce fait augmente la charge serveur.


C'est vrai que les templates représentent une charge supplémentaires, mais les pages php de mes vieux sites ressemblent souvent à un truc du genre :

Code: Tout sélectionner
<?php
...
?>

de l'html

<?php
...
?>

de l'html avec parfois des <?php echo "blablabla" ?>

ce qui est vraiment très moche, et surtout illisible et insupportable lorsque je souhaite modifier l'apparence de la page.

De plus, les templates sont bien pratiques si on souhaite faire du multilingue, non ?

jexl
WRInaute discret
WRInaute discret
 
Messages: 224
Inscription: 23 Juin 2005

Message le Mer Jan 10, 2007 12:49

Moof a écrit:
C'est vrai que les templates représentent une charge supplémentaires, mais les pages php de mes vieux sites ressemblent souvent à un truc du genre :

Code: Tout sélectionner
<?php
...
?>

de l'html

<?php
...
?>

de l'html avec parfois des <?php echo "blablabla" ?>

ce qui est vraiment très moche, et surtout illisible et insupportable lorsque je souhaite modifier l'apparence de la page.

De plus, les templates sont bien pratiques si on souhaite faire du multilingue, non ?


C'est vrai que des fois ca fait un peu fouilli de mélnager du html et du php.
Pour les sites multilangue, ce que je fais, c'est un tableau php avec x traduction, et ensuite j'affiche. c'est pas forcément plus long que d'qvoir deux templates à modifier.
ex :
Code: Tout sélectionner
$aTexte['titre']['fr'] = 'Mon titre FR';
$aTexte['titre']['en'] = 'My Title EN';
$aTexte['commentaire']['fr'] = 'Mon commentaireFR';
$aTexte['commentaire']['en'] = 'My comment EN';
....
et ensuite j'affiche

echo $aTexte['titre'][$_SESSION['lang']];

Je trouve cette technique très pratique.


guicara
WRInaute passionné
WRInaute passionné
 
Messages: 2472
Inscription: 2 Fév 2006

Message le Mer Jan 10, 2007 13:15

Moof a écrit:
C'est vrai que les templates représentent une charge supplémentaires, mais les pages php de mes vieux sites ressemblent souvent à un truc du genre :

Code: Tout sélectionner
<?php
...
?>

de l'html

<?php
...
?>

de l'html avec parfois des <?php echo "blablabla" ?>

ce qui est vraiment très moche, et surtout illisible et insupportable lorsque je souhaite modifier l'apparence de la page.


C'est ce que j'ai, je m'en sort très bien,
comment veux tu faire ???
le tamplate est quand même lourd, non ??


mego
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 331
Inscription: 7 Mar 2006

Message le Mer Jan 10, 2007 13:31

Pour ma part c'est BDD et j'utilise en parallèle une fonction traduction qui cherche une partie de mon contenu dans un fichier texte histoire de ne pas saturer la base.

Moof
WRInaute discret
WRInaute discret
 
Messages: 206
Inscription: 22 Mar 2003

Message le Mer Jan 10, 2007 13:50

guicara a écrit:
Moof a écrit:
C'est vrai que les templates représentent une charge supplémentaires, mais les pages php de mes vieux sites ressemblent souvent à un truc du genre :

Code: Tout sélectionner
<?php
...
?>

de l'html

<?php
...
?>

de l'html avec parfois des <?php echo "blablabla" ?>

ce qui est vraiment très moche, et surtout illisible et insupportable lorsque je souhaite modifier l'apparence de la page.


C'est ce que j'ai, je m'en sort très bien,
comment veux tu faire ???
le tamplate est quand même lourd, non ??

Imaginons que tu veuilles modifier ta page html, il faut aller modifier tous les bouts d'html intercalés entre les bouts de code php, en faisant attention à ne pas toucher aux divers bouts de php inclus dans l'html :)

Pas pratique non ?

Avec des templates, tu remanies ta page html comme tu veux sans te soucier du code php.


C'est rigolo, je vois qu'en fait personne n'est d'accord ou n'applique les même techniques :lol:


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Mer Jan 10, 2007 16:13

Template + utilisation de couche d'abstration pour la BDD quasi obligatoire pour faire un site évolutif facilement selon moi. (+ un système de cahe ça le fait aussi).

Pour les classes y'a du très bon du coté de PEAR (pour tout ce qui est moteur de template, classe d'abstration de BDD (quoi que en php 5.1 ça existe enfin), classe pour les formulaires (quick_form), classe pour les caches, ...).

Sinon pour les classes y'a __autoload() qui est à regarder de prêt, ça évite bien des soucis (ça permet de charger une classe demandée automatiquement sans avoir à à faire des include partout).

Moof
WRInaute discret
WRInaute discret
 
Messages: 206
Inscription: 22 Mar 2003

Message le Jeu Jan 11, 2007 5:44

Bacteries a écrit:Template + utilisation de couche d'abstration pour la BDD quasi obligatoire pour faire un site évolutif facilement selon moi


Qu'appelles-tu "couche d'abstraction" ?


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Jeu Jan 11, 2007 9:39

Une classe par exemple où tu ne fait pas appel explicitement à mysql, postgre ou autre. Mais via une classe qui selon ta bdd va faire en sorte d'utiliser les bonnes fonctions, comme ça tu changes de type de BDD en 2 minutes au lieu de te prendre la tête à tout changer.

jexl
WRInaute discret
WRInaute discret
 
Messages: 224
Inscription: 23 Juin 2005

Message le Jeu Jan 11, 2007 10:03

Perso, je ne suis vraiment pas pour les couches d'abstractions.
Actuellement, je suis contraint de bosser avec PEAR, et ca fout la pagaille plus que cela nous rend service. Comme les moteurs de template, ca charge à nouveau des classes qui prennent de la ressource pour rien.

Et en plus Ca ne nous sert pas en cas de changement de base.
Actuellement, on fait nos dev avec SQL Server, et il est question de migrer sur MySql. Théoriquement, grace à PEAR, ca devrait se faire tout seul. Et ben non, nous venons de faire des tests, ete nous sommes obligé de repredrendre nos requetes à la main.

Donc, pour moi, je préfère de très loin me passer des couches d'abstractions. Et puis pour être honnète, quand bien même ca marcherait pour les migrations, c'est pas tous les matins que l'on change de système pour les base de données.


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Jeu Jan 11, 2007 10:19

Bah bien fait ça passe sans problème...

Dans ses requêtes après il faut éviter les spécifités d'un SGBD voir utiliser des fonctions équivalente (genre en MySQL on a LIMIT qui n'existe pas ailleur, la plupart des classes d'abstraction permettent une simulation de ce comportement sur d'autres SGBD).

Et les template oui ça va prendre un peu plus de ressource (tu utilies lequel?) mais là impossible de nier la flexibilité apporté.

Suffit de regarder les forums (tous en fait, enfin tous ceux que j'ai pu tester comme phpBB, invision, punBB) ou encore des choses comme Dotclear ont un système de template et d'abstration de BDD.


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Jeu Jan 11, 2007 10:53

>> un dossier include contenant les pages php incluses dans toutes les pages de mon site.

il serait mieux de découper par modules

moi j'ai :
modules/module1
modules/module2
modules/module3

chaque module à son propre header.php et fonctions.php chargé avant envoi de données au navigateur. de ce fait, chaque module peut etre déplacé d un site à un autre sans rechercher les focntions et procédures liées

jexl
WRInaute discret
WRInaute discret
 
Messages: 224
Inscription: 23 Juin 2005

Message le Jeu Jan 11, 2007 11:07

Bacteries a écrit:Bah bien fait ça passe sans problème...


Tout les dev ont été fait proprement. En revanche la version utilisée pour PEAR date un peu, c'est la raison pour laquelle on est obligé de tout reprendre à la main.

Bacteries a écrit:Et les template oui ça va prendre un peu plus de ressource (tu utilies lequel?) mais là impossible de nier la flexibilité apporté.

j'utilise SMARTY

Bacteries a écrit:Suffit de regarder les forums (tous en fait, enfin tous ceux que j'ai pu tester comme phpBB, invision, punBB) ou encore des choses comme Dotclear ont un système de template et d'abstration de BDD.

A mon avis, c'est dans ces cas, ou le template à vraiment utile. ces forums sont libres et les utilisateurs ont des niveaux de connaissances différents. Cela permet aux gens qui n'ont pas beaucoup de savoir en programmation de pouvoir quand même modifier l'aspect de leurs forum ou autres CMS.

La raison pour laquelle les templates ne branchent pas, c'est qu'ils font, in fine, exactement la même chose que moi avec mon code PHP / HTML. Sauf qu'on ne le voit pas. Ce qui veut dire que je ne maitrise pas tout ce qui est fait pour obtenir mon resultat.

Structure d'un site en php

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités