PHP 5 : Donnez moi une petite aide SVP... - PHP - Programmation
Marsh Posté le 29-05-2006 à 11:42:04
stagiux a écrit : Cela fais une semaine que je parcours google dans tout les sens a la recherche de tutos, j'en ai de bon, mais pas assez détaillé ou trop technique pour bien comprendre. |
Je trouve la doc assez bien faite à ce sujet, avec des exemples et tout: http://fr3.php.net/zend-engine-2.php
Qu'est ce qui te manque(rait) encore?
Et si tu cherches un "cours" avec des exemples, prends n'importe quel cours de POO sur le net ( en n'importe quel langage) et essaye de le faire en php...
stagiux a écrit : Parait il que la POO est superbement bien géré dans ce langage. |
c'est vrai que c'est superbe ...
edit:
Tiens y'a un tut pas mal sur zend: http://www.zend.com/zend/tut/class [...] 933&view=1
Marsh Posté le 29-05-2006 à 11:48:36
merci d'avoir répondu.
Par exemple, j'ai trouvé ca :
http://www.vulgarisation-informatique.com/classes.php
ca m'a l'air tout simple, mais j'ai du mal avec le concept objet.
Voila ce que j'en ai compris dans le fond :
Citation : Objet : Un objet contient différentes propriétés. Tout peut être objet, et peut contenir des objets. Plus simplement, si il existe un objet "humain", il contiendra les objets suivants : "tete", "bras", "jambes" ... L'objet "bras" pourra lui même contenir les objets "main", "coude" ... et ainsi de suite, jusqu'à obtenir un objet totalement paramétrable, en éditant ses propriétés. Ainsi, on pourrait placer la valeur "brun", à la propriété "couleur" de l'objet "cheveux". |
J'ai effectué un reel travail de recherche, mais je bloque enormement sur la forme.
peut tu par exemple me detailler clairement le tuto sur le lien si ca ne te dérange pas ?
Edit : Misericorde ! c'est de l'anglaisien
Marsh Posté le 29-05-2006 à 11:59:08
stagiux a écrit : J'ai pour but de m'initier a l'objet en PHP 5. |
En fait tu veux t'initier à l'objet en php5 et non t'initier à l'objet en php5 c'est ça?
Si tu dois débuter l'objet je te conseille FORTEMENT de le faire dans un autre langage que php, mais ça reste un point de vue personnel.
stagiux a écrit : merci d'avoir répondu. |
Avant de chercher à implémenter des exemples, essaye de comprendre le concept sinon effectivement tu risques d'avoir du mal...
stagiux a écrit : Edit : Misericorde ! c'est de l'anglaisien |
Comme 90% de la doc dans le monde des nains formaticiens
Sinon un exemple "classique" d'implémentation en objet c'est un "cours" que tu peux par exemple décrire comme etant:
- une matière
- un horaire
- un professeur, qui est une personne, qui enseigne dans une ou plusieurs matières
- une classe, qui est composée d'élèves, qui sont des personnes
Marsh Posté le 29-05-2006 à 12:12:58
ca fais depuis lundi dernier que j'arpente tout les sites traitant sur la POO en PHP5.
J'ai jamais fais de POO, et j'en ai besoin dans le cadre d'un stage ou ils bossent avec le langage PHP5 exclusivement.
D'ou mon interet pour ce langage precisement. Je l'aborderai plus tard en C#.
Si jamais tu cherches quelque site d'explication a ce propos j'en ai relevé une bonne 15aines en Fr...
Pour ceux qui ont les notions ca doit rouler tout seul...
Code :
|
Citation : |
En fait il utilise la classe comme moi je le ferai avec une fonction ? C'est quoi l'interet alors ? A quoi sert ce qu'il passe ($argument1, $argument2)
Marsh Posté le 29-05-2006 à 13:24:30
stagiux a écrit : ca fais depuis lundi dernier que j'arpente tout les sites traitant sur la POO en PHP5. |
C'est bien ce que je te dis, commence par comprendre la "théorie" de l'objet avant de chercher à l'implémenter en php...
stagiux a écrit : /* $this -> ca j'ai pas capté... c'est comme une structure de données ? */ |
nan pas la, this c'est ton objet "courant"
stagiux a écrit : En fait il utilise la classe comme moi je le ferai avec une fonction ? C'est quoi l'interet alors ? A quoi sert ce qu'il passe ($argument1, $argument2) |
relis ton exemple et ce que tu semblais avoir compris de la POO!
Marsh Posté le 29-05-2006 à 13:54:34
peu importe le langage, il semble que ce soit la notion "d'objet" qui soit nouvel pour toi, et c'est la dessus que tu doit porter tes efforts à mon avis.
Le reste n'est que de la syntaxe...
Jette un oeil là dessu, et navigue vers les différent liens, ça va peut être t'aider à apréhender les notions nouvelles:
http://www.commentcamarche.net/uml/umlintro.php3
http://www.commentcamarche.net/poo/poointro.php3
Marsh Posté le 29-05-2006 à 14:05:46
merci vais voir ca.
C'est en effet la notion d'objet qui est nouvelle. j'ai deja un peu touché en PHP, VB et C# mais jamais vu l'objet...
Marsh Posté le 29-05-2006 à 14:32:55
Citation : relis ton exemple et ce que tu semblais avoir compris de la POO! |
Avec mes mots et ce que j'ai compris :
$variable = new ma_classe;
$Variable contiendra des "sous variable" variable1, variable2 et variable3 (on peut acceder a $variable.variable1,2 ou 3 selon que les propriété sont public private ou protected)
$variable12 = new ma_classe($argument1,$argument2)
les 2 premieres "sous variable" prendront les valeurs ($argument1,$argument2)
that's right ?
Marsh Posté le 29-05-2006 à 14:44:45
stagiux a écrit :
|
En fait ce ne sont pas des "sous-variables" mais des attributs. Il peut aussi y avoir des fonctions membres.
Citation : |
Nan, ça dépend du constructeur. Dans ton constructeur tu peux décider en effet d'affecter $argument1 à $variable1 mais tu peux aussi bien affecter $argument1 à $variable2...
Marsh Posté le 29-05-2006 à 14:44:48
pour la 2eme partie, ça implique que tu ai une méthode qui porte le meme nom que ta classe (on apelle ça un constructeur), et que dans le code de cette méthode tu es écrit un truc du genre:
$this->variable1 = $argument1;
$this->variable2 = $argument2;
...etc...
edit: grilled
Marsh Posté le 29-05-2006 à 15:29:00
okok merci.
Un exemple tiré du journal du net developpeur est assez explicite :
Code :
|
Si ca c'est de la POO, alors j'ai compris ce que c'était !
Marsh Posté le 29-05-2006 à 15:34:32
stagiux a écrit : okok merci. |
Dans un premier temps il faut assimiler la technique. C'est ce que tu fais
Mais après il faut aussi aborder les problèmes en pensant POO. Là tu pourras dire que tu fais vraiment de la POO
Marsh Posté le 29-05-2006 à 16:34:50
Quoi que ....
Citation : |
Ou ces données sont elles récupérés ?
ICI ?
Citation : |
ou ici :
Citation : function __construct($nom, $metier, $distance=0, $direction=0) |
Marsh Posté le 29-05-2006 à 20:53:15
dans le 2e cas ce sont les valeurs par défaut qui seront données à distance et direction si tu ne passe que 2 paramètres au constructeur
ex: new Personne("Xavier","Rédacteur" )
enfin je crois
Marsh Posté le 29-05-2006 à 21:47:52
ReplyMarsh Posté le 30-05-2006 à 04:46:13
salut
comme toi je suis noob en php et j ai appris pas mal sur ce tuto "classes et objets" que je trouve assez clair
il m a pemis de me creer une classe template assez rapidement (alors que la doc sur php.net est toute pourrie)
Marsh Posté le 30-05-2006 à 09:31:31
Pourquoi ce smiley ?
Moi j'y connais pas grand chose mais nombreux sont les sites vantant le modèle objet de PHP5...
Marsh Posté le 30-05-2006 à 09:32:25
mIRROR a écrit : salut |
Merci vais voir ca
Si tu veut des tutos j'en ai trouvé quelques un pas mal...
Marsh Posté le 30-05-2006 à 10:16:26
stagiux a écrit : Pourquoi ce smiley ? |
Parce que le modèle objet de PHP n'est franchement pas terrible (ils ont plus ou moins repris le modèle de java en pire), n'utilise pas les potentialités d'un langage dynamiquement typé, est généralement mal foutu et n'a aucune originalité ni aucun intérêt.
Un site vantant le modèle objet PHP est un mauvais site
Marsh Posté le 30-05-2006 à 10:45:00
masklinn a écrit : Parce que le modèle objet de PHP n'est franchement pas terrible (ils ont plus ou moins repris le modèle de java en pire), n'utilise pas les potentialités d'un langage dynamiquement typé, est généralement mal foutu et n'a aucune originalité ni aucun intérêt. |
Loin de moi l'idée de debattre avec toi sur un sujet que je ne connais pas mais tu semble parler de PHP en général la.
Citation : |
Voila ! je ferme la parenthèse
J'ai un petit souci sur un script d'upload de fichier...
J'ai 2 fichiers : Test.php - > forumaire dont voici le code :
Code :
|
Et testclass1.php qui contient la classe :
Code :
|
Malgrès tout les controles, quand je test, il ne me retourne AUCUNE erreur. La page revient simplement au formulaire vierge. pourtant il rentre dans les 'if' (cf les 'echo' qui me donne le nom de fichier etc..)
Tout semblerai correct sauf que : Aucun fichier n'est uploadé dans racine/fichiers/
Comprend pas pourquoi.
Marsh Posté le 30-05-2006 à 10:52:35
stagiux a écrit : Loin de moi l'idée de debattre avec toi sur un sujet que je ne connais pas mais tu semble parler de PHP en général la. |
Je parlais bien du modèle objet de PHP5
Marsh Posté le 30-05-2006 à 11:01:53
ReplyMarsh Posté le 30-05-2006 à 11:32:52
stagiux a écrit : |
Oui.
Ta classe est bourrée de complexités inutiles, les noms n'ont pas de sens (et pourquoi ya des "my" partout ), les commentaires n'aident pas (il y en a trop, et ils sont mauvais), t'as plein de getters/setters inutiles (pourquoi tu fais tes checks dans myUpload alors que tu pourrais les faire dans les setters d'abord, c'est à ça qu'ils servent ).
Et la méthode myCopy, j'veux pas être méchant mais pour servir à rien elle sert à rien
Et faudrait probablement utiliser move_uploaded_file plutôt que copy.
Effectue un développement incrémental: crées une classe d'upload simple avec une interface genre
Code :
|
tu files ton fichier (le $_FILES['userfile']) au constructeur, tu set $destination_dir à la mano (aucun intérêt de le wrapper pour le moment) (le constructeur set $destination_name sur $file['name']), execute vérifie simplement si $destination_dir existe et est valide et effectue le déplacement de fichier.
Ensuite tu peux ajouter des fonctionalités, genre le filtrage sur type (avec l'exception qui va bien), un getter/setter pour le $destination_dir qui vérifie si elle est valide, un getter et un setter pour $destination_name (ou pas, ya rien à vérifier, sauf ptet être sûr que le fichier n'existe pas déjà si besoin), un setter pour le $max_size, mais tu les ajoutes petit à petit, histoire de pas avoir d'un coup une classe monstrueuse à débugger.
Comme ça si ça marche pas du sais que ça vient de ton dernier changement.
Marsh Posté le 30-05-2006 à 12:04:31
mais ....
En faite le code je l'ai chopé sur un tuto et j'essaye de le comprendre... et la j'voyais pas pourquoi il ne marchais pas.
Mais je vais essayer de refaire le truc moi meme en suivant tes instructions.
Merci d'avoir répondu !
EDIT: d'ailleur voila ou j'ai trouvé ce tuto si il y en a que ca peut brancher... http://www.asp-php.net/tutorial/as [...] php?page=1
Marsh Posté le 30-05-2006 à 12:14:27
stagiux a écrit : d'ailleur voila ou j'ai trouvé ce tuto si il y en a que ca peut brancher... http://www.asp-php.net/tutorial/as [...] php?page=1 |
Berk
Tiens, je te file la première étape d'un script d'upload basé sur une classe. C'est tout simple, ya quasiment pas d'error handling ou de fonctionalités (en l'état la classe n'a pas grand intérêt en fait), mais bon ça peut te permettre de démarrer, commences par essayer de comprendre comment ça marche (ça devrait être facile), puis vois en quoi tu pourrais l'améliorer de manière utile (le but étant principalement de simplifier et clarifier le code présent dans test_upload.php)
/modules/upload.php
Code :
|
/test_upload.php
Code :
|
Marsh Posté le 30-05-2006 à 12:21:06
masklinn a écrit : |
Bah c'est
merci pour le code, vais tester ca cet après midi.
Marsh Posté le 29-05-2006 à 11:35:26
Bonjour.
J'ai pour but de m'initier a l'objet en PHP 5.
Parait il que la POO est superbement bien géré dans ce langage.
Cela fais une semaine que je parcours google dans tout les sens a la recherche de tutos, j'en ai de bon, mais pas assez détaillé ou trop technique pour bien comprendre.
J'aimerai creer un objet, une classe, des methodes. Par des exemples tout con, qui servent absolument a rien, mais qui pourrai me montrer les fondements de la POO.
Merci de m'apporter vos contributions :-)