[RESOLU] Critiques sur l'organisation de mon code

Eléphant du PHP | 116 Messages

04 déc. 2013, 11:08

Bonjour à tous,

J'aurai aimé des critiques sur mes habitudes d'organisation du code. J'ai essayé de me mettre au modèle MVC, seul.

En lui-même mon code est visible. Ma question porte essentiellement sur l'architecture de mon projet.

Généralement je fais comme ça (prenons le cas d'un site tout bête avec une page) :

Htaccess 
^/produit/(.*)$ index.php?controlleur=produit&idproduit=$1
Index.php (cumulé au htaccess, ça "route")
if($_GET['controlleur']=='produit')	include 'controlleur/produit.php' ;
//...
include 'controlleur/chargeur_template.php' ;
Controlleur/Produit.php
$ManagerProduit = new ManagerProduit; // fait appel au modèle qui retourne des objets produit
if($_GET['idproduit']==1) $titre = $ManagerProduit->getTitreProduit($_GET['idproduit']);
else $titre = 'titre du produit2 ';
$template = 'produit';
Vue/Produit.php
<h1><?= $titre ;?>< :h1>
Il va sans dire que mon code est un peu plus sécurisé et étoffé ;-)

Est-ce que c'est commun d'organiser son code de cette manière ? Est-ce que je peux continuer dans ce sens ou est-ce que vous me conseillez de m'organiser différemment ?

Merci ! :-)
@+,
Computarelier

ViPHP
xTG
ViPHP | 7331 Messages

04 déc. 2013, 14:16

Il n'y a pas qu'une façon de faire du MVC, on peut même en faire sans POO donc c'est pour dire.
Ta façon de faire ne me choque aucunement.

Eléphant du PHP | 116 Messages

04 déc. 2013, 14:24

Merci pour ce (premier) retour !
@+,
Computarelier

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 déc. 2013, 22:35

+1 xTG

A ceci prêt que j'aurais préféré mettre dans un tableau le nom des contrôleurs (le nom en clef et le chemin pour l'inclusion en valeur), histoire d'avoir un truc un peu plus générique.
exemple
<?php

$controleur = ['produits'=> 'controlleur/produit.php','autre'=>'controlleur/autre.php'];

if(!empty($_GET['controleur']) && isset($controleur[$_GET['contoleur']])){
    include isset($controleur[$_GET['contoleur']]);
}
Attention il faut bien sur y ajouter la couche ACL (avant ou dans les contrôleur spécifique ;) ).

une autre solution serais de gérer dynamiquement la chose.
En poo tu crée une interface qui va servir de gabarit aux contrôleurs, ajoute à cela l'autoload et tu peux fair un mécanisme extension sans devoir connaitre à l'avance le nom des controleurs (bien sur tu auras à respecter une convention pour le nommage des fichier mais c'est généralement le cas lorsque se pose ce type de question :))


enfin bref, comme le dit xTG il n'y a pas qu'une façon de faire un MVC :mrgreen: :mrgreen:

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 116 Messages

04 déc. 2013, 22:57

Chouette, "Acl", de nouvelles pistes à creuser...
(car après le bouquin que tu m'as dit de bouquiner et les diagrammes UML dont je rêve tous les soirs, merci l'ambiance :lol: )

Merci & bonne soirée,
@+,
Computarelier

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 déc. 2013, 23:02

c'est pas de tout repos la vie de dev (acl, en gros c'est la gestion de droit ;) )


@+
Il en faut peu pour être heureux ......