Page 1 sur 1
Je débute en POO, comment commencer?
Posté : 24 févr. 2012, 13:42
par Texicitys
Bonjour,
Je travail sur un site internet depuis environ 8 mois maintenant. Je n'ai rien codé en POO. Le site commence à contenir de plus en plus de code. J'aimerais commencer à mieux organiser mon code en commençant la POO.
Par exemple : Mon site propose aux membres d'uploader des documents scolaires grâce à un formulaire. Si le document est envoyé de façon privée, la majorité des champs obligatoire devienne facultatifs. J'ai aussi une page modifier document en fonction que le document soit privé ou public. ça me fait environ 4 fois le même code (à quelques modification près).. Je me rend compte que ce n'est pas optimal , mais je ne vois pas comment procéder pour rendre le code plus propre..
Merci d'avance !
Tex
Re: Je débute en POO, comment commencer?
Posté : 24 févr. 2012, 15:31
par moogli
Salut,
La pour le coup je te conseil de factoriser ton code en fonction.
Si ton site fonctionne ainsi ne casse pas tout pour "faire de la poo".
La poo ne réduit pas le code, c'est parfois même l'inverse.
Si tu souhaite t'y mettre je te conseil de commencer par la modélisation (diagrammes à gogo

) avant se tenter le code sinon ça va vite être le bordel.
Un site entièrement en procédural n'est pas forcément plus mauvais qu'un site à base poo
Pour commencer =>
http://www.lephpfacile.com/cours/24-la- ... ndamentaux
C'est pour php4 mais la base reste valable.
@+
Re: Je débute en POO, comment commencer?
Posté : 25 févr. 2012, 02:42
par Texicitys
Merci pour ta réponse..
Si je fais des fonctions, le problème reste le même il me semble. Si je veux modifier quelque chose dans mon formulaire (par exemple ajouter un champs), je dois le faire dans tous les formulaires, alors que ces derniers sont presque pareil. Y a-t-il une solution pour rendre le tout plus simple? Pour le moment, j'ai fait un switch (si le doc est public ou privé). Dans les deux partie du switch, j'ai le même formulaire avec les mêmes champs, cependant dans un des deux, les champs sont obligatoires donc en gras et dans l'autre non. Pour la vérification c'est pareil, c'est un switch.. Je me retrouve donc avec un code en double (et je ne parle que de la page "envoyer").
Quelle serait la solution pour améliorer ça?
Merci d'avance
Re: Je débute en POO, comment commencer?
Posté : 27 févr. 2012, 11:05
par mere-teresa
Pour ton code en double, si j'ai bien compris tu as :
switch($isprivé):
case oui:
//génération des champs HTML
case non:
//génération des champs HTML (les mêmes) mais certains en gras
Pourquoi ne pas faire :
function genererChampsHTML($options)
{
//fabrication du champ avec l'option gras ou non pour chaque champ (avec une boucle)
return $champs;
}
et de l'autre côté :
// true = champ en gras
$optionsSiOui = array('champ1' => false, 'champ2' => true);
$optionsSiNon = array('champ1' => true, 'champ2' => true);
switch($isprivé):
case oui:
//génération des champs HTML
genererChampsHTML($optionsSiOui);
case non:
//génération des champs HTML (les mêmes) mais certains en gras
genererChampsHTML($optionsSiNon)
Re: Je débute en POO, comment commencer?
Posté : 27 févr. 2012, 11:49
par zeus
// true = champ en gras
$optionsSiOui = array('champ1' => false, 'champ2' => true);
$optionsSiNon = array('champ1' => true, 'champ2' => true);
switch($isprivé):
case oui:
//génération des champs HTML
genererChampsHTML($optionsSiOui);
case non:
//génération des champs HTML (les mêmes) mais certains en gras
genererChampsHTML($optionsSiNon)
Encore mieux :
// true = champ en gras
$options = ($isPrive === "oui") ? array('champ1' => false, 'champ2' => true) : array('champ1' => true, 'champ2' => true);
genererChampsHTML($options);
Re: Je débute en POO, comment commencer?
Posté : 27 févr. 2012, 13:24
par Texicitys
Merci beaucoup, je vais regarde ça.. Le problème est aussi que les champs ne sont pas dans le même ordre si c'est un doc public ou privé (enfin, 1 champs change).
Et pour ce qui est de la vérification du formulaire?
Merci beaucoup
Re: Je débute en POO, comment commencer?
Posté : 27 févr. 2012, 16:44
par mere-teresa
Ben même technique pour la vérification du formulaire.
Re: Je débute en POO, comment commencer?
Posté : 29 févr. 2012, 16:46
par Mazarini
J'ai l'habitude (mauvaise ?) d'utiliser des objets pour les paramètres de mes fonctions à la manière des records de certains langages. Je garde une logique fonctionnelles à ces objets comme "personne", "news"... Ca permet de passer un unique paramètre à la fonction au lieu de plusieurs et il est plus facile d'ajouter une propriété à l'objet qu'un paramètre à une fonction appelée à plein d'endroits.
J'utilise aussi les objets pour regrouper des fonctions (sous forme statique).
Re: Je débute en POO, comment commencer?
Posté : 29 févr. 2012, 19:54
par moogli
Un objet "personne" qui décrit. Une personnne , un objet news qui décrit une news, ça ne me paraît trop bête.
D'ailleurs si l'on modélise les applications (avec ce genre de chose entre autre) c'est que ça doit être bien
C'est une bonne pratique, que tu peux entre à toute l'application (pour la
Démarche de modélisation y a celle prosé par Craig larman. Un peu verbeuse voir beaucoup mais semble complète ).
@+
Re: Je débute en POO, comment commencer?
Posté : 01 mars 2012, 10:56
par Mazarini
Je voulais souligner que l'on pouvait faire de l'objet sans s'embêter avec toute la théorie pour commencer.
Lorsque l'on commence par créer un objet comme "personne" et qu'on l'utilise comme paramètre des fonctions, on se rend compte rapidement que c'est pratique et que ca permet de limiter les variables globales. On en voit rapidement l'intéret et ca limite l'aspect fumeux qui fait peur.