GESTIONNAIRE DE BASES DE DONNÉES

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 18 déc. 2008 à 00:10
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 20 déc. 2008 à 23:03
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/48730-gestionnaire-de-bases-de-donnees

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2008 à 23:03
"Tous les langages modernes actuels sont objets : Python, Javascript, Java, Ruby, et j'en passe."

c'est presque vrai, mais c'est incomplet... ces langages sont modernes car recents, et pas parce-qu'ils sont bien concus (j'ai fait planter ma vm java aujourd'hui...) ces langages n'apportent pas de grande innovations, il suffit de voir que le parseur de php ne permet pas : appel_de_fonction($param)[$index]

ocaml est avant tout fonctionnel avant d'etre objet, et c'est probablement un des langage objet les mieux types.
javascript est avant tout fonctionnel avant d'etre objet (et il est a peu pres aussi mauvais dans les deux domaines :D)
lisp est fonctionnel avant d'etre objet, et c'est probablement un des langages objet les plus puissant...

ensuite, le typage de php ne permet pas de manipuler facilement 50 000 classes comme on pourrait le faire en java (en effet, comme on ne sait pas de quel types sont les choses qu'on manipule, on ne sait pas quelles methodes appeller dessus)

ensuite, parmi les langages que tu as cite, aucun n'est correctement type (python est dynamiquement type, ruby et php sont pire : dynamiquement types + conversions implicites) en java, tu peux provoquer des choses etranges sur les types sans partir tres tres loin (en caml, pour faire un truc louche, faut aller sur du polymorphisme d'ordre sup...)

je suis dsl, mais cote objet,
ruby n'est cool que parce-que son framework est pratique
php n'est pas pratique (un IDE qui gere ca correctement, c'est pas simple a trouver, et les exceptions peuvent parfois lancer des choses vraiment etranges (bugs ?) sur nos objets)
javascript n'est pas pratique pour les memes raisons
java est utile, mais pas innovant

t'aurais cite smalltalk, ca aurait ete plus pertinant... ca a 25 ans, et ils ont le meilleur framework ajax possible...

ce qu'il manque au php pour qu'il soit utilisable :
un ide qui calcule de l'inference (histoire qu'il sache completer et qu'on puisse voir de quels types sont nos variables)
pouvoir nommer une variable static ou non-static avec le meme nom (comme c'est pas les memes conventions de nommages, ca devrait-etre possible, et c'est meme possible, sauf qu'il faut etre sale pour le faire : en effet, pour que ca fonctionne, on ne DOIT PAS declarer cette variable...)
pouvoir stoquer des choses en sessions ou sur le serveur (en partage par tout les clients) sans que ca soit recharge ni meme serialize
pouvoir faire new Truc()->foobar()[0]; // omg php provoque deux erreurs ici...
devoir declarer les throws, et pouvoir declarer des types de retours de fonctions
Ajouter un systeme de gestion de dependances externe (quand on fait ca en live en plein milieu du code, ca devrait planter...)
proposer un outil de Check qui verifie si nos classes existent, si nos fonctions sont bonnes, et afficher le plus de warnings possibles.
ne pas "recompiler" le php a chaque page
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
20 déc. 2008 à 22:31
Salut,

Ce soir, je commente partout, sans regarder une ligne de code... Gonfler le mec...
Non, j'ai juste envie de réagir au commentaire de CPCPC, et plus précisément à une phrase :
"PHP est avant tout un langage procédural, l'objet est utile pour les couches métier mais ne devrait être utilisé qu'en cas de nécessité, pas pour faire à tout prix de l'objet."

Heureusement que j'étais bien assis.
PHP a d'abord été un langage procédural, mais PHP5 introduit suffisament de concepts de POO pour ne plus être considéré comme tel.
Tous les langages modernes actuels sont objets : Python, Javascript, Java, Ruby, et j'en passe.
L'objet n'est pas réservé à une élite, même s'il n'est pas nécessairement le plus facile d'accès pour un débutant. Apprendre les fonctions de base c'est élémentaire, mais apprendre à développer en objet permet une autre approche que ne permet pas le procédural.
L'objet n'est donc pas à n'utiliser que quand on en a besoin : certains langages n'utilisent QUE des objets (ou presque).
On a toujours la nécessité de l'objet... Ce n'est pas que pour les couches métier.
Ce ne sont pas des préjugés, mais le fruit de 10 ans d'utilisation de PHP qui m'ont fait arriver à penser ça. On peut faire du très bon code procédural. Mais pour que le code soit le plus évolutif, le plus facile à maintenir, le plus modulaire possible, sans objet, on se fait souvent ch... pour rien... J'en sais quelque chose, puisqu'en tant que développeur PHP5, j'ai dû bosser (dans mon ancienne boite) avec PHP4 : j'ai VRAIMENT senti le retour en arrière, les limitation techniques imposées par PHP4...
Bref... :/

Concernant l'utilisation d'une classe avec des constantes de classe plutôt que define... Je ne suis absolument pas persuadé du gain en performance... Un petit bench pourrait être intéressant...
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
18 déc. 2008 à 10:29
La suite est à voir donc...
Désolé je suis un peu remonté ces temps ci donc je te fais mes plus plates excuses.
cs_cpcpc Messages postés 4 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 09:40
je ne suis pas rentré trop dans le code, mais c'est proprement codé à première vue...
l'idée est intéressante, ce code peut être utile au moins comme base.
et pour ceux qui ne voit l'expert qu'à base d'objet, laisse les à leurs préjugés. PHP est avant tout un langage procédural, l'objet est utile pour les couches métier mais ne devrait être utilisé qu'en cas de nécessité, pas pour faire à tout prix de l'objet.
par contre l'usage de define est assez lourd, utilise plutôt un fichier de configuration au format texte et chargé via parse_ini_file(), ou une classe avec des constantes de classe : const C_PAGE_NAME = "index.php"; que tu appelles avec classe::C_PAGE_NAME
les remarques de coucou747 sont d'ailleurs plus constructives.
j'attends de voir ta version définitive...
SirGix Messages postés 1 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 18 décembre 2008
18 déc. 2008 à 08:32
Ah. Merci de me faire remarquer ça, je viend de voir que c'est une version intermédiaire que j'avais dû développer en vitesse.
J'ai retravaillé la version avec des objets et en respectant le modèle MVC, mais j'ai posté la mauvaise source...
Je la mettrais à jour dès que j'aurai accès à mes fichiers. Désolé
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 déc. 2008 à 04:58
salut

utiliser du php5, pour avoir au moins :
- de l'abstraction pour le sgbd
- les exceptions
c'est vraiment interessant

et separer l'affichage du moteur, c'est un truc important

bref, tu fais du vieux php4, c'est pas trop mal fait (ton code est bien presente, tu geres les eventuelles erreurs, etc...), mais par contre, cote organisation, c'est pas super : tu melanges du html et du php, tu n'utilises pas les exceptions, etc...
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
18 déc. 2008 à 00:10
ça Expert ? sans objet ? je demande tout de suite un 4eme voir 5 eme niveau Super Expert et Mega Super Expert.
c'est la fête des codes mal codé en ce moment allez balancez ^_^ Youhou !
Rejoignez-nous