CL4$H ~ ## MagicBuzz VS Masklinn ##

CL4$H ~ ## MagicBuzz VS Masklinn ## - PHP - Programmation

Marsh Posté le 06-05-2007 à 21:50:04    

Salut à tous !
 
J'ai envie d'améliorer mon niveau en PHP. Pour cela je code des modules (genre espace membre, ...) afin de progresser et d'être confronté au max de problèmes possible.
Je vais bientôt pouvoir bosser en local sur mon serveur avec SSHFS (génial ce truc), et à ce moment j'essaierai de me mettre à la POO. Il paraît que c'est super intéressant et que ça change votre façon de voir les choses...
 
J'aimerais donc des adresses de site qui apprennent la POO (ou tout du moins des bonnes bases, que je completerai après avec des sites un peu plus austères genre le site officiel...).
J'ai un lien (http://www.siteduzero.com/tuto-3-1678-0-la-programmation-orientee-objet-en-php.html) mais je me demande s'il est vraiment de qualité...
J'aimerais aussi une bonne explication sur les différences POO de PHP4 à PHP5 (paraît que c'était un concept dans PHP4...) pour ma culture et les avantages/inconvénients.
 
Merci de vos réponses.
Bonne soirée à tous !


Message édité par Zorro561 le 13-05-2007 à 12:29:36
Reply

Marsh Posté le 06-05-2007 à 21:50:04   

Reply

Marsh Posté le 07-05-2007 à 09:23:19    

apprends la poo tout court, pas la poo en php.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-05-2007 à 15:36:18    

skeye a écrit :

apprends la poo tout court, pas la poo en php.


 :jap:  
 
J'ai cliqué sur ce topic en pensant à écrire la même chose


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 07-05-2007 à 19:05:34    

Bah oui mais ça doit différer au niveau de certains trucs. Je me doute bien qu'il y a un concept machin vision de la chose différente, mais je veux coder en PHP.

Reply

Marsh Posté le 07-05-2007 à 19:07:33    

c'est crétin.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-05-2007 à 19:13:54    

En pseudo-langage c'est mieux :o

Reply

Marsh Posté le 07-05-2007 à 19:14:54    

RiderCrazy a écrit :

En pseudo-langage c'est mieux :o


Non, mais avec un vrai langage (et pas un langage en carton-pâte) oui par contre :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-05-2007 à 19:49:39    

Je ne vous ai pas demandé de me dire si c'est crétin ou pas. Je veux juste apprendre à coder PHP en oo.

Reply

Marsh Posté le 07-05-2007 à 20:00:27    

Zorro561 a écrit :

Je ne vous ai pas demandé de me dire si c'est crétin ou pas. Je veux juste apprendre à coder PHP en oo.


Et t'as besoin de notre autorisation ?
 
Ne restreint pas ta recherche au php, étend aux concepts de la POO et après t'appliqueras au php. Si c'est pour le plaisir de faire de l'objet en php, oublies, ça te donneras que des mauvaises habitudes...

Reply

Marsh Posté le 08-05-2007 à 00:12:47    

Et pourquoi donc des mauvaises habitues ?  
 
Peux tu donner des exemples qui feraient que l'on prendrait des mauvaises habitudes ? Peux tu developper ?  
Merci

Reply

Marsh Posté le 08-05-2007 à 00:12:47   

Reply

Marsh Posté le 08-05-2007 à 00:28:20    

weed a écrit :

Et pourquoi donc des mauvaises habitues ?

 

Peux tu donner des exemples qui feraient que l'on prendrait des mauvaises habitudes ? Peux tu developper ?
Merci


  • Le PHP est un mauvais langage en général
  • L'implémentation de la POO en PHP est une version batârde de la POO Java. La POO Java est déjà une implémentation très spécifique de la POO, et elle est pensée dans le cadre d'un langage fortement et statiquement typé (et inspirée de la POO C++), son rétrofitting dans un langage faiblement et dynamiquement typé, et plein de trous, donne un mélange plus bizarre qu'autre chose, et franchement crade
  • Et en bonus il y a moultes conneries et stupidités dans l'implémentation en plus des bizarreries de la POO "selon Java"
  • Enfin la grande majorité du langage n'est pas implémenté dans un cadre OO, donc on se tape de gros tas de procédural au milieu de ses objets


Il y a nombre de langages avec une implémentation de la POO plus simple, plus régulière, plus adaptée (au langage), intégrée au coeur du langage et beaucoup plus flexible.


Message édité par masklinn le 08-05-2007 à 00:30:49

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-05-2007 à 03:55:27    

D'accord pour dire que PHP est bien le pire des exemples, et à plus forte raison PHP4. Mais Java...? Qu'est ce qui ne va pas?

masklinn a écrit :

Il y a nombre de langages avec une implémentation de la POO plus simple, plus régulière, plus adaptée (au langage), intégrée au coeur du langage et beaucoup plus flexible.


Exemple?
Edit : Je précise, message écrit sans aucune prétention, juste envie d'en savoir un peu plus.

Message cité 1 fois
Message édité par dwogsi le 08-05-2007 à 04:00:33

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 08-05-2007 à 14:05:54    

dwogsi a écrit :

D'accord pour dire que PHP est bien le pire des exemples, et à plus forte raison PHP4. Mais Java...? Qu'est ce qui ne va pas?


Je n'ai pas dit que la POO Java était mauvaise, j'ai dit qu'elle était très spécifique ;)

 

Après dans les problèmes que j'ai avec elle, on peut citer l'absence de mixins, l'absence de metaobjects/metaprogramming (et la difficulté de faire le peu qu'on peut faire à ce niveau), la dichotomie entre les capacités des objets natifs et ceux des objets créés par l'utilisateur (operator overloading), l'absence de dispatch sur les valeurs de retour, le fait que tout en java ne soit pas un objet, ...

 

edit: le fait d'avoir regroupé la création et l'initialisation des objets en une opération unique (la construction), aussi


Smalltalk est probablement le meilleur, mais il est un peu difficile de se lancer dedans, donc je conseillerais de regarder Ruby ou Python ;)


Message édité par masklinn le 08-05-2007 à 14:07:39

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-05-2007 à 14:45:29    

+1 Python mais trop lent

Message cité 1 fois
Message édité par supermofo le 08-05-2007 à 16:15:12

---------------
Echange de 3000+ liens PR 3 -> 5, me pm urgent !
Reply

Marsh Posté le 08-05-2007 à 19:00:24    

On a parlé d'apprendre pas de comparer qui à la plus grosse.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 08-05-2007 à 19:14:49    

Exactement, je profite de ce rappel pour réitérer ma question.

Reply

Marsh Posté le 08-05-2007 à 19:37:14    

supermofo a écrit :

+1 Python mais trop lent


Python est largement suffisament rapide pour environ 95% des cas d'utilisation du langage [:petrus75]
 
Et pour le reste, il y a Erlang \o/


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-05-2007 à 19:56:26    

Zorro561 a écrit :

Exactement, je profite de ce rappel pour réitérer ma question.


Le mieux que tu puisses faire c'est d'acheter un livre, maintenant un bon livre pour php j'en connais pas. Ca doit exister en Anglais mais j'ai pas de référence à te donner.
Autre chose, oublie la POO en php4, c'est une perte de temps, quand à celle de php5 c'est légerement mieux quoi que bacler quand on voit l'implantation de try  [:pingouino]


Message édité par Shinuza le 08-05-2007 à 19:59:14

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 09-05-2007 à 10:55:33    

Ouais, j'avais entendu parler des améliorations à ce niveau liées à l'apparition de PHP5.

Reply

Marsh Posté le 09-05-2007 à 10:59:06    

S'toujours pas ça. On verra avec php6, si ils se décident enfin à virer les fonctions redondantes et toutes les merdes qui composent ce « fabuleux » « langage »


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 09-05-2007 à 11:02:25    

Shinuza a écrit :

S'toujours pas ça. On verra avec php6, si ils se décident enfin à virer les fonctions redondantes et toutes les merdes qui composent ce « fabuleux » « langage »


Ils ne casseront jamais la compatibilité avec le code existant.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-05-2007 à 11:06:03    

Ouais je sais bien :(
Néanmoins, y'a des trucs qui diffèrent entre php 4 et 5, comme par exemple le passage par référence. Qui peut faire foirer ton script le cas échéant.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 09-05-2007 à 11:10:04    

Ah ouais j avoue ca c mortel


---------------
Echange de 3000+ liens PR 3 -> 5, me pm urgent !
Reply

Marsh Posté le 09-05-2007 à 12:07:26    

Shinuza a écrit :

Ouais je sais bien :(
Néanmoins, y'a des trucs qui diffèrent entre php 4 et 5, comme par exemple le passage par référence. Qui peut faire foirer ton script le cas échéant.


C'est vrai. M'enfin les modifs à faire restent minimes en général...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-05-2007 à 12:10:11    

Bon déja a mort les magic daubes et les registers globals \o/
 
J'aimerais bien que $t[string] te pète à la gueule aussi \o/, mais je rève _o/


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 09-05-2007 à 12:11:51    

Shinuza a écrit :

Bon déja a mort les magic daubes et les registers globals \o/
 
J'aimerais bien que $t[string] te pète à la gueule aussi \o/, mais je rève _o/


Tu veux quoi, des tableaux associatifs avec seulement des entiers comme clé?[:pingouino]
Du typage ok, mais pas supprimer ce genre de trucs super pratique...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-05-2007 à 12:17:24    

Non non :

 
Code :
  1. $t = array("proot"=>"test" );
  2. echo $t[proot];
 


Devrait à mon sens generer plus qu'une simple notice. Ca doit être le seul language qui laisse passer ça.  [:pingouino]  [:pingouino]  [:pingouino]

 

JS et AS te pètent à la gueule
Ruby aussi

Message cité 3 fois
Message édité par Shinuza le 09-05-2007 à 12:26:55

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 09-05-2007 à 12:46:02    

Shinuza a écrit :

Non non :
 

Code :
  1. $t = array("proot"=>"test" );
  2. echo $t[proot];


 
 
Devrait à mon sens generer plus qu'une simple notice. Ca doit être le seul language qui laisse passer ça.  [:pingouino]  [:pingouino]  [:pingouino]  
 
JS et AS te pètent à la gueule
Ruby aussi


 
Ah. Je savais même pas qu'on pouvait faire ça.[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-05-2007 à 12:49:39    

Shinuza a écrit :

Non non :
 

Code :
  1. $t = array("proot"=>"test" );
  2. echo $t[proot];


 
 
Devrait à mon sens generer plus qu'une simple notice. Ca doit être le seul language qui laisse passer ça.  [:pingouino]  [:pingouino]  [:pingouino]  
 
JS et AS te pètent à la gueule
Ruby aussi


Heuuu attends, c'est quoi cette chose infâme, ça écrit quand même pas "test" si? [:totoz]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-05-2007 à 13:39:07    

skeye a écrit :

Ah. Je savais même pas qu'on pouvait faire ça.[:pingouino]


 
T'as peut être la chance de bosser avec des gens qui codent proprement
 

masklinn a écrit :

Heuuu attends, c'est quoi cette chose infâme, ça écrit quand même pas "test" si? [:totoz]


 
Si bien sur, c'est php hein  [:shinuza]  
 
Allez, c'est ma tournée :
 

Code :
  1. $mail_subject = "Confirmation d'inscription Football Club Challenge";
  2.    //Headers
  3.    $prenom = $_POST[prenom];
  4.    $nom = $_POST[nom];
  5.    $club = array('', 'Bordeaux','Lyon','Marseille','Paris');
  6.    $club = $club[$_GET[club]];
  7.    $sql = "SELECT * FROM `calendrier` WHERE id_calendrier ='".$_POST[id_calendrier]."'";
  8.    $req = mysql_query($sql);
  9.    $dataCal = mysql_fetch_array($req);
  10.    $lieu = $dataCal[lieu];
  11.    $date= $dataCal[date];


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 09-05-2007 à 13:41:57    

Shinuza a écrit :

T'as peut être la chance de bosser avec des gens qui codent proprement

  

Si bien sur, c'est php hein  [:shinuza]

 

Allez, c'est ma tournée :

 
Code :
  1. $mail_subject = "Confirmation d'inscription Football Club Challenge";
  2.    //Headers
  3.    $prenom = $_POST[prenom];
  4.    $nom = $_POST[nom];
  5.    $club = array('', 'Bordeaux','Lyon','Marseille','Paris');
  6.    $club = $club[$_GET[club]];
  7.    $sql = "SELECT * FROM `calendrier` WHERE id_calendrier ='".$_POST[id_calendrier]."'";
  8.    $req = mysql_query($sql);
  9.    $dataCal = mysql_fetch_array($req);
  10.    $lieu = $dataCal[lieu];
  11.    $date= $dataCal[date];



http://b.masklinn.net/do_not_want_1.jpg

 

(les lignes 6 et 7 sont tout spécialement génialissimes)


Message édité par masklinn le 17-01-2009 à 10:24:10

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-05-2007 à 13:50:28    

Shinuza a écrit :


Code :
  1. $mail_subject = "Confirmation d'inscription Football Club Challenge";
  2.    //Headers
  3.    $prenom = $_POST[prenom];
  4.    $nom = $_POST[nom];
  5.    $club = array('', 'Bordeaux','Lyon','Marseille','Paris');
  6.    $club = $club[$_GET[club]];
  7.    $sql = "SELECT * FROM `calendrier` WHERE id_calendrier ='".$_POST[id_calendrier]."'";
  8.    $req = mysql_query($sql);
  9.    $dataCal = mysql_fetch_array($req);
  10.    $lieu = $dataCal[lieu];
  11.    $date= $dataCal[date];



[:hahaguy][:hahaguy][:hahaguy][:hahaguy][:hahaguy][:hahaguy][:hahaguy][:hahaguy][:hahaguy]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-05-2007 à 14:00:21    

J'ai développé une immunité contre ces trucs  [:pingouino]  
Je relève pas la protection des données (genre un controle du type de $_POST['id_calendrier'], ou encore une requête utilisant la classe mise à dispo qui gère les requêtes préparées [:cosmoschtroumpf] ) ni la superbe séparation des couches (ouais j'ai pas posté le html autour).
 
Tiens d'ailleurs la notice c'est ça :  
 

Citation :

Notice: Use of undefined constant proot - assumed 'proot'  
in script.php on line x


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 09-05-2007 à 14:23:50    

Shinuza a écrit :

Citation :

assumed 'proot'



lolilol.[:roane]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-05-2007 à 11:22:37    

Shinuza a écrit :

Non non :
 

Code :
  1. $t = array("proot"=>"test" );
  2. echo $t[proot];


 
 
Devrait à mon sens generer plus qu'une simple notice. Ca doit être le seul language qui laisse passer ça.  [:pingouino]  [:pingouino]  [:pingouino]  


A titre d'information personnelle (j'apprends php), qu'est-ce qui vous dérange avec ce bout de code? Qu'elle devrait être la "bonne" syntaxe?

Reply

Marsh Posté le 10-05-2007 à 11:28:28    

totoffe38 a écrit :

A titre d'information personnelle (j'apprends php), qu'est-ce qui vous dérange avec ce bout de code? Qu'elle devrait être la "bonne" syntaxe?


echo $t["proot"];

 

proot sans guillemets ni rien, ça n'existe pas. Le langage devrait t'envoyer promener.:o


Message édité par skeye le 10-05-2007 à 11:31:02

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-05-2007 à 11:30:22    

à la limite, déjà, echo $t["proot"]; est infiniment plus correct.
 
t'as pas à utiliser une constante qui n'est pas déclarée, et que l'interpréteur décide d'intiaaliser avec son nom...
c'est d'un gore extrêment.
 
ensuite, pour la déclaration clé/valeur, c'est juste un problème de syntaxe, perso je ne vois pas d'inconvénient majeur à cette syntaxe.

Reply

Marsh Posté le 10-05-2007 à 11:34:53    

ha oui, j'avais remarqué qu'il manquait des trucs. C'est pas plutôt des single quotes d'ailleurs ou les deux marchent?
 
echo $t['proot']
 
EDIT: j'ai essayé echo $t['proot'], echo $t["proot"], echo $t[proot] et bien les 3 solutions fonctionnent...  :whistle:  
 
C'est vrai que c'est dommage que php "autorise" certaines erreurs, y'a plus de standard de programmation, et ça devient vite la pagaille. Mais ça permet au débutant de pouvoir pisser rapidement du code.

Message cité 1 fois
Message édité par totoffe38 le 10-05-2007 à 11:37:02
Reply

Marsh Posté le 10-05-2007 à 11:36:28    

Le fait que $t soit un tableau assiociatif et que l'entrée "proot" soit accédée sans utiliser de quotes ou double quotes (ce qui désigne une string).

 
Code :
  1. $t = array("proot"=>"test" );
  2.    echo $t['proot'];
 

Edit :HYPER BURNED [:mouais]

 
totoffe38 a écrit :

ha oui, j'avais remarqué qu'il manquait des trucs. C'est pas plutôt des single quotes d'ailleurs ou les deux marchent?

 

echo $t['proot']

 

EDIT: j'ai essayé echo $t['proot'], echo $t["proot"], echo $t[proot] et bien les 3 solutions fonctionnent...  :whistle:

 

C'est vrai que c'est dommage que php "autorise" certaines erreurs, y'a plus de standard de programmation, et ça devient vite la pagaille. Mais ça permet au débutant de pouvoir pisser rapidement du code.

 

La dernière est fausse et merdique, et autoriser le débutant à "pisser" du code ne devrait pas être une excuse pour fournir une plateforme de merde [:mouais]²²²²²²²²²²²²²²

 

Je vois pas comment t'apprends quand on te dis pas "mon vieux, ce que tu fais c'est à chier", si on t'applaudis toujours dans ta connerie du fini par faire n'importe quoi. [:spamafote]


Message édité par Shinuza le 10-05-2007 à 11:40:15

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 10-05-2007 à 11:38:46    

Pour en revenir au sujet initial: la POO en PHP, il y a ça:
http://www.amazon.com/Object-Orien [...] 875&sr=8-1
Après je ne sais pas ce que ça vaut.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed