CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Fonctions "dynamiques" (Doctrine)

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
Harmo___
Harmo___
Niveau 8
27 mars 2014 à 20:44:51

Hello à tous ! :)

J'ai une question, par simple curiosité qui me trotte dans la tête, c'est ni un problème, ni un bug, mais ça m'intrigue pour ma culture personnelle. :o))

J'utilise Doctrine depuis quelques temps dans mon framework php perso, et j'avoue que je comprends pas comment c'est possible en php, par exemple, j'ai une table Objet, avec un champ Monchamp que je déclare dans ma classe Doctrine_Table comme il faut.
Et je peux ensuite appeler une fonction FindByMonchamp("valeur") pour récupérer mes objets.

Je me demande juste comment c'est foutu, sachant que ça marche avec n'importe quel nom de champ. J'ai jamais rien vu de tel en php et ça m'intrigue. ^^

Harmo

lisarael
lisarael
Niveau 13
27 mars 2014 à 20:51:36

Hey,

Je ne connais pas le code de Doctrine (que tu peux consulter toi-même en ligne), mais à priori, ils se basent probablement sur les méthodes magiques : http://be2.php.net/manualual/fr/language.oop5.magic.php

Bonne lecture :)

Harmo___
Harmo___
Niveau 8
27 mars 2014 à 21:02:48

En effet, ça m'a l'air d'être la méthode magique __call() dont se sert doctrine ^_^
J'avoue que je connais pas assez ce genre de méthodes magiques, et c'est pourtant puissant, la preuve :o))

Merci, j'ai appris quelque chose aujourd'hui \o

lisarael
lisarael
Niveau 13
27 mars 2014 à 21:16:15

C'est très puissant quand c'est bien utilisé, oui.

Quand je faisais encore du php, j'avais développé mon propre ORM, que je voulais entièrement dynamique : le principe, c'est que l'ORM en question récupérait de lui-même la structure de la db et générait les classes en questions, avec propriétés et méthodes magiques.
C'était puissant et très agréable à utiliser, et très performant grâce à un bon gestionnaire de caching pour les structures de données.

Le code doit encore dormir quelque part sur un disque dur... :)

vava740
vava740
Niveau 10
28 mars 2014 à 07:45:28

lisarael: L'ORM de Kohana fonctionne comme tu le décris, c'est vrai que c'est plutôt sympa à utiliser quand la BDD existe déjà, les objets sont dispos sans rien avoir à faire (ou juste déclarer un tableau associatif de trois lignes pour les relations). :bave:

Mais le truc que j'adore avec Doctrine, c'est au contraire le fait que ce soit centré sur les entités plutôt que sur la BDD ; on peut recréer toute la BDD d'après la définitions des entités, et mettre à jour le schéma automatiquement après avoir fait des modifications sur les entités !

lisarael
lisarael
Niveau 13
28 mars 2014 à 13:39:42

vava740 > Chou Vert & Vert Chou : les deux approches se valent, ça dépend vraiment des habitudes. :)

Harmo___
Harmo___
Niveau 8
29 mars 2014 à 12:53:10

Moi perso, avec Doctrine, j'écris mes classes de définitions, et après, je lance mon script de création de BD et de tables. ^^

D'un sens ou dans l'autre ouais, ça revient au même, mo je préfère modifier des classes et relancer mon script, plutôt que de m'embêter à modifier à la mano mes tables dans phpmyadmin :o))

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware