Aller au menu - Aller au contenu
Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !

Structure pseudo-mvc devenue illisible

Trois problème avec ma structure

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Offre d'emploi : Développeur Web PHP/Drupal (H/F)

Page 1 
Auteur Message
2 visiteurs sur ce sujet (2 anonymes)
Page 1 
Hors ligne jb1993 # Posté le 22/11/2009 à 19:56:53

Bonsoir,
j'aimerais de l'aide pour trois petits problèmes que je rencontre avec ma structure de code. J'utilise une technique MVC (sans le modèle), et voulant rendre la tâche me plus automatique possible, j'ai placé un nombre impressionnant de code dans l'index principal, gérant tout le site. Le problème ? Le code est devenue rapidement illisible et très lent pour ce qu'il fait. J'aimerais donc avoir de l'aide pour l'optimiser et le rendre plus compréhensible.
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
	// Déclaration des variables d'erreurs
	$missing_controller = false;
	$missing_view = false;
	
	// Déclaration de la variable page_title
	$page_title = '';
	$layout = 'default';
	
	// Inclusion des fichiers de base
	require '../config/define.php';
	require config . 'database.php';
	require config . 'load-class.php';

	// Connexion à mysql
	$mysql = mysql_connect($database['hote'], $database['login'], $database['password']);
	mysql_select_db($database['bdd']);

	// Vérification de la variable $_GET['url']
	if($_GET['url'] == 'app/webroot/')
		$url = 'news/index';
	else
		$url = $_GET['url'];
	
	// On découpe la variable $url en 3 partie
	$url = explode('/', $url, 3);
	
	if(count($url) === 1)
	{
		list($controller) = $url;
		$views = 'index';
		$parametre = '';
	}
	else if(count($url) === 2)
	{
		list($controller, $views) = $url;
		$parametre = '';
	}
	else
		list($controller, $views, $parametre) = $url;
		
	// Déclaration de toute les classes part défaut
	$sql = import('sql-generator', $controller);
	
	// On découpe ensuite $parametre pour avoir tout les paramètres différents
	$parametre = explode('/', $parametre);
	
	// Si le controller existe, on l'inclue
	if(file_exists(controllers . $controller . '_controller.php'))
		require controllers . $controller . '_controller.php';
	else
		$missing_controller = true;
	
	// Si la fonction demander du controller existe, on l'exécute
	if(function_exists($views))
		$views($parametre);
	else
		$missing_view = true;
	
	mysql_close($mysql);

	// On place la vue dans la variable $contents
	ob_start();
	if(!$missing_view OR !$missing_controller)
	{
		if(file_exists(views . $controller . ds . $views . '.ctp'))
			require views . $controller . ds . $views . '.ctp';
		else
			require error . '404.ctp';
	}
	else
		require error . '404.ctp';
	$contents = ob_get_contents();
	ob_end_clean();
	
	// On inclue le layout
	if(file_exists(LAYOUTS . $layout . '.ctp'))
		require LAYOUTS . $layout . '.ctp';
	else if(file_exists(LAYOUTS . 'default.ctp'))
		require LAYOUTS . 'default.ctp';
	else
		require error . 'missing_layout.ctp';
?>

Le deuxième, c'est que j'aimerais intégrer les erreurs 301 sans fichier .htaccess, je me demande donc si c'est réalisable.
Pour le dernier problème, je suis pour le moment obliger d'envoyer un tableau contenant tout les paramètres, j'aimerais savoir s'il existe une technique pour envoyer chaque paramètre automatique, comme on le ferait normalement :
Exemple : mafonction('paramètre1', 'paramètre2');

Merci d'avance !
Édité le 22/11/2009 à 20:00:22 par jb1993
Publicité # Posté le 22/11/2009 à 19:56:53

Hors ligne Kyle Katarn # Posté le 22/11/2009 à 20:43:04
Avatar

Je crois vraiment que tu as pris un mauvais départ irrattrapable.

Il n'y a pas de MVC sans modèle. Cela signifierait qu'il n'y a pas de code commun à toutes les pages, si c'est le cas alors on envoie directement sur les pages avec des URL genre page1.php, contact.php...

Ensuite, c'est du suicide d'utiliser une BDD pour gérer les vues (je sais pas trop si elles ont un rapport ici, faudra que tu m'explique ce que fait ton import, il a sûrement une part de responsabilité dans la lenteur).

Enfin, avec toutes les constantes qui ont le même nom que tes variables et qui sont tantôt en minuscule tantôt en majuscules, c'est normal que tu perdes en lisibilité.
 
Hors ligne Shivaan # Posté le 22/11/2009 à 20:57:42
JS Addict
Avatar

Ville : Coux et bigaroque
Pays : France métropolitaine

Je suis assez d'accord avec Kyle Katarn. Je ne vois pas l'intérêt de partir sur du MVC si tu zappes les modèles.

Si ce le code que tu nous as copié est ton contrôleur principal, je pense que tu peux très rapidement le réécrire, vu sa taille. Vouloir se simplifier la vie est une bonne chose. Mais là tu passe carrément à côté de toute la puissance du MVC.

Ne me contactez plus pour de la modération, pour OnHack ou pour PodZ. Tout ça est derrière moi et y restera.

Node.JS User
Protégez votre liberté. Soutenez la Quadrature du Net
 
Hors ligne jb1993 # Posté le 22/11/2009 à 21:06:04

Kyle : J'ai pas réellement compris le fonctionne, ou plutôt le but du modèle. Ceci explique donc pourquoi j'en ai pas intégré.

Concernant la connexion mysql, elle n'est pas exécuté dans la vue, mais dans la page index, qui se charge d'inclure toute les pages, seule le controller peut donc effectuer des requêtes sql.
(On inclue le controller puis, je ferme la connexion mysql)

Concernant la ligne servant à importer un fichier de la librairie, la variable $sql n'est donc en faite qu'un objet, cette classe me servira à concevoir des requêtes sql plus simplement (Pour les tâches répétitif).

Concernant les constantes, j'ai pas trouver de nom différent car elle symbolise en faite l'url du dossier qu'elle contient.
Je sais donc facilement que la constantes APP contient le lien absolu vers le dossier app. Et ainsi de suite pour tout les dossiers de A à Z.

Shivann : La source de la page, n'est en faite que la page principale, traitant l'url et incluant le controller et la vue si elle existe. Un fichier controller par contre ne contient que des fonctions qui son exécuter depuis ce fichier (Ligne numéro 57 : $views($parametre);)
Hors ligne Luigi_home # Posté le 22/11/2009 à 23:00:57
Carrie Underwood <3
Avatar
Flux RSS

Ville : Ste-adèle, québec
Pays : Canada

Personnellement, j'ai adapté le modèle MVC à mes besoins et à mes compétences. J'ai toujours préférer adapter à ma sauce une méthode plutôt que de suivre les règles du jeu à la lettre et de ne pas y être confortable.

Cependant, je garde quand même une base. Je garde toujours le principe (un peu changer certe) du fameux modèle-vue-contrôleur.

Voilà comment je procède :

Disons qu'on parle de la façon de coder un système de news.

J'ai donc un fichier de fonction qui contient toutes les actions que le système peut faire (ajouter une news, la modifier puis la supprimer, ajouter une catégorie, etc.). Si on prend le contenu d'une fonction, on y verrais seulement le code qui va produire l'action. Dans le cas de la fonction qui ajoute une news, je vérifie la validité du formulaire, les exigences diverse puis j'ajoute la news.

Dans ce fichier, c'est ce que j'appelle le modèle­. Il ne fait que déclarer ce que le système peut faire.

Un autre fichier bien important est mon fichier source. Par exemple, lorsque je veux ajouter une news, c'est directement ce fichier-là que j'appelle. Il s'occupe principalement de regarder si j'ai les droits requis pour effectuer l'action, etc. C'est lui aussi qui vérifie si j'ai envoyer le formulaire. Dans ce cas-là, j'appelle ma fonction ajouternews() qui va traiter le formulaire et me renvoyer d'éventuelles erreurs. Ces erreurs seront traités par mon fichier source.

Ce fichier, je l'appelle le fichier source. Ou dans la méthode MVC, ça serait mon contrôleur. Parce que c'est lui qui contrôle mon script. C'est grâce à ce fichier que je peux ajouter une news, mais aussi que je peux afficher mon formulaire.

Le dernier fichier que j'ai, c'est un template. Lui, il se contente d'afficher les données que lui envoie mon fichier source. J'y fais des opérations basique tel que des boucles foreach, for, while, assignation de variables, affichage de variable, conditions, etc. Bref, je mets le code PHP requis pour bien afficher chacune de mes données.

Ce dernier fichier, je l'appelle le template. Cependant, dans la méthode MVC, on l'appelle la vue. C'est ce fichier qui donne le design de chacune des pages. Lorsqu'on demande à ajouter une news, l'utilisateur verra alors le template.


Voilà, c'est comme ça que je code maintenant. J'ai adapté les termes et quelques petits détails pour créer un système qui reprend la structure du MVC, mais qui me permet d'être tout de suite à l'aise avec le code que je pond.

Souriez, Luigi_home vous aime :) .
"[...] choisis ton public :P, si tu veux toucher tous les publics, tu finiras par n'en plus toucher aucun. :/" - kaonate
"Windows ou Linux ... c'est la personne qui utilise l'OS qui est le maître, pas l'OS." - Kurapix
"[..] s'inscrire sur un site, c'est une contrainte, [..], tes visiteurs ne le feront que si ça leur apporte réellement quelque chose." - LoupSolitaire
"Si une idée est bonne, elle s'imposera d'elle-même [...]" - Kyle Katarn
 
Hors ligne jb1993 # Posté le 22/11/2009 à 23:21:39

Luigi : Merci de m'avoir expliquer tout ceci, je vais garder ce que vous m'avez dit dans un fichier texte :)

J'ai tenté de suivre votre idée, j'ai donc commencer à transformer radicalement le site pour pouvoir incorporer les models.
J'ai donc crée un dossier models, puis rajouter un define dans le fichier define.php.
Une fois ceci fait, j'ai crée un nouveau fichier dans ce dossier incorporant la même fonction que le controller. J'ai donc rencontré mon premier problème, je fus obliger de crée deux classes, la classe controller et la classe models contenant chacune les mêmes fonctions.
Dans index, j'ai modifié le code pour que seule le models puisse exécuter une requête sql, j'ai rajouté une fonction pour envoyer les données du models au controller, et j'ai commencé à effectuer l'automatisation de tout ce code, donc :
Ouvrir le model et le controller s'il existe
Crée deux objets aillant pour nom "models" et "controllers" (Je vais aussi devoir résoudre un problème de doublons).

Et finalement le fichier final avec cette modification (Pour tout commentaire) :Secret (cliquez pour afficher)
Code : PHP
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
<?php
	// Déclaration des variables d'erreurs
	$missing_model = false;
	$missing_controller = false;
	$missing_view = false;
	
	// Déclaration de la variable page_title
	$page_title = '';
	$layout = 'default';
	
	// Inclusion des fichiers de base
	require '../config/define.php';
	require config . 'database.php';
	require config . 'function.php';

	// Vérification de la variable $_GET['url']
	if($_GET['url'] == 'app/webroot/')
		$url = 'news/index';
	else
		$url = $_GET['url'];
	
	// On découpe la variable $url en 3 partie
	$url = explode('/', $url, 3);
	
	if(count($url) === 1)
	{
		list($controller) = $url;
		$views = 'index';
		$parametre = '';
	}
	else if(count($url) === 2)
	{
		list($controller, $views) = $url;
		$parametre = '';
	}
	else
		list($controller, $views, $parametre) = $url;
	
	// On découpe ensuite $parametre pour avoir tout les paramètres différents
	$parametre = explode('/', $parametre);
		
	// Connexion à mysql
	$mysql = mysql_connect($database['hote'], $database['login'], $database['password']);
	mysql_select_db($database['bdd']);
	
	import('sql-generator', $controller, 'sql');

	// Si le models existe, on l'inclue
	if(file_exists(models . $controller . '.php'))
	{
		require models . $controller . '.php';
		$models = $controller . '_model';
		$models = new $models();
		
		// Si la fonction demander du models existe, on l'exécute
		if(method_exists($models, $views))
			$models->views($parametre);
	}
	else
		$missing_models = true;

	mysql_close($mysql);
	
	// Si le controller existe, on l'inclue
	if(file_exists(controllers . $controller . '_controller.php'))
	{
		require controllers . $controller . '_controller.php';
		$controllers = $controller . '_controller';
		$controllers = new $controllers();
		
		// Si la fonction demander du controller existe, on l'exécute
		if(method_exists($controllers, $views))
			$controllers->views();
		else
			$missing_view = true;
	}
	else
		$missing_controller = true;
	
		
	// On place la vue dans la variable $contents
	ob_start();
	if(!$missing_view OR !$missing_controller OR !$missing_models)
	{
		if(file_exists(views . $controller . ds . $views . '.ctp'))
			require views . $controller . ds . $views . '.ctp';
		else
			require error . '404.ctp';
	}
	else
		require error . '404.ctp';
	$contents = ob_get_contents();
	ob_end_clean();
	
	// On inclue le layout
	if(file_exists(layouts . $layout . '.ctp'))
		require layouts . $layout . '.ctp';
	else if(file_exists(layouts . 'default.ctp'))
		require layouts . 'default.ctp';
	else
		require error . 'missing_layout.ctp';
?>


Edit : J'aimerais savoir si le contrôleur doit accéder ou pas au donnée de la base de donnée. La vue et le model peuvent sans problème y accéder mais pas le controller pour le moment, j'aimerais donc savoir s'il devrait ou pas.
Édité le 23/11/2009 à 00:01:11 par jb1993
Hors ligne Luigi_home # Posté le 23/11/2009 à 20:04:23
Carrie Underwood <3
Avatar
Flux RSS

Ville : Ste-adèle, québec
Pays : Canada

Le contrôleur peut accéder aux données de la BDD, mais pas directement. C'est à dire que le rôle du contrôleur et de soutiré les informations du modèle. Donc par définition, c'est le modèle qui exécute la requête et renvoie le résultat au contrôleur.

Et sinon, à quoi ressemble tes deux class (controller et models) ?

Souriez, Luigi_home vous aime :) .
"[...] choisis ton public :P, si tu veux toucher tous les publics, tu finiras par n'en plus toucher aucun. :/" - kaonate
"Windows ou Linux ... c'est la personne qui utilise l'OS qui est le maître, pas l'OS." - Kurapix
"[..] s'inscrire sur un site, c'est une contrainte, [..], tes visiteurs ne le feront que si ça leur apporte réellement quelque chose." - LoupSolitaire
"Si une idée est bonne, elle s'imposera d'elle-même [...]" - Kyle Katarn
 
Hors ligne jb1993 # Posté le 23/11/2009 à 21:33:03

Bien... je vais devoir tout modeler alors car mon controller semble refuser toute variable global envoyer par la fonction global, set().
Voici donc le code du controller : Code : PHP
1
2
3
4
5
6
7
8
9
<?php
	class news_controller {
		function index()
		{
			$GLOBALS['page_title'] = 'accueil';
			$GLOBALS['layout'] = 'default';
		}
	}
?>


Du modèle :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
	class news_model {
		function index()
		{
			$sql = 'SELECT * FROM news';
			
			$n = mysql_query($sql);
			
			set($n, 'news');
		}
	}
?>


Et finalement le code de la fonction set() (La vue et le model peuvent lire les donnée envoyer par celle-ci, mais pas le controller)
Code : PHP
1
2
3
4
5
6
7
8
<?php
function set($mysql, $name)
	{
		while($data[] = mysql_fetch_array($mysql));
			
		$GLOBALS[$name] = $data;
	}
?>

Édité le 23/11/2009 à 21:33:37 par jb1993
Hors ligne Luigi_home # Posté le 23/11/2009 à 22:43:59
Carrie Underwood <3
Avatar
Flux RSS

Ville : Ste-adèle, québec
Pays : Canada

La méthode MVC est un petit peu plus complexe que ça. Même si on l'adapte à notre sauce, il faut tout de même respecter certains points. Il y a un point important que j'appelle le respect des actions.

Ce que je vais t'expliquer là ne sont pas des termes officiels voir même une pratique officiel. Ce sont là des petits trucs que j'ai trouvé pour mieux comprendre le modèle.


Le respect des actions signifie en gros de respecter le procéder de construction des modules. Pour le bien de l'exemple, on va penser que je souhaite créer un système de news.

Mon système est donc un module que je veux incorporer à mon site. Ce module doit contenir des actions (ajouter une news, en modifier une, en supprimer une, etc.). Hors, on ne peut pas lui attribuer l'action "index" comme tu as fait précédemment dans ton code.

On doit donc découper nos fonctions en 2
  1. Les fonctions d'actions : Ce sont les fonctions qui contiendront les instructions pour créer une action au module (ajouternews(), modifiernews(), etc.)
  2. Les fonctions globales : Ce sont des fonctions plus abstraites qui n'ont qu'un seul but : être utiliser dans le contrôleur (et peuvent aussi être ammené à les utiliser dans les fonctions d'actions). Par exemple, on pourrait y retrouver des fonctions tel que listenews(), newsexists(), etc.
Personnellement, c'est de cette façon que je construits mes fonctions lorsque je veux ajouter un module. Je divise mes deux catégorie de fonctions en deux fichiers, ce qui m'aide à y voir plus clair sur la nature de la fonction.

Ensuite, pour ce qui est de l'utilisation de la POO, elle se révèle être injustifié dans ton cas. En effet, construire une class ne revient pas à y mettre du code procédurale dedans, ce que tu semble faire. Commence tout doucement. Élimine la POO, utilise des fonctions classiques, tu verras, ça deviendra plus facile pour toi.

Une fois que tu auras compris la MVC, tu pourras commencer à apprendre la POO. C'est à dire apprendre à programmer en objet, de penser en objet, de découvrir le style, mais aussi son sens et sa fonction.

Souriez, Luigi_home vous aime :) .
"[...] choisis ton public :P, si tu veux toucher tous les publics, tu finiras par n'en plus toucher aucun. :/" - kaonate
"Windows ou Linux ... c'est la personne qui utilise l'OS qui est le maître, pas l'OS." - Kurapix
"[..] s'inscrire sur un site, c'est une contrainte, [..], tes visiteurs ne le feront que si ça leur apporte réellement quelque chose." - LoupSolitaire
"Si une idée est bonne, elle s'imposera d'elle-même [...]" - Kyle Katarn
 
Hors ligne Kyle Katarn # Posté le 23/11/2009 à 22:47:12
Avatar

jb1993 > Est-ce que ton but est de faire le MVC le moins optimisé possible, car si c'est le cas, tu te rapproches.
 
Hors ligne jb1993 # Posté le 23/11/2009 à 23:22:01

Kyle : Mon but n'est pas vraiment de faire le MVC le moins optimisé possible, mais plutôt de faire le MVC le plus automatisé possible. Je veux faire de sorte que, si j'ajoute une fonction dans le controller et une vue, celle-ci fonctionne parfaitement sans avoir besoin de tout tripatouiller. Mon but est en quelque sorte de me rapprocher de la "perfection" des frameworks MVC sans en avoir certaine contrainte.

Luigi : Je comprends le problème, je suis en train de réfléchir à une refonte total en utilisant que des classes héritées (Toute relier à une classe principal). Ceci me permettra alors d'éviter le problème des variables globals, je suis donc en train de réfléchir à la mise en œuvre et à diverse chose, en espérant le réussir.
Hors ligne Kyle Katarn # Posté le 24/11/2009 à 18:38:55
Avatar

+1 pour la refonte totale, ça c'est la meilleure idée que tu aies eu depuis le premier post. Tu ne peux pas sacrifier les performances à un tel point. Et je ne comprends pas, ce que tu as besoin de plus que le MVC de base. Avec une ligne de réécriture d'url dans un .htaccess et 5 lignes pour tester si le fichier à inclure existe, on a le système le plus simple et le plus automatisé. En laissant tomber le file_exists pour un switch, on gagne encore en optimisation et ça ne fait que deux lignes à copier-coller quand on rajoute une vue.

Tu as trop creusé, l'organisation des fichiers contenant les vues doit être la plus simple possible, le fait de devoir utiliser plusieurs constantes et variable pour inclure ces fichiers signifie que les fichiers sont éparpillés ; ça n'a pas lieu d'être.

Ensuite le sur-découpage de l'url avec les listes et les différents cas est aberrant. Ici, il faut réécrire l'url avec Apache ou avec un regex qui s'appuie sur $_SERVER['REQUEST_URI']
Édité le 24/11/2009 à 18:40:03 par Kyle Katarn
 
Hors ligne jb1993 # Posté le 24/11/2009 à 19:47:26

Kyle : Je cherche une méthode sans aller dans le trop simple. Le fichier index.php avec un .htaccess à la source plus un dossier view, controller et models, je connais déjà. Je voulais donc tenter de rendre le site encore plus... trier (En quelque sorte).
Je pense alors utiliser la même arborescence (Légèrement différente), mais en utilisant plusieurs classes, chacune gérant si nécessaire un dossier. Ceci me permettra de faire communiquer plus simplement chaque page.

Néanmoins... deux questions me trotte encore dans la tête :
Comment réaliser en php une redirection 301; comment faire avec des variables pour envoyer plusieurs variable à une fonction :
exemple : Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
// Déclaration d'un tableau contenant tout les paramètres
$t = array($a, $b);

// On envoie le tableau dans la fonction, celle-ci doit le gérer comme si dessous
mafonction($t);

// de la sorte
mafonction($a, $b);
?>


Ps : Utiliser la réécriture d'url, ça devient rapidement illisible et très complexe à la maintenance. Bien que j'utilise des raccourcies (Une page supprimer prenant deux arguments, la table et l'id). Le fichier .htaccess devient rapidement conséquent
Hors ligne Kyle Katarn # Posté le 24/11/2009 à 23:13:34
Avatar

Sors la tête hors de l'eau cinq secondes, je vais reprendre pas à pas tout ce qui bugue dans ce que tu me dis :

"sans aller dans le trop simple" : J'ai vaguement l'impression que tu essayes de compliquer les choses pour te donner bonne conscience, histoire de ce dire qu'on a utilisé la POO, les constantes, SQL, le global. Sérieusement tu as peur de rendre une technique PHP jalouse de l'autre ? La gestion des pages, c'est simple, il faut le faire simplement. J'ai aussi voulu réinventer la roue dans ma jeunesse niveau codage. Aujourd'hui, je me suis rendu compte d'un truc fondamental. PHP peut aller vraiment vraiment loin. Il est composé d'outils puissants qui permettent de faire des choses très poussées. Ce langage est génial d'un bout à l'autre. Les structures if sont optimisé l'outil function est optimisé. Il faut savoir savourer un peu l'instant où on écrit if( parce qu'on est aussi en train d'utiliser la pleine puissance de PHP à même titre qu'avec un class ou une fonction à nombre de paramètres variable.

"un dossier view, controller et models" : un view et un index devrait suffir. J'ai beau réfléchir, je ne vois pas à quoi pourraient servir controller et models.

"Je voulais donc tenter de rendre le site encore plus... trier (En quelque sorte)" Le sens premier de trier est : Séparer, dans un ensemble de choses, ce que l'on doit conserver de ce que l'on doit éliminer. Ce n'est pas vraiment ce que tu as fait, tu les as séparés et rangés selon des critères plus ou moins pertinents mais tu n'as pas retirer l'inutile.

"Ceci me permettra de faire communiquer plus simplement chaque page." Je comprends que les pages n'ont pas souvent la parole et qu'elles sont souvent maltraitées, c'est bien de défendre leur cause mais je pense que ton joli pseudo-MVC n'y fera rien. Plus sérieusement, c'est de la pure illusion de croire que qu'une organisation de cette nature va apporter quelque chose. Essaye de mettre du concret sur toutes ces idées abstraites totalement confuses.

Qu'est-ce que tu veux pouvoir faire, quel son tes contraintes, de quoi ai-je besoin (j'insiste sur besoin) pour atteindre ce but ?

Le truc à éviter : les idées qui commence par "Tiens, ça serait bien si...". Si une idée est bonne, elle s'imposera d'elle-même et ressemblera à un truc du genre : "Ceci est la technique la plus adaptée à mon problème".
 

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx