|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Inscription : février 2007 Messages : 117 ![]() |
Bonjour,
J'explique mon cas ... Pour gagner du temps sur le moyen / long terme, j'ai envie de mettre en place un système qui me permettrait de "rapidifier" la création de formulaire. Je voulais m'orienter vers la POO. Voici un cas très simple : Code :
Code :
Code :
Votre avis ? |
||||||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 117 ![]() |
J'ajoute que mon post précédent est un exemple simpliste de ce que je veux faire ...
Le but final serait de pouvoir créer des formulaires complets facilement, par un tel système ... |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Dans ton cas très simple, aucun intérêt. Si tu ne vois pas d'intéret à utiliser une solution, pas la peine d'investir du temps dessus.
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() |
bêh pour ce que tu veux faire, il faut dire qu'il n'y a pas de différence a utiliser les classes ou les fonctions. Sinon il faut dire que la POO offre d'enormes avantages notamment l'encapsulation, la reutilisabilité, etc ...
Si il te faut necessaire faire un choix, je te propose les classes
__________________
Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789 |
|
|
00
|
|
|
#5 | ||||||||
|
Membre éclairé
![]() |
Pour ton exemple, l'utilité serait serait que tes fonctions sont facilements reconnaissables, ainsi tu aurais :
Code :
La POO te permet aussi de jouer avec des constructeurs / destructeurs (PHP5), tu aurais donc tout simplement besoin de faire : Code :
$form = new Form; (__destruct() sera appelé à la fin de ton script. Si tu souhaites l'appeler avant, tu peux détruire l'objet simplement avec unset($form);) De plus admettons que demain toi ou un autre développeur souhaite ajouter des possibilité à cette classe sans chercher partout où ajouter quoi, il suffirait de faire : Code :
Code :
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français. Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP. |
||||||||
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Inscription : février 2007 Messages : 117 ![]() |
Un grand merci pour cette grande explication ;-)
Ma question avait bien entendu un sens "ironique", ne conaissant pas encore suffisament les classes. Je vois bien que ce système doit être utile mais pour reprendre ton dernier exemple, je pourrai tout aussi bien simplement créer une fonction : Code :
Ca donnerait tout de même le résultat voulu ... Et c'est la que je me demande si je dois me lancer dans la construction en classe ou simplement dans l'utilisation des fonctions ;-) Merci en tout cas pour ces éclaircissements ! |
||
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
non ça ne donnera pas la meme chose puisque justement, ce qu'on t'explique c'est qu'avec la classe, tu aura la balise <form> qui encadrera automatiquement ton input de pars l'heritage (le extends).
|
|
|
00
|
|
|
#8 | |||||||||
|
Membre du Club
![]() Inscription : février 2007 Messages : 117 ![]() |
Citation:
Code :
Code :
Code :
Ou dois-je tout de même instancier la classe form +/- de cette façon : Code :
|
|||||||||
|
|
00
|
|
|
#9 | ||||||||
|
Membre éclairé
![]() |
Effectivement tu peux utiliser des fonctions, pour ce que tu veux faire ça aurait le même effet visuel. Cependant la façon de penser est différente, en programmant en POO tu considères les éléments comme des objets. Ainsi ton formulaire est un objet, ta connexion à la base de donnée est un objet, etc ...
Pourquoi préférer l'objet aux fonctions ? Pour ces raisons principalement :
Au début tu auras du mal a voir l'intérêt de la POO (pour avoir eu le même raisonnement que toi au début - a savoir "mais à quoi sert la POO alors que je peux le faire avec des fonctions ?" - je peux te garantir que pour peu que tu t'intéresse un minimum à la POO tu vas pas tarder à être converti et à tout faire en POO Pour répondre à ta question sur le formulaire, ce qui se trouve dans la fonction [b]__construct()[b] est appelé automatiquement lors de l'instance de l'objet ($form = new Form('paramètres')
__________________
Testez le forum Fire Soft Board, un forum libre, gratuit et français. Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP. |
||||||||
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 117 ![]() |
Encore un super gd merci ;-)
Je crois que je vais m'y mettre et essayer de découvrir un max. sur la POO car j'avoue que j'avais laissé cela très loin derrière moi :-) |
|
|
00
|
|
|
#11 | ||||
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Ta classe input héritant de la classe form, lorsque tu appel la classe input (son constructeur), automatiquement, tu appel le constructeur de la classe parent. De meme pour le destructeur. Mais le constructeur parent nécéssitant des paramètres, je te conseil de l'appeler explicitement dans la classe fille :
Code :
Code :
|
||||
|
|
00
|
|
|
#12 | ||
|
Membre éclairé
![]() |
J'ai une petite question...
Je vous vois parler de méthodes __construct() , mais pourquoi vous n'utilisez pas la forme classique qui est d'appelé le constructeur par le nom de la class? genre: Code :
|
||
|
|
00
|
|
|
#13 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Car appeler le constructeur du nom de la classe est, comme le fait de faire précéder les variables de la classe par le mot "var", la syntaxe de classes de PHP4.
PHP5 à changer cela en créant les méthodes magiques __construct, __destruct et j'en passe. Et en remplace "var" par des mots précisant les droits de la variable (public, private, protected) |
|
|
00
|
|
|
#14 | |
|
Membre éclairé
![]() |
Citation:
|
|
|
|
00
|
|
|
#15 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Toutes les fonctions commençant par __ sont ce qu'on appel des méthodes magiques (tu n'a pas a les appeler explicitement) :
__construct __destruct __get __set __unset __call __toString renseigne toi elles sont intéréssantes |
|
|
00
|
|
|
#16 | |||
|
Membre éprouvé
![]() Inscription : février 2007 Messages : 475 ![]() |
Citation:
Il vaut mieux privilégier __construct, comme on peut le voir dans cet exemple, qui mélange l'ancienne et la nouvelle dénomination: Code :
|
|||
|
|
00
|
|
|
#17 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
__________________
Get your motor runnin' Head out on the highway... |
|
|
|
00
|
|
|
#18 | |
|
Membre éprouvé
![]() Inscription : février 2007 Messages : 475 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com