Comment structurer au mieux un site ?

Eléphant du PHP | 55 Messages

11 nov. 2005, 22:42

Hello

Voilà, à force de coder un site, d'ajouter des fonctionnalité, d'en enlever etc, force est de constater que meme en etant organisé, c'est assez compliqué d'avoir un bon suivi de tout les fichiers, fonctions etc...

Perso, je suis trés organisé dans ce que je fais et ce "pseudo-fouttoire" me bloque totalement, surtout quand il s'agit de reprendre un developement arrété quelques semaines voir plus...

Je pensais à separer php et mise en page mais les templates si ils ont l'air efficace me semblent plutot complexe à mettre en place.

Y'aurait t'il une solution ou des astuces pour qu'un developpement soit clair et comprensible par d'autres etc...

Pour ce qui est organisation des fichiers, je gere cela sans problemes (dossiers includes, images, themes etc...) mais c'est plutot coté code etc que ca a vite fait d'etre le "souk"

des conseils, astuces?
separer php et mise en page simplement?
etc. :lol:

Eléphanteau du PHP | 47 Messages

11 nov. 2005, 22:48

un truc tout simple espace bien tes conditions et surtout met des commentaire.
//comme sa
hIm It'S good music

Mammouth du PHP | 1311 Messages

11 nov. 2005, 22:53

Je pensais à separer php et mise en page mais les templates si ils ont l'air efficace me semblent plutot complexe à mettre en place.
il te semble, franchit le pas ca vaux le cout ou alor
tu peut faire une page de traitement avec de fonction et a la fin de celle ci tu inclu la page php(qui sera ton html avec seulement de variable ou de fonction renvoyant des resultat)

tu peut aussi aller du cote du MCV(model view controller) tu peut t'en inspirer
s'en franchir le pas de l'objet :wink:

Mammouth du PHP | 19672 Messages

11 nov. 2005, 22:55

Des conseils en la matière, je ne suis peut-être pas le plus qualifié pour en donner. Mais je vais te dire ce que je suis en train de développer avec le temps: une organisation des fichiers selon leur type et leur destination et un fichier de configuration central qui me permet de gérer les informations de chemins nécessaires..

Je construis en ce moment même une application complète qui va être relativemetnt complexe : voici de quoi à l'air mon fichier index.php :
<?php
session_start();
require_once("./lib/conf.php");
/* Construction de la page complète */
include_once(DATE_JOUR);
include_once(BLOC_ENTETE);
include_once(BLOC_HAUT);
include_once(BLOC_DROITE);
include_once(AFFICHER_PAGE);
include_once(BLOC_PIED);
?>
C'est tout. Je sépare tout et en fait, je commence par inclure un fichier de configuration qui va permettre de définir les différents éléments qui serviront à construire la page selon le lien cliqué. J'utilise des constantes et mon fichier de conf est trié en fonction du type de fichier : template, fonctions ou classes, formulaire etc... : si je change un fichier de place, je n'ai pas 200 lien à modifier, juste une ligne du fichier de configuration.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 55 Messages

11 nov. 2005, 23:46

tu peut faire une page de traitement avec de fonction et a la fin de celle ci tu inclu la page php(qui sera ton html avec seulement de variable ou de fonction renvoyant des resultat)
Je pensais partir dans ce sens, gerer les donnees dans un fichier et les afficher dans un autre.
par exemple, pour afficher des news:
un fichier trait_news.php qui fait la requete, qui liste les donnees etc
un fichiers news.php qui les affichent
Citation:
Je pensais à separer php et mise en page mais les templates si ils ont l'air efficace me semblent plutot complexe à mettre en place.

il te semble, franchit le pas ca vaux le cout ou alor
Je pense pas maitriser suffisament pour me permettre de rajouter cà dans mon code :oops:

Eléphant du PHP | 55 Messages

12 nov. 2005, 16:21

On m'a dit que pour separer traitement et affichage, on peut passé par les buffer.

Cette solution serait elle efficace?

exemple:
Le fonction de bufferisation
    function template($tpl, $var)
    {
	ob_start();
	include($tpl);
	$temp = ob_get_contents();
	ob_end_clean();

	return($temp);
    }
Le contenu du fichier .tpl
<body>
	<table width="600" border="0">
		<tr bgcolor="#FFFF99">
			<td><font face="Verdana" size="2" color="#000000">Id news</font></td>
			<td><font face="Verdana" size="2" color="#000000">Titre</font></td>
			<td><font face="Verdana" size="2" color="#000000">Contenu</font></td>
			<td><font face="Verdana" size="2" color="#000000">Date</font></td>
		</tr>
		<tr bgcolor="#888888">
			<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[0]?></font></td>
			<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[1]?></font></td>
			<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[2]?></font></td>
			<td><font face="Verdana" size="2" color="#FFFFFF"><?=$var[3]?></font></td>
		</tr>
	</table>
</body>
Le fichier php
	$reponse = mysql_query('SELECT id, titre, contenu, timestamp FROM news ORDER BY id') or die (mysql_error());
	$donnees=mysql_fetch_array($reponse);

	echo template("templates/template.tpl", $donnees);
Donc coté php, on fait la requete et crée un array avec les donnees
Si je comprend bien, le buffer regroupe le contenu du fichier tpl et les données du traitement php afin d'avoir l'ensemble et les envoie

Efficace? Simple? ou la 1ere approche est "foireuse"?