PhpMyObject teck leader
http://pmo.developpez.com
La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
J'ai eu le même problème. Malgré que je comprenais les exemples j'avais eu du mal à passer en objet. C'est une vue de l'esprit que j'ai mis quelque années à comprendre.
D'ici peut, il je vais faire un article sur les collections d'objets avec PHP. Peut être que ça va te permettre de comprendre un peut le principe.
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
merci beaucoup, faut dire que s'y mettre c'est facile
Mais bien comprendre les rouages prend beaucoup de temps surtout si les objets s'empile pour se retrouver avec une malle bordélique
PS: c'est mon cas faut dire cela fais quelque temps que je me prend la tête sur mes class
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
Le secret c'est de bien comprendre ton projet. C'est à dire que tu as bien isoler un peut "les personnages" je parle de personnage dans le sens ou un programme fait quelque chose, il y a des points clés. Exemple :
Un forum. Je dirais que les personnages nécéssaires pour faire un forume sont en gros:
Une catégorie, un topic, un utilisateur. Il peut en avoir d'autres. Je devrais pas dire cela mais quand tu conçois tes tables SQL tu c'est la même approche. Chaque table représente en faite un objet. En gros mais c'est pas toujours vrai.
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
oui oui j'ai bien compris le "personnage" de mon projet, j'essaie de créer un système complet pour un site utilisant des class bien distinct à des tâches précise.
exemple j'ai écris une class image permettant de travailler uniquement sur la génération d'une galerie comprenant ainsi d'autre class travaillant ensemble .
Sans donnée de détail le travail avance bien mais comme dans la vie jamais sans embûche
Une fois mon projet complètement fonctionnelle, je pourrai prendre des vacances et ré-utiliser celui-ci dans d'autre implémentation sans me prendre la tête .
Pour conclure que la POO est super pratique ce qui me pouce à étudier, comprendre l'objet et s'en faire un allier de taille.
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
Bonjour,
Est-ce que vous avez des exemples de script comme livre d'or ... entierement programmer avec la POO ?
Merci
Je viens de lire un grand paquet de sujets de discussion sur le php objet et la poo, sur ce site et sur d'autres, j'ai lu les tutos sur la poo, les remarques sur php 5, ...
Je sens bien qu'il y a des choses a faire avec la poo, je sens bien que ca me faciliterait la vie mais franchement j'arrive pas a comprendre. En fait je n'arrive pas a voir l'avantage et je crois que c'est le probleme de la majorité des gens qui ne s'y sont pas encore mis. Alors tous les exemples que vous donnez, c'est tres bien, mais c'est tres abstrait, les explications sont éparses et toutes fouillies, je n'ai rien lu qui puisse m'aider a débuter en objet, principalement avec php dans mon cas.
Alors oui je suis issu du procédural, meme pire, puisque j'ai commencé à programmer en GWBasic, on était meme pas encore au procédural, on avait des numéros de ligne... Et j'ai travaillé dans divers environnements, sgbd, sgbdr, pascal, foxpro, php.
Mais mes programmes ont toujours été clairs, documentés, nommés d'une facon "identique" depuis des lustres, incluant le nom du fichier qui contient la fonction dans la fonction (par exemple je ne vois pas ou c'est plus clair de voir img::exist() que ImgExist() franchement c'est strictement la meme chose... Mais bon), mes fonctions classées et rangées dans des fichiers de procédures classés dans un dossier spécifique, nommés de manière explicite...
Et tous les cours que j'ai trouvé se ressemblent tous. Les auteurs partent du principe que l'on a leur connaissance, et ils vous décrivent les objets, les classes, les héritages, serialize() unserialize() et hop! Ben moi je lis, je comprends les mots qui sont devant mes yeux, mais franchement personne n'a réussi a me donner envie de chercher plus loin dans ce que j'ai lu...
Ce qui ne m'a pas empeché de chercher plus loin, mais franchement je n'arrive pas. Et c'est quand meme le paradoxe, je voudrais apprendre ce truc, parce que je suis sur que ca peut m'etre très utile (et je parle pas ici de poo a outrance) mais j'ai beau lire et relire les cours que j'ai imprimé, je comprends pas l'interet! J'y arrive pas!
Auriez vous des url quelque part avec des explications de la poo (spécialement au travers de php 5) ? Des sites ou il y a des explications claires, des exemples plus concrets que j'ai une porche: voiture et elle peut faire des trucs : demarrer() et arreter()? Parce que les exemples choisis sont souvent cucu, ce qui n'aide pas à la compréhension...
Ou effectivement des petits exemples, clairs et documentés pour se rendre mieux compte?
l'intérêt principale de la POO est de fournir des "cadres" qui permettent de structurer son code de façon à optimiser la maintenance du code
quand je lis ça j'ai l'impression que tu as déjà beaucoup d'expérience dans la structuration du code et donc si tu ne vois pas ce que peut t'apporter la POO c'est normal puisque tu en fais déjà un peu sans le savoir, donc tu as raison, ça ne va pas t'apporter une aide énorme
je pense que à ton niveau la POO peut surtout t'apporter une aide pour comprendre le code d'une autre personne parce que ce que tu classais dans un répertoire était peut-être appelé "module" ou "bibliothèque" par quelqu'un d'autre. Hors en POO, une classe est une classe pour tout le monde et donc ça aide à travailler et à construire à plusieurs.
Bonsoir ;
voila déjà 2/3 mois que je m'essaye au php orienté objet et j'ai lu un tas de truc, que ce soit extrait de : "tutos", d'ebooks, de billets, de cours etc sur la notion de programmation orienté objet. Cependant, ce qui me manque, c'est plus une référence un modèle : les notions de base d'objet sont une chose, c'est pas vraiment dur à comprendre. Mais la mise en application c'est vraiment pas la même.
Pour mes premières tentatives j'utilisais bien la notion de classe et d'encapsulation. Au final ca ressemblait plus à une bibliothéque de fonction que j'utilisais au petit bonheur la chance à l'aide de mon constructeur. Bref c'était de l'objet pour moi, j'avais ma classe, je l'instanciais, elle faisait son travail et me renvoyait ma page. Or dans la logique, c'était encore du procédural...
Puis vient le moment ou j'utilisais l'heritage, les classes et methodes abstraites etc...
Même si pour le moment j'utilise des notions qui semblent fondamentaes pour la programmation orienté objet, j'ai toujours cette impression de "grosse biblio" utilisé au petit bonheur la chance.
Tout ca pour dire :
Quelqu'un aurait t il un projet personnel / opensource, achevé / inachevé, en php / asp ou tout langage destiné à rendre dynamique une page web, afin de montrer cette notion qui est l'orienté objet.
Cordialement ; Martin.
Salut,
Pour ma part, j'ai vraiment bien compris l'intérêt de la POO le jour où j'ai dû bosser sur un projet d'envergure, avec un système relativement complexe qu'il a fallu modéliser.
On s'est bien cassés la tête lors de la modélisation (nous avons utilisé UML), mais le passage ensuite de la modélisation (théorie) à la programmation (réel) a été très facile. Ensuite, ça a grandement facilité l'évolution du produit et sa maintenance.
Avec du procédural, ça aurait été d'une autre complexité (et je parle en connaissance de cause, ayant bossé sur des gros projets en procédural et même en mode "bâtard POO/procédural" en PHP4). Quand tu travailles au sein d'une équipe de 10 à 15 développeurs ayant chacun la charge d'un ou plusieurs modules pendant plus d'un an, tu vois vite les avantages de la POO.
Gilles
En effet, il a l'avantage de permettre à une équipe de travailler ensemble. En procédurale ça devient très difficile.
Seul défaut de la POO qui en est pas en réalité. C'est de tomber sur quelqu'un qui pense savoir coder avec des classe mais n'a aucune notion d'objet. Je suis tombé sur ce genre de gugus et ça fait peur quand vous voyez le code. En faite, les classes sont des sacs à fonctions. Le pire que j'ai vu c'est une classe dite "Mère" qui faisait tous et n'importe quoi. 3000 lignes bien compressé. Avec de tout dedans. Des requêtes dans tous les sens, du code HTML hors balise PHP mais que la classe englobe. Bref, je supporte pas ces charlôts. Désolé de ce vocabulaire mais ces personnes me foute un stress incroyable .
Je me rappelle que j'avais passé un entretient et le mec avait l'air intéressé par mes compétences Il a fait l'erreur de mon montrer le code source lors de l'entretient. J'ai dis que c'était pas possible, je pouvais pas travailler avec ce genre de chose. Que je risque de regresser et ça je ne sais pas faire. Qu'il fallait qu'il sorte un ouvrage chez Eyrolles s'il est sur de sont organisation du programme.
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
Salut, je me joins à la discussion,
Faire une application en PHP objet demande plus de ressources, augmente le temps d'exécution... et j'ai souvent lu ce genre de reproche.
Et, oui, effectivement, c'est entièrement vrai.
Mais c'est aussi entièrement vrai que le projet sera beaucoup plus facile à maintenir s'il est orienté objet (s'il est bien fait aussi hahaha).
Un framework implémentant bien le modèle MVC permet d'être beaucoup plus efficace et organisé.
Bref, faire de l'objet en PHP à un coût, mais il en vaut largement la peine dès que le site est plus complexe qu'un simple systeme de news ou autre application basique.
@berceker united : Effectivement ce genre de gar fait peur
Moi aussi sur des projets, j'ai vu des gens un peu arrache sur le code.
Cependant je vois souvent des chiffres comme ça, genre c'est dément, pour une classe, mais moi j'ai une classe qui fait bien 1500 lignes, et qui va vers pire, il s'agit de la classe de 'personnage' de mon jeu, et j'ai codé toutes ses actions dans la classe, donc function mangePomme(), function dors() etc... (bon j'image mais y'a l'idée). Je ne vois pas vraiment comment je peux casser cette classe, malgré sa grosseur...
Linio
Comme je ne vois pas ton projet 1500lignes ça va s'il y a des lignes de commentaire, hein !
Par contre, il y a toujours moyen de casser. Dans ton exempl : Pour les methodes que tu as données tu peux imaginer que c'est des actions pour un personnage. Donc avoir une classe Action qui sera utilisé par la classe Personnage. Alors peut être que ça ne sert pas mais au moin tu peux optmiser cette classe et faire en sorte qu'elle soit très optimisé. Tu peux évoluer test actions sur des objets mais ça reste toujours une action (classe hérité). Bon bref, je pense que tu as compris à quoi je voulais en venir.
Pour la classe de 3000 lignes c'est sans commentaire quasiment aucune ligne vide. En gros il faut imaginer que chaque methode de cette classe etait une grappe de code procédurale.
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
Oui non c'est largement commenté (1 ligne sur 4 en moyenne je dirais).
Heureusement, manquerait plus que ça.
Linio
Bah sinon je peux faire enlever le destruct et faire une fonction close() à la place comme ça je déco quand je veux ...
J'ai une question comment je fais pour relier toute mes classes entre elle ? je fais un fichier class.php et je met dedans require("mysql.class.php") ... etc ?
Merci
Non ! tu ne fait jamais d'include ou requiere dans un fichier classe.
Si t'es bien organisé tu devrais pas te poser cette question. C'est à celui qui appelle la classe qui devrait faire se travail. Pour pas te retrouver avec 50 lignes d'include utilise la fonction autoload()
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
Ok genre je fais ça dans mon fichier personne.php par exemple :
??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function __autoload($class) { require $class . ".class.php"; } $personne = new Personne('test','test);
Par contre est-ce que POO + Template ça ralentit un peu le script ?
Merci
En fait, la fonction autoload doit être dans un fichier qui lui sera appelé tous le temps. Ainsi, il chargera toujours ton objet.
Juste pour être cohérant. J'en suis sur que t'es fichier classe sont déjà dans un répertoire "classe", je me trompe ?
Alors pourquoi tu ajoutes *.class.php ? Surtout que maintenant avec l'autoload tu n'as plus à te préocupé du cela
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
Oui ils sont dans un dossier "class".
Le problème je ne sais pas ou mettre cette fonction alors ... puisque aucun fichier serra tout le temps appelé sauf les classes ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager