malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
20 mai 2007 à 08:58
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
23 mai 2007 à 19:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 23 mai 2007 à 19:46
Pardon j'ai confondu l'interface d'usinage est une interface en POO...
L'interface en POO c'est un modèle strict auxquels devront se conformer les classes l'implémentant. cela sert à être plus carré, déjà...à rester logique, et cela aide évidemment les développeurs à savoir comment coder telle "fonctionnalité".
Tu veux coder une classe utilisant les méthodes itératrices, tu implémentes Iterator, et tu es obligé d'implémenter les méthodes nécessaires pour cet itérateur : valid, next, current, key.
C'est une structure.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 23 mai 2007 à 18:03
Cela permet de n'avoir qu'une seule interface pour appeler n'importe quel "pilote".
On a pas à instancier la classe mssqlDB, on passe par l'interface d'usinage, et on lui dit qu'on veut une db de type mssql. Elle gèrera les erreurs (alors que dans le premier cas, si le pilote, et donc la classe mssxqlDB n'existe pas, tu vas instancier une classe non existante, donc une erreur non gérée par ton code : c'est le debugueur interne de PHP qui va réagir.)
Cela perlet aussi de gérer d'autres chose su passage : une collection d'objets, des singletons, des multitons, etc etc...
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 23 mai 2007 à 10:52
bon, j'ai bien jeté un oeil sur tes liens; ,qis je n'arrive pas a comprendre à quoi sert de faire une interface. Pourrais tu m'orienter un peu s'il te plait ? De ce que j'ai compris, dans l'interface, tu va mettre les fonctions et les paramètres qu'une autre classe (qui implementera l'interface) utilisera. Mais à quoi ca sert de spécifier quelles fonctions utiliser ? J'ai vu par la suite que c'était pour une raison d'interoperabilité, mais je ne comprends pas trop le rapport là. Si tu (ou quelqu'un) pouvait m'éclairer sur la chose, je lui en serai grandement reconnaissant ! (je ne demande pas forcément une explication de deux heures, juste des bons liens seront parfaits)
Pour info j'ai cherché sur Wikipedia, mais l'explication de interface ne m'a pas eclairé, j'ai regardé tes liens Malalam, et pareil. J'ai aussi cherché sur Google, mais rien. (Il n'est pas exclu que j'ai mal cherché ! :) )
Merci de votre aide
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 23 mai 2007 à 10:40
ok !! merci beaucoup ! :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 22 mai 2007 à 18:32
Itérateurs:
http://www.php.net/~helly/php/ext/spl/ (et un sympathique tuto de FhX sur PHPCS, et quelques uns de mes codes dernièrement -cherche dans ma liste de code, il y a des scripts aynat trait à la SPL (Standard PHP Library)
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 21 mai 2007 à 12:24
Yop !
Malalam, qu'est-ce que l'usinage et les itérateurs (dans ce cas ?) ??? ou donne voir une url d'explications si possible (j'en cherche, mais pour le moment j'ai rien trouvé la dessus !)
Ensuite, Arkko; par rapport à ton modele, je suis d'accord avec Malalam, c'est peut-être mieux d'avoir une classe par table (voir deux si ca fait trop), avec une classe abstraite de base de donnée. Bon apres, c'est mon point de vue, et je ne l'impose pas ;).
J'ai posté ma propre vision de la chose recement, si tu veux avoir mon point de vue sur la chose :
http://www.phpcs.com/codes/TENTATIVE-APPROCHE-MODELE-CRUD-UTILISATION-CLASSE-SGBD_42650.aspx
apres je pense que ces deux modeles sont vraiments quelque chose d'interessants à creuser pour optimiser la structure des codes :)
voila voila !
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 20 mai 2007 à 08:58
Hello,
merci de mettre des mots clefs.
Ensuite...as-tu réflêchi aux réelles améliorations qu'apporte un tel modèle ? Du design pattern, ça ne se fait pas à tors et à travers, parce que c'est à la mode dans les écoles d'info...
A mon goût, ton exemple comporte beaucoup trop de code redondant, trop de fichiers (je préfère 1 fichier dans un tel cas...ou 2), et trop de code tout court. Et penses aux spécificités de PHP5, comme l'abstraction, l'usinage, les itérateurs (filtre notamment, je pense à la lecture) etc.
23 mai 2007 à 19:46
L'interface en POO c'est un modèle strict auxquels devront se conformer les classes l'implémentant. cela sert à être plus carré, déjà...à rester logique, et cela aide évidemment les développeurs à savoir comment coder telle "fonctionnalité".
Tu veux coder une classe utilisant les méthodes itératrices, tu implémentes Iterator, et tu es obligé d'implémenter les méthodes nécessaires pour cet itérateur : valid, next, current, key.
C'est une structure.
23 mai 2007 à 18:03
On a pas à instancier la classe mssqlDB, on passe par l'interface d'usinage, et on lui dit qu'on veut une db de type mssql. Elle gèrera les erreurs (alors que dans le premier cas, si le pilote, et donc la classe mssxqlDB n'existe pas, tu vas instancier une classe non existante, donc une erreur non gérée par ton code : c'est le debugueur interne de PHP qui va réagir.)
Cela perlet aussi de gérer d'autres chose su passage : une collection d'objets, des singletons, des multitons, etc etc...
23 mai 2007 à 10:52
Pour info j'ai cherché sur Wikipedia, mais l'explication de interface ne m'a pas eclairé, j'ai regardé tes liens Malalam, et pareil. J'ai aussi cherché sur Google, mais rien. (Il n'est pas exclu que j'ai mal cherché ! :) )
Merci de votre aide
23 mai 2007 à 10:40
22 mai 2007 à 18:32
http://fr.php.net/manual/fr/language.oop5.patterns.php
Itérateurs:
http://www.php.net/~helly/php/ext/spl/
(et un sympathique tuto de FhX sur PHPCS, et quelques uns de mes codes dernièrement -cherche dans ma liste de code, il y a des scripts aynat trait à la SPL (Standard PHP Library)
21 mai 2007 à 12:24
Malalam, qu'est-ce que l'usinage et les itérateurs (dans ce cas ?) ??? ou donne voir une url d'explications si possible (j'en cherche, mais pour le moment j'ai rien trouvé la dessus !)
Ensuite, Arkko; par rapport à ton modele, je suis d'accord avec Malalam, c'est peut-être mieux d'avoir une classe par table (voir deux si ca fait trop), avec une classe abstraite de base de donnée. Bon apres, c'est mon point de vue, et je ne l'impose pas ;).
J'ai posté ma propre vision de la chose recement, si tu veux avoir mon point de vue sur la chose :
http://www.phpcs.com/codes/TENTATIVE-APPROCHE-MODELE-CRUD-UTILISATION-CLASSE-SGBD_42650.aspx
apres je pense que ces deux modeles sont vraiments quelque chose d'interessants à creuser pour optimiser la structure des codes :)
voila voila !
20 mai 2007 à 08:58
merci de mettre des mots clefs.
Ensuite...as-tu réflêchi aux réelles améliorations qu'apporte un tel modèle ? Du design pattern, ça ne se fait pas à tors et à travers, parce que c'est à la mode dans les écoles d'info...
A mon goût, ton exemple comporte beaucoup trop de code redondant, trop de fichiers (je préfère 1 fichier dans un tel cas...ou 2), et trop de code tout court. Et penses aux spécificités de PHP5, comme l'abstraction, l'usinage, les itérateurs (filtre notamment, je pense à la lecture) etc.