Recherches OO sur PHP - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Recherches OO sur PHP (/showthread.php?tid=6054) Pages :
1
2
|
Recherches OO sur PHP - qwarnant - 27-03-2012 Bonjour à tous, Dans le but d'améliorer mes connaissances du PHP, je continue à explorer les concepts OO de ce langage très vaste. Dans l'immédiat, je réalise un petit framework, qui n'est pas destiné à une mise en production pour l'instant. Je m'en sers juste pour apprendre. J'ai appris qu'il y avait une classe d'introspection, similaire à celle de Java. Malheureusement, il n'existe pas d'objet "Class" en PHP. Le type obtenu lors d'un get_class() n'est pas un type Class, ce qui m'ennuie fortement. J'ai donc voulu créer une classe représentant cet objet. J'ai fait un mapping des méthodes d'introspection dessus, je voulais vous demander ce que vous en pensiez. Je continuerai à poster des bouts de code, tout au long de mes recherches. Code PHP :
Merci d'avance pour votre aide à tous ! RE: Développement d'un petit framework dans un but de recherche - srm - 27-03-2012 C'est quoi un objet Class ? Pourquoi tu en as besoin ? RE: Développement d'un petit framework dans un but de recherche - niahoo - 27-03-2012 Je comprends pas comment on s'en sert de ton truc ? Pour l'instant je vois juste que quand tu appelles une méthode sur ton objet ça appelle la même méthode sur la Reflexion Class. donc autant appeller celle de la reflexion class direct. Le paramètre de ton constructeur n'est utilisé nulle part. La dernière fois tu nous refaisais java en PHP et là tu part sur le même chemin on dirait. Tu connais python ? c'est super sympa côté introspection/réflexion. RE: Développement d'un petit framework dans un but de recherche - qwarnant - 27-03-2012 Bonjour, L'utilité de mon travail n'est pas de fournir un framework à des utilisateurs, juste de faire des recherches sur l'OO en PHP. Java étant le seul langage "tout objet" que je connais, j'essaye de faire des comparaisons. J'essaye simplement d'uniformiser les comportements de différentes classes. Conceptuellement, je trouve plus intéressant de faire appel à un objet de type Class qui est le sommet de la hiérarchie OO pour utiliser l'introspection, et ne pas utiliser une classe à part. Toutes les méthodes liées à une classe pourront être appelées sur un objet de type Class, ce qui uniformise toutes les méthodes liées à la classe. La classe n'est pas terminée, donc s'il y a des choses inutilisées, c'est pour cela ;-) Je vous présente la classe AppConfig qui permettra de charger une configuration particulière pour votre application. Je vais utiliser la fonction de parsage des fichiers .ini, l'équivalent des .properties en Java. Ca permet d'uniformiser la manière de faire les paramètres de configuration d'une application. Code PHP :
La classe d'implémentation : Code PHP :
Ces classes sont très loin d'être terminées, comme je vous dis, je fais des recherches. Cordialement RE: Développement d'un petit framework dans un but de recherche - Hideaki - 27-03-2012 Je trouve que le titre de ton message n'est pas adapté : "Développement d'un petit framework dans un but de recherche" et framework de quoi ? Pour un développement MVC, 3 ou n-tiers, etc ? Sinon ton objet ne sert pas à grand chose ici, surtout comme le dit justement niahoo, tu fais une réflexibilité sur ta classe GoldFish_Core_Natives_Class. Ne cherche pas à appliquer les concepts ou les outils de java (ou autres langages) à du php, tu n'y arriveras pas du moins pas entièrement. Je ne connais pas ton niveau en php, mais commence par savoir bien manipuler et comprendre les frameworks existant au lieu de créer ton framework même si ne n'est que pour "tester". Si tu étudies les sources de framework open source, tu trouveras sans doute ton bonheur après libre à toi d'être créatif. RE: Développement d'un petit framework dans un but de recherche - srm - 27-03-2012 Donc tu fais encore un truc inutile, la classe réflection fait très bien son boulot Si tu veux t'amuser avec les possibilités d'un langage Quent, utilise le Scala, tu vas t'éclater RE: Développement d'un petit framework dans un but de recherche - niahoo - 27-03-2012 """Toutes les méthodes liées à une classe pourront être appelées sur un objet de type Class, ce qui uniformise toutes les méthodes liées à la classe.""" J'ai pas compris ! RE: Développement d'un petit framework dans un but de recherche - qwarnant - 27-03-2012 (27-03-2012, 01:12 PM)Hideaki a écrit : Je trouve que le titre de ton message n'est pas adapté : "Développement d'un petit framework dans un but de recherche" et framework de quoi ? Pour un développement MVC, 3 ou n-tiers, etc ? J'ai étudié plusieurs frameworks comme Symfony, Zend, CodeIgniter et CakePHP. En les connaissant, je voudrais justement essayer de rassembler différents avantages, uniquement dans un but de développement et de recherche. (27-03-2012, 01:19 PM)oxman a écrit : Donc tu fais encore un truc inutile, la classe réflection fait très bien son boulot J'avoue que la syntaxe devient vite lourde ... Bon, je vais abandonner l'idée du Class ... J'utiliserai la classe d'introspection de PHP, simplement. (27-03-2012, 04:02 PM)niahoo a écrit : """Toutes les méthodes liées à une classe pourront être appelées sur un objet de type Class, ce qui uniformise toutes les méthodes liées à la classe.""" Je voulais dire qu'il est plus logique d'utiliser les méthodes d'introspection sur un objet de type "Class", tout au dessus de la chaîne d'héritage, plutôt que de faire ça sur une classe "à part". Ici la classe ReflectionClass est plutôt considérée comme une classe utilitaire... Merci de me consacrer du temps en tout cas. RE: Recherches OO sur PHP - qwarnant - 28-03-2012 Dans mes recherches OO, j'ai découvert qu'un système PHP (pour vous faire plaisir et ne pas me laisser tenter par le Java iffle nommé Pimple pour l'injection de dépendance. Il s'utilise comme suit : Code PHP :
Et utilisation : Code PHP :
Les classes à instancier pour un type défini de classe peuvent être paramétrées avec des fichiers YAML. Qu'en pensez-vous ? RE: Recherches OO sur PHP - srm - 28-03-2012 https://github.com/symfony/DependencyInjection Utilise plutôt ça si tu veux utiliser un système d'injection de dépendance. |