|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 73 ![]() |
Bonjours a tous,
Je souhaiterai savoir s'il est possible d'utiliser l'agrégation/composition comme en java ?! Je m'explique, l'idée serait que le constructeur d'un objet puisse recevoir un autre objet dans sa liste de ses argument ?! Dans l'attente de vous lire, Kazuzu |
|
|
00
|
|
|
#2 | ||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Dans son modèle Objet, PHP ressemble beaucoup à Java (si on oublie toutes les boulettes...) Une composition ou un héritage privé sont bien entendu faisables en PHP, considérons le code suivant: Code :
Code :
force la variable $a à être un objet du type A. Je souhaite ajouter que les fonction magiques __get, __set et __call peuvent servir à implémenter un héritage privé, considérons le code suivant: Code :
De la mème manière, on peut utiliser __call pour appeller des méthodes de A depuis B. La doc sur les méthodes magiques :http://php.net/manual/fr/language.oop5.magic.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||
|
00
|
|
|
#3 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2009 Messages : 73 ![]() |
merci de ta réponse il y a quelques petites choses que je nai pas très bien comprises mais que je prendrait le temps d analyser demain matin.
J'aurai encore 1 question à posé : 1.j ai instancier une matrice : Code :
Code :
|
||||
|
|
00
|
|
|
#4 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Houlà, je crois que tu t'es emmélé es pinceaux.
En PHP, array n'est pas un constructeur d'objet, c'est un type natif - je sais, c'est assez débile de l'avoir fait avec cette signature mais c'est comme ça. En revanche il existe des objets tableaux qui ont le comportement d'un tableau par ailleur - exactement comme en C++ avec la surcharge de l'opétaeur [ ]. En PHP il n'est pas vraiment possible de surcharger les opérateurs, mais PHP est capable de reconnaitre des classes ayant un comportement de type array par leur interface ArrayAccess, de même PHP est capable de traiter des objets comme des fonctions s'ils implémentent la méthode __invoke(). Un petit exemple pratique: Code :
Jettes un oeil du coté de ArrayObject: http://php.net/manual/fr/class.arrayobject.php En PHP les destructeurs servent moins à libérer de la mémoire qu'a fermer proprement des ressources (fichiers, connexion etc.) On peut faire l'équivalent d'un Free simplement en utilisant la fonction unset($var); Sache également que PHP 5.3 intègre un garbage collector, à la mode Java, c'est à dire qu'on sait jamais quand il passe ni qu'est ce qu'il fait En PHP il est rarissime de tomber dans une erreur d'allocation mémoire - une taille mémoire max est définie dans le fichier de conf de php. De toute façon, une fois qu'une requête à été traitée et son retour servi en intégralité, PHP tombe et tous tes objets / ressources font de même. Pour la petite histoire, je travaille actuellement sur un mécanisme de cache capable de palier à cette insuffisance du langage, ça existe dans les framework les plus connus. Une note annexe sur ArrayObject, les gens de chez Zend nous ont gratifié d'une librairie d'objets standards, un petit peu comme la STL mais sans les templates, appelée SPL pour Standard PHP Library. Cette librairie comprends des exceptions, de nouvelles interfaces ainsi que les Iterateur qui jusqu'ici manquaient au langage. Selon moi, ce sont des briques incontournables pour construire une bonne application PHP.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com