MÉDIATHÈQUE PHP MYSQL : ANYTHEK

cs_petifa Messages postés 215 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 10 mars 2014 - 5 mars 2009 à 20:12
gullac Messages postés 2 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 30 mars 2009 - 30 mars 2009 à 21:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49431-mediatheque-php-mysql-anythek

gullac Messages postés 2 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 30 mars 2009
30 mars 2009 à 21:38
Bonjour,

excéllent!!!
merci
cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009
9 mars 2009 à 09:27
salut
je pense que tes problèmes d'accents viennent d'un problème d'importation du fichier sql. As-tu réglé l'interclassement de ta base en utf8 avant d'importer le fichier?

Pour ce qui est de la différence entre '' et "", je pense que l'on ne s'en rend pas compte tant qu'on a pas dépassé plusieurs dizaines de milliers d'entrées, et encore je suis pas persuadé lol mais dans l'absolu c'est vrai qu'il parait que c'est très légèrement plus rapide ^^
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
8 mars 2009 à 14:18
Salut

Bon j'ai résolu mon problème de bdd...

Alors dans un premier temps, des caractères bizarres ("") apparaissent et quand on regarde dans les listes déroulantes, les accents sont remplacés par d'autres caractères (dans ce cas je pense que c'est lié à l'utf8)

Au niveau du code j'ai rien vu de particulier.

Juste une petite chose, '' est plus rapide que "". Enfin c'est ce que j'ai lu plusieurs fois sur le site :)

Sinon bon code j'aime le principe.

Florian
cs_cynix Messages postés 20 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 9 mars 2009
6 mars 2009 à 08:27
Bonjour
Merci pour ces remarques, cela met au clair un certain nombre de doutes que j'avais lors du developpement :)
Je ne savais pas que les implémentations étaient également héritées dans les classes filles, effectivement il n'y a donc plus de raison d'avoir la commande d'implémentation dans toutes les classes.
Pour les getters/setters j'ai utilisé la génération auto de netbeans donc voila je n'ai pas vraiment besoin d'autres methodes et cela fonctionne bien comme ça ^^
quant à la methode __toString, je ne connaissais pas son existence sinon je l'aurai sans doute utilisé, je me doutais qu'une fonction de ce genre existait mais j'ai eu la flemme de chercher j'avoue :)

Je metterai une version mis à jour du code suivant vos conseils

Merci encore ;)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
5 mars 2009 à 23:50
Bonsoir :)

Quelques points et quelque remarques.
Déjà, vous commentez votre code, c'est bien, mais c'est inutile de mettre la mention copyright, author et version pour chaque version. Une seule fois, au début du fichier suffit. (Dans le cas de plusieurs auteurs, mettre plusieurs fois la balise @author, ou les séparer par des virgules suffira largement).

Vous n'utilisez pas les indicateurs de portée pour les fonctions. Je sais que par défaut, ils sont publiques, et que "ce n'est pas nécéssaire, de ce fait, de les mettres". Mais cela ne change rien au code, et ca permet de mieux comprendre le code de manière plus rapide ! :)

Ensuite vous utilisez quelques méthodes magiques (__construct), ce qui est bien, mais plus bas, je vois "function toString". Il existe une méthode magique "__toString ()" qui fasse, en mieux, ce que vous proposez ici.

De plus, faire une méthode __destruct juste pour appeler le parent, ca ne sert à rien. De plus, si on remonte les appels, on finit par voir que la classe Media, au final, ne fait rien, dans ce __destruct...

Ensuite, vous implémentez l'interface DbInteraction dans toute les classes filles de Media ainsi que Media. C'est inutile !
Vous implémentez l'interface dans la classe mère Media, et vous laissez vos classes filles implémenter la fonction.
De plus, dans votre exemple actuel (si j'ai bien compris), la classe media récupere les données dans la table media, la classe fille Video, dans la table video, etc.
Ce qui fait que vous faites plusieurs requêtes sql alors qu'une seule pourrait être faite.

A propos des methodes magiques, vous faites un getCollector/setCollector. Il existe des méthodes magiques __get, __set. Mais peut-être que votre structure prévoyait l'utilisation de méthodes de ce type, ce qui n'engage que vous :)

Voilà pour mes quelques conseils. Mis à part cela, vous avez fait un boulot qui semble intéressant. Reste plus qu'à le tester ! :)

Et dans ce type d'application, ce que je demande toujours :
UNE DEMO !!! Faites nous profiter de votre travail de manière facile et rapidement accessible :)

Bonne continuation !
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
5 mars 2009 à 22:31
Bonsoir

Je n'ai pas eu le temps de tout voir encore...

Mais quelques "petits" problèmes...
Tu appelles interfaces/dbInteraction.php alors que le fichier est interfaces/DbInteraction.php
Dans class/Database.php > function connect() il manque $this->password après $this->user

Voila ce que j'ai vu pour le moment... pas encore pu lancer le site... la base fonctionne pas mais ça vient de ma config.

Bonne soirée

Flo
cs_petifa Messages postés 215 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 10 mars 2014
5 mars 2009 à 20:12
Slt
Ça m'a l'air intéressant comme projet. Je la mettrais sur mon pc quand je pourrais et je te commenterai tout ca.
A vrai dire j'ai aussi fait une "mediatech" mais version Java utilisant des fichiers plutôt que des BD.
Il est sur un site?
Rejoignez-nous