|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 662 ![]() |
Pour php 5 je suis pas super avancé donc si je peux avoir un lien vers un exemple de clase statique ca m'aiderait
Sinon j'ai pas vu dans la doc les jours férié.... [Edit] Cette discussion a été déclenchée par : http://www.developpez.net/forums/sho...d.php?t=368192 |
|
|
00
|
|
|
#2 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 722 ![]() |
Définition
Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
10
|
|
|
#3 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 662 ![]() |
Oki merci j'ai compris cette utilisation.
Mais quel avantage de le mettre dans une classe? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : août 2006 Messages : 943 ![]() |
Plus facile à standardiser, à transporter d'une appli à l'autre, plus facile de s'en rappeler (un appel à une classe, un fichier...)
Ha oui, ne pas oublier : il est plus facile à lire une classe, quand il n'y en a qu'une par fichier PHP (Pour l'homme, bien sur). La classe fait tout de suite "pro", et organise mieux la présentation (facilité de lecture, de modification, de maintenance...) Bref, que des avantages !!!! Et puis, l'avantage le plus important : laisser tomber le procédurale, pour passer à l'Objet qui représente l'avenir de PHP....
__________________
Veni Vidi Vici ------------------------- Mes articles : developpez.com ou bien vbview.net ------------------------- Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!! Et aussi : --> pear_manual_fr.chm!!! Ou encore : --> Les tutoriaux & cours PHP de Développez.com ------------------------- |
|
|
00
|
|
|
#5 | ||||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 722 ![]() |
Un autre avantage est de permettre de regrouper les fonctions dans des sortes de namespaces. Cela te permet de féfinir 2 classes différentes avec des méthodes aux noms en commun mais au comportement différent. C'est le principe du design pattern Factory, par exemple :
Code :
Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||||
|
|
10
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : août 2006 Messages : 943 ![]() |
Héhé c'est marrant, je suis en plein dedant
Sauf que ma classe à moi, elle s'appelle FactoryDocument !!!
__________________
Veni Vidi Vici ------------------------- Mes articles : developpez.com ou bien vbview.net ------------------------- Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!! Et aussi : --> pear_manual_fr.chm!!! Ou encore : --> Les tutoriaux & cours PHP de Développez.com ------------------------- |
|
|
01
|
|
|
#7 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 722 ![]() |
C'est un document d'usine (FactoryDocument) ou bien une usine de documents (DocumentFactory) ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
01
|
|
|
#8 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 662 ![]() |
Merci des explications.
C'est vrai que dans un programme java j'arrive a voir l'interet des objets, autant en php j'ai du mal mais bon
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : août 2006 Messages : 943 ![]() |
..Je vois pas ou tu as du mal :
Si tu réalise une application en PHP (même un site Internet...) qui fait plusieurs milliers de lignes de code, il est plus simple de maintenir de l'Objet. Par exemple, en ce moment je suis sur une appli de plusieurs centaines de fichiers PHP (1080 exactement...), en procédurale je ne m'y retrouverai jamais. En plus, au fur et à mesure des évolutions, en procédurale tu dois effacer, réécrire, revenir en arrière, puis en avant pour voir les répercutions, etc.... Depuis le début de mon projet, grace à l'objet, je n'ai effacé AUCUNE ligne de ode, je n'ai fait que faire évoluer mon code en éditant mes classes, sans quasiment toucher au code d'appel. L'objet simplifie le développement, si tu vois l'intéret en JAVA, je vois pas pourquoi tu ne le vois pas en PHP ? L'objet n'est pas réservé qu'au C++ ou au JAVA, il faut voir un intéret général plutot que particulier. Python, Ruby, JavaScript, PHP sont tous des langages Objet. De plus, avec l'Objet tu peux REELEMENT capitaliser ton code (c'est ce que tu veux faire avec tes fonctions, là....), alors que les fonctions procédurales devront toujours s'adapter aux particularités d'un projet. EDIT : sans passer pour un troll, j'oubliais de citer les langages de classe "inférieurs", et de m...... : .NET, C#, ASP etc...
__________________
Veni Vidi Vici ------------------------- Mes articles : developpez.com ou bien vbview.net ------------------------- Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!! Et aussi : --> pear_manual_fr.chm!!! Ou encore : --> Les tutoriaux & cours PHP de Développez.com ------------------------- |
|
|
10
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 662 ![]() |
En fait comme j'ai jamais vu d'exemple de code concret objet en php j'arrive pas a voir ce que ca donne.
Maintenant si je vois un projet et qu'on m'explique le raisonnement peut être que je verrais les choses autrement ;-) |
|
|
00
|
|
|
#11 | |
|
Membre régulier
![]() |
je suis moi même en plein dans le poo en php et je dois avouer que j'ai du mal aussi à réfléchir son site en terme d'objet.
Quel genre de classe trouve t'on souvent dans un site ? Ca serait bien des exemples de code comme le dit zulot. Citation:
|
|
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
Par exemple j'ai créer une classe SQLManager (dispo dans la section Contribuez) qui permet de générer les requêtes , les exécuter et renvoi les résultats sous forme de tableau. Elle détecte aussi les fonctions SQL pour éviter de mettre des quotes aux valeurs, sinon elle les places seule. Pour des requêtes complexes (INNER JOIN et tout le tra la la) elle ne peut pas mais tu peut créer la requete toi même et l'executer quand même, je peut inséré, extraire et mettre à jour avec. Sans les classes à chaque requête il aurait fallu que je mette tout le code pour faire la requete, la lancée , parcourir les résultat pour les mettre dans un tableau final, au final je gagne beaucoup de temps et simplifie le code final.
En gros image que tu dois faire un grooos jeu Lego mais c'est toi qui construit aussi les briques
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
sincèrement, vous aurez beau expliquer, une personne ne va pas forcement comprendre. C'est pas quelque chose de facile à comprendre d'un coup la notion objet surtout après plusieurs années de procédurale. Il faut que la personne code un peut en objet pour commencer à comprendre le principe. Malgré les exemples que vous faites ça n'aide pas forcement. il faut mettre le nez dedans pour avoir la révélation ou faire totalement abstraction à la programmation et faire une comparaison avec ce qui nous entoure dans notre vie car la notion d'objet est partie de là.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
10
|
|
|
#14 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 662 ![]() |
Oui effectivement d'ou la demande.
QQn connait il un projet open source pas trop lourd et bien codé en objet php pour voir ce qu'il font? |
|
|
00
|
|
|
#16 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 662 ![]() |
Mouais je pensais plus a un ptit truc basic pas a une librairie.
Plus un module a rajouter a un site..... |
|
|
00
|
|
|
#17 |
|
Membre du Club
![]() |
Ben moi par exemple, pour me mettre dans le bain de la POO, j'ai programmé l'année dernière une classe pour gérer pratiquement toutes mes pages web.
Actuellement tout ce que je fais qd j'ai un nouveau site à développer, c'est juste changer le design. Ce qui fait que je gagne énormément de tps. Je pense actuellement à mieux structurer la classe parce qu'il faut le reconnaître, lorsqu'on est débutant on a tendance à faire des classes fourre tout mais l'essentiel pour moi était d'oser franchir le gab. C'est fait et je le regrette pas du tout... |
|
|
00
|
|
|
#18 | |
|
Membre habitué
![]() Inscription : octobre 2006 Messages : 50 ![]() |
Citation:
L'objet exige grande rigueur dans l'étape de modélisation et ce n'est pas plus mal. Une application web "objet" nécessite d'étre intégralement conçue avant d'être écrite, c'est encore plus vrai que dans le cas d'un langage procédural. Pour en revenir plus spécifiquement au php5, c'est un langage que j'aborde seulement et je me pose justement de nombreuses questions sur son caractère objet. Quelques-unes en vrac : - Peut-on parfaitement dissocier le php (logique) du html (vue) ? - Peut-on créer simplement des contrôles personnalisés réutilisables à souhait, un système de menu par exemple ? - Quels outils utilser pour faire du php "objet" ? - Y a t'il des bibliothèques de classes disponibles et prêtes à l'emploi qui évitent d'avoir à réinventer la roue ? |
|
|
|
00
|
|
|
#19 | |
|
Invité régulier
![]() Inscription : mai 2003 Messages : 10 ![]() |
Citation:
Pour moi une application qui est intégralement conçue avant la réalisation technique se ferme aux modifications auxquels l'on pense inévitablement pendant le dévellopement ou que l'on pourrait te suggèrer (cf : méthodes agiles de dévellopement). En ce qui concerne tes questions, dans l'ordre je dirais : - il le FAUT, donc c'est oui. - je pense que oui, même si je n'ai jamais essayé. - un éditeur de code, du papier, un crayon et le fichier de référence :p c'est ce que j'utilise (et une tasse de café aussi !) - je pense que pear correspond à ce que tu recherche : http://pear.php.net/ |
|
|
|
00
|
|
|
#20 | |
|
Membre habitué
![]() Inscription : juillet 2003 Messages : 196 ![]() |
Citation:
Slt, http://www.developpez.net/forums/sho...4&postcount=40 |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com