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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  46  47  48  ..  62  63  64  65  66  67
Auteur Sujet :

Model View Controller (MVC) - Architecture des applications PHP

n°1770904
Profil sup​primé
Posté le 07-08-2008 à 19:16:51  answer
 

Reprise du message précédent :
Si ce code était utile (:/), tu devrais utiliser __call pour gagner en lisibilité :
l'appel d'une fonction get_quelquechose() trouverais dynamiquement qu'il faut renvoyer $this->quelquechose.
Clair que c'est chiant que çà soit pas indenté et que global c'est bof :/

mood
Publicité
Posté le 07-08-2008 à 19:16:51  profilanswer
 

n°1770906
skeye
Posté le 07-08-2008 à 19:17:28  profilanswer
 


 
c'est mal.:o


---------------
Can't buy what I want because it's free -
n°1770908
Profil sup​primé
Posté le 07-08-2008 à 19:20:48  answer
 

skeye a écrit :


 
c'est mal. :o


 
C'est mieux  :o  
 
EDIT : c'est quoi ce bug avec les quotes : un smiley :o à côté d'un point ça bugge seulement dans les quotes :(


Message édité par Profil supprimé le 07-08-2008 à 19:23:40
n°1770911
Profil sup​primé
Posté le 07-08-2008 à 19:25:57  answer
 

il ira mieux sorti de l'hosto  :whistle: :/
 
EDIT : moi çà s'arrange pas :/


Message édité par Profil supprimé le 07-08-2008 à 19:26:35
n°1770939
ratibus
Posté le 07-08-2008 à 20:36:04  profilanswer
 

skeye a écrit :


 
c'est mal.:o


 
C'est quoi le pb que vous voyez avec __call  :??:


---------------
Mon blog
n°1770968
Profil sup​primé
Posté le 07-08-2008 à 22:32:44  answer
 

ratibus a écrit :


 
C'est quoi le pb que vous voyez avec __call  :??:


 
+1 :??:

n°1770969
Dj YeLL
$question = $to_be || !$to_be;
Posté le 07-08-2008 à 22:33:28  profilanswer
 

C'est une fonction Php

Spoiler :

[:dawa]


---------------
Gamertag: CoteBlack YeLL
n°1770971
Profil sup​primé
Posté le 07-08-2008 à 22:37:14  answer
 

Dj YeLL a écrit :

C'est une fonction Php

Spoiler :

[:dawa]



 
 [:alph-one]

n°1771002
skeye
Posté le 08-08-2008 à 08:15:35  profilanswer
 

ratibus a écrit :

 

C'est quoi le pb que vous voyez avec __call  :??:

  

sur un objet complexe ou un truc dont la structure a bougé suite à un refactoring tu te retrouves vite avec un énorme paté pour gérer les cas particuliers, et ça devient nettement pire que d'avoir un getter et un setter par membre que tu veux atteindre...

Message cité 2 fois
Message édité par skeye le 08-08-2008 à 08:16:14

---------------
Can't buy what I want because it's free -
n°1771016
ratibus
Posté le 08-08-2008 à 09:30:39  profilanswer
 

skeye a écrit :


 
sur un objet complexe ou un truc dont la structure a bougé suite à un refactoring tu te retrouves vite avec un énorme paté pour gérer les cas particuliers, et ça devient nettement pire que d'avoir un getter et un setter par membre que tu veux atteindre...


C'est clair que si c'est juste pour des getter et setter ça vaut pas trop la peine sur des objets complexes
 
Sur des objets comme celui-là c'est très pratique : http://svn.symfony-project.com/plu [...] Finder.php (dernière méthode)


---------------
Mon blog
mood
Publicité
Posté le 08-08-2008 à 09:30:39  profilanswer
 

n°1771018
flo850
moi je
Posté le 08-08-2008 à 09:32:27  profilanswer
 

skeye a écrit :


 
sur un objet complexe ou un truc dont la structure a bougé suite à un refactoring tu te retrouves vite avec un énorme paté pour gérer les cas particuliers, et ça devient nettement pire que d'avoir un getter et un setter par membre que tu veux atteindre...


exemple  : ma classe user à une chiée d'attribut ( issus du ldap ) , je me vois bien avoir autant de getter ou de setter , juste pour le plaisir  
 
a la place, j'ai tous mes attributs sauf deux, qui sont définis en protected . Les deux autres sont des attributs non modifiables, donc défini en private avec des getter explicites , et j'ai une classe  qui se concentre sur son objectif et qui n'est pas une catalogue de getter et de setter


---------------

n°1771069
skeye
Posté le 08-08-2008 à 10:56:55  profilanswer
 

ratibus a écrit :

Sur des objets comme celui-là c'est très pratique : http://svn.symfony-project.com/plu [...] Finder.php (dernière méthode)


 
...et c'est un super exemple de ce que je disais : un gros paté moche, catalogue de if() pour traiter les différents cas.
 

flo850 a écrit :


exemple  : ma classe user à une chiée d'attribut ( issus du ldap ) , je me vois bien avoir autant de getter ou de setter , juste pour le plaisir  
 
a la place, j'ai tous mes attributs sauf deux, qui sont définis en protected . Les deux autres sont des attributs non modifiables, donc défini en private avec des getter explicites , et j'ai une classe  qui se concentre sur son objectif et qui n'est pas une catalogue de getter et de setter


 
...et ça a un intérêt d'avoir une visibilité des attributs ldap hors de ta classe user? A priori non, puisque tu les déclares protected sans getters/setters. Ou alors c'est _call qui est utilisé pour ceux-là? Si oui, euh, quel est l'intérêt de laisser visible des attributs ldap hors de la classe user? Et qu'est-ce qui se passe si un jour ta source de données ou la structure de ton ldap changent?
Des getters/setters ce n'est pas forcément un mappage direct vers la lecture ou l'affectation d'une variable...pour moi il y a toujours un intérêt à les déclarer explicitement lorsque tu en as besoin...


---------------
Can't buy what I want because it's free -
n°1771070
ratibus
Posté le 08-08-2008 à 11:00:22  profilanswer
 

skeye a écrit :


 
...et c'est un super exemple de ce que je disais : un gros paté moche, catalogue de if() pour traiter les différents cas.
 


Tu m'expliques comment tu apportes la meme souplesse au niveau de l'API pour l'utilisateur de la classe sans ça ?
Ca factorise vachement le code.


---------------
Mon blog
n°1771079
skeye
Posté le 08-08-2008 à 11:13:51  profilanswer
 

ratibus a écrit :


Tu m'expliques comment tu apportes la meme souplesse au niveau de l'API pour l'utilisateur de la classe sans ça ?
Ca factorise vachement le code.


aucune idée, j'ai pas regardé ce que ça faisait...j'ai juste vu exactement ce que je pensais trouver : une grosse fonction de je sais pas combien de lignes qui consiste uniquement en une suite de if() pour traiter les cas différents, au lieu de les traiter dans des fonctions séparées.

 

Et quoi qu'il arrive il y a toujours plusieurs solutions à un problème, et celle-ci n'est certainement ni la plus élégante ni la plus simple à comprendre et à maintenir.


Message édité par skeye le 08-08-2008 à 11:14:07

---------------
Can't buy what I want because it's free -
n°1771085
flo850
moi je
Posté le 08-08-2008 à 11:26:19  profilanswer
 

skeye a écrit :

 


...et ça a un intérêt d'avoir une visibilité des attributs ldap hors de ta classe user? A priori non, puisque tu les déclares protected sans getters/setters. Ou alors c'est _call qui est utilisé pour ceux-là? Si oui, euh, quel est l'intérêt de laisser visible des attributs ldap hors de la classe user? Et qu'est-ce qui se passe si un jour ta source de données ou la structure de ton ldap changent?
Des getters/setters ce n'est pas forcément un mappage direct vers la lecture ou l'affectation d'une variable...pour moi il y a toujours un intérêt à les déclarer explicitement lorsque tu en as besoin...


__call est utilisé pour mapper automatique les getter et les setter sur les attributs qui sont quasiment tous accessibles de l'exterieur. ceux qui ne doivent pas l'etre sont défini en private

 

si jamais la structure de mon ldap change ( ce qui est assez rare quand meme) il me suffira de définir explicitement les getter/setter qui ont besoin de l'être, et de ne pas toucher les autres.
Exemple  : je fais de la lazy instanciation pour certaiens donénes de l'utilisateurs qui sont lourdes a chargée et peu utilisée. Dans ce cas ; le getter est défini exlpicitement

 

Pour tous les getter / setter  qui ne sont pas du mapping direct, c'est clair qu'il faut les définir explicitement. Mais pour les autres, pourquoi alourdir le code avec des lignes qui n'apportent rien ?

 

J'utilise ce code :

Code :
  1. <?
  2.    class EntityException extends Exception {};
  3.    
  4.    /*
  5.    *   Provides automatic accessors like getMyparam() or setNicevalue('foo');
  6.    */
  7.    abstract class Entity
  8.    {
  9.     protected function set($prop, $val)
  10.     {
  11.       $this->$prop = $val;
  12.       return true;
  13.     }  
  14.     protected function get($prop)
  15.     {
  16.       return $this->$prop;
  17.     }  
  18.     protected function est($prop)
  19.     {
  20.       return $this->$prop ==true;
  21.     }  
  22.    
  23.     public function __call($method, $params)
  24.     {
  25.       $type = substr($method, 0, 3);
  26.       $prop = strtolower(substr($method, 3));
  27.       $paramCount = count($params);    
  28.       if (property_exists($this, $prop)) {
  29.         switch ($type) {
  30.         case 'set':
  31.           $nb = 'exactly 1';
  32.           if ($paramCount === 1) return $this->set($prop, $params[0]);
  33.           break;
  34.         case 'get':
  35.           $nb = 'no';
  36.           if ($paramCount === 0) return $this->get($prop);
  37.           break;
  38.          case 'est':
  39.           $nb = 'no';
  40.           if ($paramCount === 0) return $this->est($prop);
  41.         default:  
  42.           throw new EntityException("Unknown method: $method" );
  43.         }
  44.         throw new EntityException("Invalid args count $method() takes $nb argument." );
  45.       } else {
  46.         throw new EntityException("Unknown property: $prop, $type() failed." );
  47.       }    
  48.     }
  49.    }
  50.    
  51.    ?>


et toutes mes classes hérites de Entity

Message cité 2 fois
Message édité par flo850 le 08-08-2008 à 11:29:09

---------------

n°1771090
skeye
Posté le 08-08-2008 à 11:31:26  profilanswer
 

flo850 a écrit :

Pour tous les getter / setter  qui ne sont pas du mapping direct, c'est clair qu'il faut les définir explicitement. Mais pour les autres, pourquoi alourdir le code avec des lignes qui n'apportent rien ?

 

Ne serait-ce que pour la lisibilité du code. Pouvoir appeler des méthodes qui n'existent pas est un concept qui fondamentalement me dérange beaucoup.
Et en ce qui me concerne je considère qu'on doit pouvoir savoir comment utiliser une classes en regardant la liste de ses membres et fonctions publics, ce qui n'est plus du tout le cas dès qu'on joue avec ces horreurs spécifiques à php.

 

Avoir des getters/setters explicites pour certains membres et pas pour d'autres c'est le bordel. Et ta méthode __call si tu ne vérifies pas derrière quels membres sont demandés tu te retrouves avec des membres privés accessibles et modifiables que tu le veuilles ou non, ce qui est amha la pire hérésie qu'on puisse commettre.

Message cité 1 fois
Message édité par skeye le 08-08-2008 à 11:32:06

---------------
Can't buy what I want because it's free -
n°1771094
skeye
Posté le 08-08-2008 à 11:35:48  profilanswer
 

flo850 a écrit :


J'utilise ce code :  

Code :
  1. [...]


et toutes mes classes hérites de Entity


 
bravo, ça revient à déclarer tous les membres de toutes tes classes pour lesquels tu ne redéfinis pas les getters/setters publics.[:el g]


---------------
Can't buy what I want because it's free -
n°1771126
flo850
moi je
Posté le 08-08-2008 à 12:09:41  profilanswer
 

skeye a écrit :

 

Ne serait-ce que pour la lisibilité du code. Pouvoir appeler des méthodes qui n'existent pas est un concept qui fondamentalement me dérange beaucoup.
Et en ce qui me concerne je considère qu'on doit pouvoir savoir comment utiliser une classes en regardant la liste de ses membres et fonctions publics, ce qui n'est plus du tout le cas dès qu'on joue avec ces horreurs spécifiques à php.

 

Avoir des getters/setters explicites pour certains membres et pas pour d'autres c'est le bordel. Et ta méthode __call si tu ne vérifies pas derrière quels membres sont demandés tu te retrouves avec des membres privés accessibles et modifiables que tu le veuilles ou non, ce qui est amha la pire hérésie qu'on puisse commettre.


donc tu redefinis aussi toutes les méthodes héritées ? parceque si tu ne le fait pas , tu ne peux pas utiliser une classe sans lire le code des classes parentes

 


skeye a écrit :

 

bravo, ça revient à déclarer tous les membres de toutes tes classes pour lesquels tu ne redéfinis pas les getters/setters publics.[:el g]


non

 

un membre déclaré  en private n'est pas accessible avec ce mode de fonctionnement
je t'aide, avec la  doc sur property_exist http://us2.php.net/property_exists

Message cité 1 fois
Message édité par flo850 le 08-08-2008 à 12:12:20

---------------

n°1771136
skeye
Posté le 08-08-2008 à 12:16:25  profilanswer
 

flo850 a écrit :


donc tu redefinis aussi toutes les méthodes héritées ? parceque si tu ne le fait pas , tu ne peux pas utiliser une classe sans lire le code des classes parentes

 

sans lire quelles sont leurs propriétés et fonctions publiques.[:aloy] [:moule_bite]
Avec _call il faut lire le code...

 
flo850 a écrit :

un membre déclaré  en private n'est pas accessible avec ce mode de fonctionnement

 

Tu appelles property_exists dans ton __call,  les deux sont dans la même classe, donc je vois pas pourquoi ça retournerait false...remarque avec un héritage je suis jamais sûr de ce que fait php, m'enfin je vois pas de raison logique pour laquelle le property_exists retournerait faux.

Message cité 1 fois
Message édité par skeye le 08-08-2008 à 12:16:37

---------------
Can't buy what I want because it's free -
n°1771222
flo850
moi je
Posté le 08-08-2008 à 14:23:10  profilanswer
 

skeye a écrit :

 

sans lire quelles sont leurs propriétés et fonctions publiques.[:aloy] [:moule_bite]
Avec _call il faut lire le code...

 



rien ne t'empehce de documenter les fonctions qui sont 'virtuelles'
on aprle juste de gagner du temps a l'ecriture eu au debuggage

 
skeye a écrit :

 

Tu appelles property_exists dans ton __call,  les deux sont dans la même classe, donc je vois pas pourquoi ça retournerait false...remarque avec un héritage je suis jamais sûr de ce que fait php, m'enfin je vois pas de raison logique pour laquelle le property_exists retournerait faux.


tu devrai tester alors[:proy], tu serai surpris ( ici sous php 5.2.1 ca fonctionne )

Message cité 1 fois
Message édité par flo850 le 08-08-2008 à 14:23:37

---------------

n°1771239
skeye
Posté le 08-08-2008 à 14:34:24  profilanswer
 

flo850 a écrit :


rien ne t'empehce de documenter les fonctions qui sont 'virtuelles'  
on aprle juste de gagner du temps a l'ecriture eu au debuggage  


 
tu en perds ailleurs, là...[:skeye]
 

flo850 a écrit :


tu devrai tester alors[:proy], tu serai surpris ( ici sous php 5.2.1 ca fonctionne )


 
Effectivement ça marche...mais mauvais esprit comme je suis j'en déduis plus facilement que property_exists est buggé qu'autre chose.[:chrisbk]
...et en passant outre ce truc, tu t'interdis tout nom de variable membre contenant une majuscule, c'est quand même particulièrement casse-burnes...[:el g]
 

Code :
  1. class totoz extends Entity{
  2.           
  3.                  
  4.           private $titi;
  5.           public $toto;
  6.           public $laCaBuggeGrave;
  7.           
  8.           function __construct(){
  9.               $this->titi = 0;
  10.               $this->toto = 0;
  11.               $this->laCaBuggeGrave = 'dawa';
  12.           }
  13.    
  14.           
  15.           
  16.       }
  17.      
  18.       $dawa = new totoz();
  19.       $dawa->setToto('ok, lol');
  20.       $dawa->setLaCaBuggeGrave('moule_bite');
  21.       print_r($dawa);


 

Citation :


Fatal error: Uncaught exception 'EntityException' with message 'Unknown property: lacabuggegrave, set() failed.' in H:\WWW\test\test.php:46 Stack trace: #0 [internal function]: Entity->__call('setLaCaBuggeGra...', Array) #1 H:\WWW\test\test.php(70): totoz->setLaCaBuggeGrave('moule_bite') #2 {main} thrown in H:\WWW\test\test.php on line 46


---------------
Can't buy what I want because it's free -
n°1771243
skeye
Posté le 08-08-2008 à 14:36:48  profilanswer
 

d'ailleurs vu que ça marche avec les membres publics je vois pas pourquoi ça marcherait pas avec les membres privés, c'est particulièrement incohérent ce bordel...tu réécris un __call équivalent sur toutes les classes dérivées qui ont beaucoup de membres privés qui ont besoin de setter/getter?[:pingouino]

Message cité 1 fois
Message édité par skeye le 08-08-2008 à 14:44:02

---------------
Can't buy what I want because it's free -
n°1771255
flo850
moi je
Posté le 08-08-2008 à 14:47:13  profilanswer
 

skeye a écrit :


 
tu en perds ailleurs, là...[:skeye]
 
 
 
Effectivement ça marche...mais mauvais esprit comme je suis j'en déduis plus facilement que property_exists est buggé qu'autre chose.[:chrisbk]
...et en passant outre ce truc, tu t'interdis tout nom de variable membre contenant une majuscule, c'est quand même particulièrement casse-burnes...[:el g]
 


tu vire le strtolower si ca te pose vraiment un problème éthique [:proy]
mais de toute manière, le nombre de situation ou tu dois taper directement le nom de la variable est super rare chez moi, c'est pour ça que je défini des getter et des setter  
 
 

skeye a écrit :

d'ailleurs vu que ça marche avec les membres publics je vois pas pourquoi ça marcherait pas avec les membres privés, c'est particulièrement incohérent ce bordel...tu réécris un __call équivalent sur toutes les classes dérivées qui ont beaucoup de membres privés qui ont besoin desetter/getter?[:pingouino]


tu as surement mal compris les raisons qui font qu'un membre est privé.
C'est privé comme dans privatif, propre à la classe, et donc ça n'a rien a foutre à l'extérieur , sinon, c'est protected ou public . Et tu remarquera que, dans ce cas, on retombe dan sune situation bien chiante, qui est exactement celle que tu conseille.
 
si je défini un getToto() le call ne va pas etre appelé

Citation :

If a class implements __call(), then if an object of that class iscalled with a method that doesn't exist __call() is called instead.


les seuls getter/setter que je définis explicitement sont les membres calculés et les  membres sur lesquels je fais du lazy loading ( rare car je ne le met en place que si c'est un goulet d'etranglement )
 
 
 
exemple de classe ou j'utilsie ce principe :  
 

Code :
  1. class Profil extends Entity{
  2.  
  3.    protected $nom;
  4.    private $id;
  5.    protected $administrateurs = array();// id des profils qui ont le droit de modifier les membres de ce profil
  6.    protected $idusers  = null;
  7.    protected $ldapusers = null;
  8.  
  9.    function __construct($idProfil)
  10.    {
  11.        $idProfil = mysql_real_escape_string($idProfil);
  12.        
  13.        $this->id = $idProfil;
  14.        
  15.        $query = "SELECT nom
  16.                    FROM noyau_groupes
  17.                    WHERE id = $idProfil";
  18.                    
  19.        $result = mysql_query($query);
  20.        
  21.        if(mysql_error())
  22.            return;
  23.            
  24.        if(mysql_num_rows($result) ==0)
  25.            return ;
  26.        
  27.        list($this->nom) = mysql_fetch_array($result);
  28.        
  29.        // on recuperer la liste des profils administrateur de ce profil
  30.        $query = "SELECT idGroupeAdmin
  31.                    FROM noyau_groupes_admin
  32.                    WHERE idGroupe = $idProfil";
  33.        $result = mysql_query($query);
  34.        if(mysql_error())
  35.            return;
  36.        
  37.        while(list($id) = mysql_fetch_array($result))
  38.        {
  39.            $this->administrateurs[] = $id;
  40.        }
  41.        $this->administrateurs[] =1; // on rajoute le profil super admin
  42.        
  43.    }
  44.    
  45.    function getId(){
  46.        return $this->id;
  47.    }
  48.    
  49.  
  50.    function getIdUsers(){
  51.        if($this->idusers ==null && $this->getId() >0 )
  52.        {
  53.            //liste des utilisateurs membres de ce profil ( stocké en base , ne contient que les personnes qui se sont connecté au moins une fois)
  54.            echo '.';
  55.            $query = "SELECT id_user
  56.                        FROM noyau_groupes_users INNER JOIN noyau_users ON noyau_users.id = noyau_groupes_users.id_user
  57.                        WHERE id_groupe =".$this->getId()." AND actif=1 AND supprime =0";
  58.            $result = mysql_query($query);
  59.            if(mysql_error())
  60.                return;
  61.  
  62.            while(list($idUser) = mysql_fetch_array($result))
  63.            {
  64.                $this->idusers[] = $idUser;
  65.            }
  66.        }
  67.        return $this->idusers;
  68.        
  69.    }
  70.    
  71.    function getLdapUsers(){
  72.    //recup de la liste des données du ldap  des membres de ce profils ( tout le monde , y compris ceux qui ne se sont jamais connecté )
  73.        $ldap = new ldap();
  74.        $this->ldapusers = $ldap->recherche_profil($idProfil);
  75.        
  76.        
  77.    }
  78. }


 
id est défini en privé, pas modifiable, je fait donc un getter explicite  
la liste des utilisateurs est assez couteux a récupérer, je défini donc un getter explicitement

Message cité 1 fois
Message édité par flo850 le 08-08-2008 à 14:51:20

---------------

n°1771270
skeye
Posté le 08-08-2008 à 14:55:31  profilanswer
 

flo850 a écrit :


tu vire le strtolower si ca te pose vraiment un problème éthique [:proy]


 
oui, mais là t'es obligé d'avoir des noms de variables qui commencent par une majuscule, bref, il faut que ça matche, ce qui est pénible et sort des conventions de nommage les plus utilisées...
 

flo850 a écrit :


tu as surement mal compris les raisons qui font qu'un membre est privé.
C'est privé comme dans privatif, propre à la classe, et donc ça n'a rien a foutre à l'extérieur , sinon, c'est protected ou public . Et tu remarquera que, dans ce cas, on retombe dan sune situation bien chiante, qui est exactement celle que tu conseille.


 
ok, lol, tu vas m'apprendre ce que ça veut dire ou à quoi sert private maintenant.[:el g]
Un membre peut être privé dans le seul objectif de cacher l'implémentation interne de la classe, et on peut très bien avoir besoin d'utiliser sa valeur telle quelle hors de cette classe quand même. Je n'utilise absolument jamais de variables membres publiques, ne serait-ce que pour éviter d'être emmerdé en cas de refactoring ultérieur.
 

flo850 a écrit :

les seul getter/setter que je définis explicitement sont les membres calculés et les  membres sur lesquels je fais du lazy loading ( rare car je ne le met en place que si c'est un goulet d'etranglement )


 
c'est bien ce que je dis, si tu as besoin ne serait-ce que d'un getter sur un membre private tu n'as pas le choix il faut l'écrire...


---------------
Can't buy what I want because it's free -
n°1771272
skeye
Posté le 08-08-2008 à 14:59:29  profilanswer
 

('tain et property_exists trouve aussi les protected dans les classes filles...c'est n'importe-quoi ce truc [:pingouino])


---------------
Can't buy what I want because it's free -
n°1771277
flo850
moi je
Posté le 08-08-2008 à 15:04:07  profilanswer
 

skeye a écrit :


 
oui, mais là t'es obligé d'avoir des noms de variables qui commencent par une majuscule, bref, il faut que ça matche, ce qui est pénible et sort des conventions de nommage les plus utilisées...
 


a oui , c'est horrible  [:max evans]  
allez, vu que je suis un gars gentil, je t'aide  

skeye a écrit :


 
c'est bien ce que je dis, si tu as besoin ne serait-ce que d'un getter sur un membre private tu n'as pas le choix il faut l'écrire...


et , est ce que j'ai dis que ca faisait tout ton code a la place ?  
non, j'ai dis, qu'en ajoutant extends Entity aux classes de base, tu évite de te taper une bonne partie  des getter/setter , ce qui allège les classes. Je vois même pas pourquoi tu te focalise sur tes private. A moins que tu déclare tout en priavte, parceque c'est mieux .
C'est sur qu'il vaut mieux avoir 200 lignes de getter/setter au début, c'est tellement mieux pour lire le code


---------------

n°1771722
Gagman
Héritier du vide
Posté le 10-08-2008 à 18:11:32  profilanswer
 

Je pense que vous êtes nombreux à ne pas avoir compris mon idée.
 
Je parle d'un générateur de classes du type table de la base de donnée qui donne table.php, qui prends en considération les null autorisés, les relations foreign keys, les collections d'objets enfants, l'accès à l'objet parent. Je ne cherche pas à avoir le code le plus sexy mais à ne plus faire de SQL pour sauvegarder mes objets plus complexes qui héritent de mes classes de base.
 
L'objectif étant de générer la couche d'accès aux données de cette façon à chaque modification ou nouveau projet, gagner du temps en gros.


---------------
Oppa Gagman Style
n°1771730
Profil sup​primé
Posté le 10-08-2008 à 18:55:01  answer
 

Question n0ob :
J'ai un système simple (News) et je dispose de fichiers du type index.php (listage) comments.php (commentaires) post.php (création de news) tocomment.php (envoi de commentaires)....
 
Est-ce intéressant, pour le contrôleur, d'utiliser le nom du fichier en cours pour gérer les requêtes ?
 
J'utiliserais basename et switch, par exemple.

n°1771733
theredled
● REC
Posté le 10-08-2008 à 19:01:51  profilanswer
 

c'est plutot l'inverse qui se passe en général : l'internaute accède à aux différentes url, qui mènent en fait toutes au même fichier (avec le type de page en GET, via url-rewriting, notament). Dans ce fichier là (front-controller), tu peux faire ton switch (et regardant direct le GET)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1771735
Profil sup​primé
Posté le 10-08-2008 à 19:11:09  answer
 

Ouais, je pense que c'est mieux :/
J'avais fait çà (assez crade :/) :
http://lucasavoie.com/files/news.zip

Message cité 1 fois
Message édité par Profil supprimé le 10-08-2008 à 19:11:26
n°1771738
Gagman
Héritier du vide
Posté le 10-08-2008 à 19:19:26  profilanswer
 


Effectivement je ne connaissais pas, j'aurais le plaisir d'utiliser le mien toujours plus gratifiant :o)


---------------
Oppa Gagman Style
n°1771740
Gagman
Héritier du vide
Posté le 10-08-2008 à 19:25:19  profilanswer
 

J'étudierais ca après mon projet, il est déjà bati autour de mes classes générées.


---------------
Oppa Gagman Style
n°1786788
Siluro
Posté le 15-09-2008 à 09:45:13  profilanswer
 

erf
j'ai trouvé un bug dans la gestion de l'encodage dans le formulaire de symfony (la version 1.1.1)  :fou:

n°1786800
ratibus
Posté le 15-09-2008 à 09:58:58  profilanswer
 

Siluro a écrit :

erf
j'ai trouvé un bug dans la gestion de l'encodage dans le formulaire de symfony (la version 1.1.1)  :fou:


C'est-à-dire ?
T'as fait un ticket j'espère :o


---------------
Mon blog
n°1787299
Siluro
Posté le 15-09-2008 à 22:00:02  profilanswer
 

ratibus a écrit :


C'est-à-dire ?
T'as fait un ticket j'espère :o


j'attends que sur le forum de sf on me confirme que c'est bien un bug et pas une feature :o

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  46  47  48  ..  62  63  64  65  66  67

Aller à :
Ajouter une réponse
 

Sujets relatifs
Comment créer une architecture propre et fonctionelle...[Débutant] Webdesigner a besoin d'aide pour PHP
script PHP style explorateur windowsPHP et MS SQL
[PHP] envoi d'images qui se dimentionne et s'ajoute direct sur 1pageAfficher le temps utilisé pour générer une page PHP
[PHP] connexion bdd différente selon page locale ou sur serveur ?Afficher une image générée par un script PHP dans un PDF ?
Utilisation d'une variable en Flash depuis PHPErreur de forum PHP
Plus de sujets relatifs à : Model View Controller (MVC) - Architecture des applications PHP


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)