Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les news > Tutoriels > Mise à jour du tutoriel PHP > Lecture d'une news

Commentaires de news :
Mise à jour du tutoriel PHP

Revenir à liste des news

Mise à jour du tutoriel PHP

# Par M@teo21, le 19/03/2008 à 10:27:20
Logo PHP
Depuis quelques temps, je souhaitais faire plusieurs mises à jour du tutoriel PHP. Rien de bien conséquent soyons clairs, car je n'ai pas le temps de faire une mise à jour en profondeur de ce tutoriel pour le moment.

Toutefois, il m'a semblé nécessaire de faire quelques petits rafraîchissements.


Les chapitres mis à jour



Image utilisateur

Mise à jour du chapitre sur WAMP pour prendre en compte WAMP 2, la nouvelle version.
Les captures d'écran ont été refaites ainsi que les explications lorsque cela était nécessaire. Heureusement, le principe d'utilisation reste le même donc vous ne devriez pas être trop chamboulés.

Image utilisateur

Mise à jour de la vidéo "Importer un fichier SQL dans PHPMyAdmin", qui était restée à l'ère EasyPHP.
Le chapitre concerné est "Lire des données" de la section MySQL.


Image utilisateur

Ajout d'une sous-partie sur l'envoi (upload) de fichiers par formulaire qui m'a toujours semblé manquer.
C'est une sous-partie un peu plus technique que le reste du chapitre mais elle devrait vous permettre de faire vos premiers pas avec l'upload de fichiers.
Toutefois, ce n'est là qu'une brève introduction je ne m'en cache pas, et je n'ai pas cherché à aller plus dans les détails car il existe déjà un excellent tutoriel réalisé par DHKold, dont je me fais l'écho à la fin de ma présentation.


Ce qui reste à faire



Dans la catégorie "Mises à jour à faire", il serait aussi nécessaire de refaire les explications sur le partitionnement sous Linux avec Ubuntu car il a pas mal changé depuis que j'ai rédigé le chapitre.
Toutefois, comme des nouvelles versions d'Ubuntu sortent tous les 6 mois, et que la prochaine devrait arriver en avril (le mois prochain), j'attends la nouvelle version avant de m'en occuper ^^

En C, je mettrai bientôt à jour le chapitre qui présente Code::Blocks au début du cours pour présenter la version stable sortie il y a peu.

Et enfin, puisque je sais que la question va être soulevée dans les commentaires, non je n'ai pas prévu de traiter la POO en PHP pour plusieurs raisons : manque d'intérêt pour la POO en PHP personnellement, peu de courage pour réexpliquer les concepts de la POO en PHP alors que je l'ai fait il y a peu de temps pour le C++, peu de conviction enfin à titre personnel de l'intérêt de telles explications dans mon cours.
Ca ne veut pas dire que c'est définitif, mais il me faudra plus de motivation personnelle pour que je m'y mette. En attendant, ce ne sont pas les tutoriels à rédiger qui manquent !

185 Commentaires

Désolé, les commentaires de cette news sont désactivés, vous ne pouvez pas en ajouter !

Page : Précédente  1  2  3  4  5  6  7  Suivante
Pseudo Commentaire
1 visiteur sur cette news (0 membre et 1 anonyme)
Page : Précédente  1  2  3  4  5  6  7  Suivante
Hors ligne anonyme # Posté le 19/03/2008 à 14:57:09
Groupe :
Citation : Control
`Haku tu (as) fait quoi comme étude pour savoir tout sur le PHP en profondeur?
Car la tu t'amuse à réduire tout le monde en pièce :D . Personnellement je te crois plus facilement que les autres vu que tu as créé un excellent tutoriel... .

Sinon, j'irai jeter un coup d'œil aux mises à jours tantôt.

Ce ne sont pas les études qui m'ont appris quoi que ce soit sur l'informatique ou sur le PHP. Et je ne sais pas tout, loin de là.
J'ai commencé avec les tutos de M@teo et j'ai eu la chance d'avoir envie de faire un forum, ce qui m'a permis d'apprendre beaucoup de choses. Mais c'est surtout en côtoyant de grands codeurs (Bison, winzou, Shepard, karamilo, Tracker, strucky, Savageman et bien d'autres) qu'on a l'envie et la motivation de continuer et d'en apprendre toujours plus.

Citation : nicknick63
Haku, je n'ai pas dit que c'était inutile, j'ai juste dit que c'était loin d'être indispensable à quelqu'un qui a pour base uniquement les cours de M@téo.

Disons que pour un site "basique" il n'y a pas besoin d'utiliser ça, par contre après c'est discutable...
Par exemple j'ai codé un moteur de templates qui utilise uniquement des fonctions, je ne sais pas si c'est mieux. Enfaite il faudra que je tente de l'adapter pour voir.

Disons que pour moi PHP est un langage destiné à un usage bien particulier, et de ce fait on ne doit pas forcément utiliser les mêmes méthodes de développement.

Eh bien je trouve qu'en tant que base, un tuto se doit de lancer des pistes pour la suite, et l'OO est l'une de ces pistes. Pas besoin de faire 50 chapitres, une mise en bouche pour dire "ça existe, faut aller voir" serait déjà très bien.
Et on peut très bien utiliser l'OO pour un petit site (d'ailleurs, un petit site, un site basique, c'est quoi ?).
Oui, on peut faire un moteur de template avec de l'OO, avec de "simples fonctions", avec de "simples echo". Mais en même temps l'OO n'a jamais eu pour vocation d'apporter des nouvelles possibilités mais des nouvelles solutions, des nouvelles méthodes de conceptions, des nouvelles façons de voir les choses, etc.
Hors ligne M@teo21 # Posté le 19/03/2008 à 14:59:47
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Citation : b1nary0d1g1t
En ce qui concerne l'aspect orienté objet, pourquoi ne pas rendre le début du tutoriel C++ "stand-alone" (genre une catégorie "techniques de programmation")?
Ainsi tout qui veut faire un tuto sur un langage OO pourra, au début du tuto, mettre un lien vers cette partie.
Cela éviterait de réinventer la roue à chaque fois :)


J'attendais cette remarque :D
Tout simplement car c'est contre mes "principes" pour les tutos. Déjà que la POO c'est un concept assez difficile à bien assimiler, alors si en plus je fais un truc purement théorique sans "code pratique" derrière, laisse tomber je laisse tout le monde sur le carreau (moi y compris :p ).

Sinon comme Haku je constate qu'un certain nombre de personnes ici en parlent sans savoir concrètement de quoi il retourne. Lire "il faut programmer en modèle orienté objet pour respecter l'architecture MVC", c'est à se taper la tête contre un mur :o


Citation : iPoulet
Au pire, PHP finira bien par être démodé, et peut-être que M@teo écrira alors un cours sur une autre technologie.

Edit : je disais ça pour l'absence de partie consacrée à la POO en PHP.


Ca j'en doute, PHP répond réellement à un besoin : celui de pouvoir réaliser des sites dynamiques sans être pour autant un crack de la programmation avant.

Maintenant, je sais très bien qu'il y a mieux et je n'ai pas peur de le dire.
Ruby on Rails mmmh...

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Autobiographe à ses heures perdues :p
 
Hors ligne Draknight # Posté le 19/03/2008 à 15:03:41
Avatar
Groupe : Membres
Merci et continu ainsi dans tes mises à jour du tuto php.
Hors ligne DHKold # Posté le 19/03/2008 à 15:07:19
Ex-Admin
Avatar
Groupe : Membres
Hum, PHP n'est pas orienté objet hein... Y'a de l'objet d'accord, mais de là à parler de POO en PHP... On est loin, très loin du compte. Je vous conseille plutôt Smalltalk ou Objective-C si vous voulez vraiment un langage qui Orienté Objet, ca doit être à peu prêt les seuls à avoir une réelle approche OO interressante et plus ou moins complète :)
Après, la possibilité de faire du PHP en utilisant des classes est une fonctionnalité interressante, mais à utiliser avec modération.


Pour ce qui est des langages alternatifs, Coldfusion est pas mal ^^ Et pour les puristes qui voudraient utiliser du C (ou autre), reste le CGI :p

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne crow # Posté le 19/03/2008 à 15:11:29
Groupe : Membres
Citation : `Haku
Le MVC n'est pas un concept de programmation, c'est une architecture, une méthode conception, une façon de présenter son code.

Je me suis peut être mal exprimé, pour moi un concept de programmation et une méthode de conception c'est pareil. :o

Citation : `Haku
Et le MVC n'est pas réservé à l'OO..

Par contre ça je ne savais pas.
J'ai appris ce "style" le programmation dans un livre : on crée un fichier contenant une classe pour le controller, pour la/les vue et pour le/les model.
Le controller interprète les requêtes des visiteurs et choisi la bonne vue et le bon model.
Le model permet de récupérer les données et de faire les traitements nécessaires.
La vue permet de définir les variables pour pouvoir ensuite les afficher dans la partie html.

Perso c'est comme ça que j'ai appris, je vois pas trop comment on pourrait faire sans poo mais c'est surement faisable.
 
Hors ligne nicknick63 # Posté le 19/03/2008 à 15:12:59
Avatar
Groupe : Membres
Haku, j'entends par "site basique" un site qui ne fait pour ainsi dire que mettre du contenu dans une BDD et l'afficher.
Et sinon justement quand j'ai écrit le moteur je n'avais pas du tout une approche orientée objet de la programmation, et ça me saoulait même de déclarer un nouvelle classe dans chaque page.
Je continue sur cette voie pour ce script, mais le Python m'a un peu ouvert à ce paradigme.

Et pour ta conception du tuto je suis assez d'accord, mais dans ce cas il suffit d'en parler un peu en même temps que les fonctions, en disant juste que c'est une méthode qui permet de faire des blocks de fonctions pour les regrouper et les utiliser plus facilement, sans forcément aller plus loin.

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne 1337833K # Posté le 19/03/2008 à 15:13:01
fgsfds
Groupe : Membres
Citation : M@teo21
Citation : iPoulet
Au pire, PHP finira bien par être démodé, et peut-être que M@teo écrira alors un cours sur une autre technologie.

Edit : je disais ça pour l'absence de partie consacrée à la POO en PHP.


Ca j'en doute, PHP répond réellement à un besoin : celui de pouvoir réaliser des sites dynamiques sans être pour autant un crack de la programmation avant.

Maintenant, je sais très bien qu'il y a mieux et je n'ai pas peur de le dire.
Ruby on Rails mmmh...

Pourtant, PHP est un des langages de haut niveau les plus durs, bien plus dur que le Python, le Perl, ou le Ruby par exemple ...

Image utilisateur
Big Brother is watching you.
The chocolate is a lie !
Vous pouvez faire un geste gratuit pour changer le monde. :)
Libérez quelqu'un et quelqu'un-d'autre !
 
Hors ligne M@teo21 # Posté le 19/03/2008 à 15:15:47
Doh ! Nuts. Mmh, donuts !
Avatar
Admins
Citation : 1337833K
Citation : M@teo21
Citation : iPoulet
Au pire, PHP finira bien par être démodé, et peut-être que M@teo écrira alors un cours sur une autre technologie.

Edit : je disais ça pour l'absence de partie consacrée à la POO en PHP.


Ca j'en doute, PHP répond réellement à un besoin : celui de pouvoir réaliser des sites dynamiques sans être pour autant un crack de la programmation avant.

Maintenant, je sais très bien qu'il y a mieux et je n'ai pas peur de le dire.
Ruby on Rails mmmh...

Pourtant, PHP est un des langages de haut niveau les plus durs, bien plus dur que le Python, le Perl, ou le Ruby par exemple ...


Je n'ai pas peur non plus de dire que je ne suis pas d'accord avec cette remarque :D
Mais bien sûr c'est discutable. Avec plus de temps (et d'argent, ça va de pair) je pourrais très bien rédiger un tel tuto sur un autre langage de haut niveau rien que pour essayer de me contredire !


Citons toutefois le fait que PHP soit largement utilisé et donc proposé en standard sur la plupart des hébergements gratuits et mutualisés, ce dont ne peut pas se vanter Python et peut-être encore moins Ruby on Rails... ce qui par conséquent réserve ces langages à des gens qui ont des moyens ou qui savent configurer leur propre serveur... et ce ne sont dès lors plus des débutants. CQFD.

Ce qui se conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.

Nicolas Boileau (je suis fan)
Autobiographe à ses heures perdues :p
 
Hors ligne nicknick63 # Posté le 19/03/2008 à 15:15:52
Avatar
Groupe : Membres
@ 1337833K => Non je ne trouve pas. De toutes façons ce sont tous de langage très haut niveau, ça dépend donc de la personne et de sa conception.

Deux voitures peuvent se valoir et pourtant certaines personnes en préfèrent une certaine à une autre, et vice versa.

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne anonyme # Posté le 19/03/2008 à 15:23:03
Groupe :
Citation : crow
Par contre ça je ne savais pas.
J'ai appris ce "style" le programmation dans un livre : on crée un fichier contenant une classe pour le controller, pour la/les vue et pour le/les model.
Le controller interprète les requêtes des visiteurs et choisi la bonne vue et le bon model.
Le model permet de récupérer les données et de faire les traitements nécessaires.
La vue permet de définir les variables pour pouvoir ensuite les afficher dans la partie html.

Perso c'est comme ça que j'ai appris, je vois pas trop comment on pourrait faire sans poo mais c'est surement faisable.

Si tu as un fichier controller.php qui contient ceci :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2.  
  3. require_once getModelPath();
  4.  
  5. ?>

Un fichier model.php qui contient ceci :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2.  
  3. $title = 'Une belle page !';
  4. require_once 'view.php';
  5.  
  6. ?>

Et un fichier view.php qui contient ceci :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <html>
  2.     <head>
  3.         <title><?php echo $title; ?></title>
  4.     </head>
  5.     <body>
  6.     </body>
  7. </html>

Eh bien c'est du MVC, sans une pincée d'OO.
Le MVC implique juste la séparation de trois composants (modèles, vues, controlleur(s)), mais rien ne décrit ces composants ou ce qui les sépare.

Citation : nicknick63
Haku, j'entends par "site basique" un site qui ne fait pour ainsi dire que mettre du contenu dans une BDD et l'afficher.
Et sinon justement quand j'ai écrit le moteur je n'avais pas du tout une approche orientée objet de la programmation, et ça me saoulait même de déclarer un nouvelle classe dans chaque page.
Je continue sur cette voie pour ce script, mais le Python m'a un peu ouvert à ce paradigme.

Eh bien certains seraient tenté de faire ça en OO. Pourquoi ? Hm, pourquoi pas ?

Citation : 1337833K
Pourtant, PHP est un des langages de haut niveau les plus durs, bien plus dur que le Python, le Perl, ou le Ruby par exemple ...

Pourquoi donc ?
Et à quel niveau surtout ? Syntaxique ?
Hors ligne b1nary0d1g1t # Posté le 19/03/2008 à 15:36:03
In libro veritas
Avatar
Groupe : Membres
Citation : M@teo21

J'attendais cette remarque :D
Tout simplement car c'est contre mes "principes" pour les tutos. Déjà que la POO c'est un concept assez difficile à bien assimiler, alors si en plus je fais un truc purement théorique sans "code pratique" derrière, laisse tomber je laisse tout le monde sur le carreau (moi y compris :p ).


Je comprends bien ton point de vue.
Cela dit, il est question ici de la "portée" que tu veux donner au SdZ...
Je trouve très honorable ta démarche, mais est-ce réellement crédible de vouloir "apprendre la prog" à des "zéros" si on passe sous silence les paradigmes nécessaires pour produire du code efficace et fonctionnel ?
Je ne parle pas uniquement de l'OO mais aussi (par exemple) des types de structuration de données (tableaux, listes, piles, files, ...) en C, ou encore (mais la j'admets qu'on rentre dans un niveau directement plus haut) de programmation parallèle (processus, threads, ...)

On voit suffisamment de choses quelque peu "effrayantes" sur les forums (tu le dis toi-même ^^ ), par exemple des gens qui savent écrire une fonction mais qui n'ont pas du tout compris dans quel contexte il est préférable de les utiliser ou non...

Maintenant, comme je l'ai dit, c'est une question de portée du site... Le SdZ doit-il rester une "première porte ouverte" sur le monde de la programmation quitte à consulter d'autres sources pour faire vraiment du "sérieux" (et si c'est ton objectif, je retire tout ceci et je dis quand même Bravo) ou bien devenir un véritable cours complet à (très) long terme...

Autre chose :
Citation : DHKold

Je vous conseille plutôt Smalltalk ou Objective-C si vous voulez vraiment un langage qui Orienté Objet, ca doit être à peu prêt les seuls à avoir une réelle approche OO interressante et plus ou moins complète

C'est bien gentil de montrer que tu connais [l'existence] plein de langages mais fait attention à ce que tu dis...
Personne n'utilise ces langages en dehors, peut-être, du cadre des études en info. Bon ok, l'objective-C est beaucoup utilisé sur les plateformes mac mais ca équivaut +/- à "personne" (troll inside ^^)
Il y a des gars qui risquent de lâcher le tuto de C++ en se disant "mais c'est nul" et aller apprendre SmallTalk :lol:

In libro veritas
--------------------------------------------
Linux Mint 4.0 Daryna KDE CE
 
Hors ligne DHKold # Posté le 19/03/2008 à 15:50:52
Ex-Admin
Avatar
Groupe : Membres
Il est vrai que je connais peu de gens qui utilisent Smalltalk, mais j'en connais tout de même deux, qui bossent dans une petite boite de quelques personnes :p

Et puis si on doit commencer à ne parler que des langages les plus utilisés dans le milieu professionnel, autant passer à Coldfusion et ASP pour le web, et à COBOL, Fortran et C/C++ pour le reste. Ca reste les langages les plus utilisés, on y ajoute Java et peut être l'un ou l'autre moindre, et on basarde le reste sous prétexte que ce n'est pas utilisé dans le milieu du travail?

J'ai pas dit de faire du smalltalk, j'ai dit que parler de POO avec PHP, c'est un non-sens...

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne robocop # Posté le 19/03/2008 à 15:54:49
Avatar
Groupe : Membres
Citation : Pio154
Citation : robocop
Super.
Faudrait aussi parler de empty().

Cette fonction ne sert presque à rien ;) Vérifie si la variable est null (0, vide ou pas définit du tout).


Non, ça, c'est isset !!
Justement, mathéo parle toujours de isset, et il fait parfois des trucs comme ça :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. if(isset($_POST['marchin']) AND $_POST['marchin'] != NULL)
  3. ?>


Alors que l'on peut très bien faire ça :
Code : PHP - Afficher / masquer les numéros de ligne
  1. if(!empty($_POST['marchin'])
 
Hors ligne anonyme # Posté le 19/03/2008 à 15:56:18
Groupe :
Citation : robocop
Citation : Pio154
Citation : robocop
Super.
Faudrait aussi parler de empty().

Cette fonction ne sert presque à rien ;) Vérifie si la variable est null (0, vide ou pas définit du tout).


Non, ça, c'est isset !!
Justement, mathéo parle toujours de isset, et il fait parfois des trucs comme ça :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. if(isset($_POST['marchin']) AND $_POST['marchin'] != NULL)
  3. ?>


Alors que l'on peut très bien faire ça :
Code : PHP - Afficher / masquer les numéros de ligne
  1. if(!empty($_POST['marchin'])

D'ailleurs le != NULL, c'est un peu n'importe quoi.
Mais empty n'est pas suffisant, avec ça on peut toujours faire passer des chaînes qui ne contiennent que des espaces ou des retours à la ligne.
Hors ligne robocop # Posté le 19/03/2008 à 16:00:06
Avatar
Groupe : Membres
Ouais, ba faut rajouter un trim() alors :) .
 
En ligne Pio154 # Posté le 19/03/2008 à 16:08:24
prendre du temps pour coder
Avatar
Groupe : Membres
Bas oui :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2.  
  3. if (isset($var) AND trim($var));
  4.  
  5. ?>


;) empty() ne vérifie pas si il y a que des espaces vides ;)

Mon blog : cliquez ici !
:) :D ;) :p :lol: :euh: :( :o :colere2: o_O ^^ :-°
:ange: :colere: :diable: :magicien: :ninja: >_< :pirate: :'( :honte: :soleil: :waw: :zorro:
 
Hors ligne 1337833K # Posté le 19/03/2008 à 16:18:56
fgsfds
Groupe : Membres
Citation : `Haku
Citation : 1337833K
Pourtant, PHP est un des langages de haut niveau les plus durs, bien plus dur que le Python, le Perl, ou le Ruby par exemple ...

Pourquoi donc ?
Et à quel niveau surtout ? Syntaxique ?

Parce que la bibliothèque standard est gigantesque, et si tu ne connais pas sa quasi-totalité par coeur, tu peux rien faire ...

Image utilisateur
Big Brother is watching you.
The chocolate is a lie !
Vous pouvez faire un geste gratuit pour changer le monde. :)
Libérez quelqu'un et quelqu'un-d'autre !
 
Hors ligne entwanne # Posté le 19/03/2008 à 16:22:28
fan de ZoZor
Avatar
Groupe : Membres
Pour ma part, cela fait un moment que je code en PHP, je code en utilisant beaucoup de fonctions, mais je ne comprends pas ce qu'apporte la programmation OO par rapport à la programmation fonctionnelle.

Jabber : Image utilisateur
Image utilisateurDernier article du blog (cliquer pour accéder) :
Image utilisateur
 
Hors ligne KEvinou # Posté le 19/03/2008 à 16:23:33
Heureux
Avatar
Groupe : Membres
Merci bien monsieur M@teo21 pour l'attention que vous portez à vos cours.

Image utilisateur
 
Hors ligne anonyme # Posté le 19/03/2008 à 16:26:24
Groupe :
Citation : 1337833K
Citation : `Haku
Citation : 1337833K
Pourtant, PHP est un des langages de haut niveau les plus durs, bien plus dur que le Python, le Perl, ou le Ruby par exemple ...

Pourquoi donc ?
Et à quel niveau surtout ? Syntaxique ?

Parce que la bibliothèque standard est gigantesque, et si tu ne connais pas sa quasi-totalité par coeur, tu peux rien faire ...

Je suis loin de la connaître par coeur et pourtant je peux faire à peu près tout ce que je veux.
Et la documentation est très bien faite, trouver une fonction est très facile.

Le seul seule chose qu'on peut (à mon sens) à la librairie standard c'est sa disparité. IL n'y a aucune convention de nommage (hexdec, bin2dec, html_entity_decode, htmlentities, etc.)et d'une fonction à l'autre les paramètres changent de place sans raison apparente (strpos, in_array, etc.).

Citation : entwanne
Pour ma part, cela fait un moment que je code en PHP, je code en utilisant beaucoup de fonctions, mais je ne comprends pas ce qu'apporte la programmation OO par rapport à la programmation fonctionnelle.

Et ça montre bien que tu parles sans savoir. La programmation fonctionnelle n'a _rien_ à voir avec le PHP (PHP est bati autour de l'impératif et fourni une couche objet) : http://fr.wikipedia.org/wiki/Programmation_fonctionnelle
Hors ligne nicknick63 # Posté le 19/03/2008 à 16:28:46
Avatar
Groupe : Membres
Ca c'est sur que c'est super dérangeant. D'où l'intérêt d'utiliser un logiciel qui gère bien l'auto-complétion ^^ .

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne shi # Posté le 19/03/2008 à 16:33:24
Groupe : Membres
La POO, c est bien mangez-en.
mais avec moderation.
Il y a pas mal d extremismes concernant ce qui peut se pretendre etre un language supportant la programmation orientee objet.
Dire que PHP est un language OO ou non, c est un troll qui peut durer assez longtemps.
Ensuite, concernant l utilite de la POO, je dirai... ca depend!
Voici un extrait de quelques pistent indiquant que ce paradigme de programmation peut etre a envisager (en anglais desole):

- Design is large, or is likely to become large

- When data is aggregated into obvious structures, especially if there's a lot of data in each aggregate
For instance, an IP address is not a good candidate: There's only 4 bytes of information related to an IP address. An immigrant going through customs has a lot of data related to him, such as name, country of origin, luggage carried, destination, etc.

- When types of data form a natural hierarchy that lets us use inheritance.
Inheritance is one of the most powerful feature of OO, and the ability to use it is a flag.

- When operations on data varies on data type
GIFs and JPGs might have their cropping done differently, even though they're both graphics.

- When it's likely you'll have to add data types later
OO gives you the room to expand in the future.

- When interactions between data is best shown by operators
Some relations are best shown by using operators, which can be overloaded.
When implementation of components is likely to change, especially in the same program

- When the system design is already object-oriented

- When huge numbers of clients use your code
If your code will be distributed to others who will use it, a standard interface will make maintenence and safety easier.

- When you have a piece of data on which many different operations are applied
Graphics images, for instance, might be blurred, cropped, rotated, and adjusted.

- When the kinds of operations have standard names (check, process, etc)
Objects allow you to have a DB::check, ISBN::check, Shape::check, etc without having conflicts between the types of check.

Damian Conway

Bon, c est presqu une liste recursive dont certains points restent obscurs pour les non inities.
Mais finalement la POO est une evolution logique du processus de creation partant d un style sequentiel:(desole pseudo PHP^^; j en ai pas fait depuis 2-3 ans~~)

$queue = array(); //creer un tableau
$paused=0; //creer un flag true/false

$queue[0] = '1'; //ajouter des elements dans la queue
$queue[1] = '2';
$queue[2] = '3';

array_pop($queue); //enlever le dernier element de la queue

if($paused==0) {
$element = array_shift($queue); // avoir le premier element
echo $element; proceder le premier element de la liste
}
$paused=1;

if($paused==0) {
foreach($queue as $element) { // executer toute la queue
echo $element;
}
}

Bon ca va bien une fois mais c est pas pratique.
Passons a un style de programmation procedural:

//fonctions qui regroupent des bouts de sequences
function enqueue($queue,$element) {
return array_push($queue,$element);
}
function dequeue($queue) {
return array_pop($queue);
}
function execute($queue) {
echo array_shift($queue);
return $queue;
}
function flush($queue) {
while($queue) {
$queue = execute($queue);
}
}
//et dans le fichier d application
$queue = array(); //creer un tableau
$paused=0; //creer un flag true/false
$queue = enqueue($queue,'1');
$queue = enqueue($queue,'2');
$queue = enqueue($queue,'3');
$queue = dequeue($queue);
if($paused==0) {
$queue = execute($queue);
}
$queue = flush($queue); // retourne vide

si on veut avoir 2 queues en meme temps qui travaillent sur 2 types de donnees, c est deja un peu plus simple mais ca devient compliquer de gerer les 2 arrays et les 2 pauses...
On voit cependant que l implementation un peu plus basse de la queue ne nous est pas accessible, c est le debut de l encapsulation (on donne acces au programmeur que l utile et garde la basse besogne pour la fonction)

Ici c est simple, nous avons un ensemble de functions qui travaillent sur une donee.
C est souvent la premiere methode qui nous traverse l esprit pour resoudre un probleme.
Mais si on regarde de plus pres, nous avons une queue, constituee d une array et d un flag de pause. De meme, on doit pouvoir agir sur cette queue en inserant, enlevant, executant son contenu.
Ainsi, la POO transforme le principe suivant:

Des fonctions travaillant sur des donnees

En le principe suivant:

Des donnees qui possedent des methodes (fonctions) et proprietes (variables)

Une queue a des methodes, actions (enqueue,dequeue, execute, flush) et des proprietes qui representent son etat interne (une array vide ou pas, une pause on ou off). on peut evidemment en rajouter encore et encore.

Toute la difference est la, en mettant de cote la creation d une classe, en POO, nous obtiendrons le code suivant :

$queue1 = new Queue(); // en arriere plan, une array et un flag pause a ete cree
$queue2 = new Queue(); //encore une nouvelle array et un nouveau flag, le tout differencier de la $queue1

Queue est la classe definissant le comportement general.
lorsqu on appel new sur Queue, on cree une nouvelle instance de cette classe, comme si vous donniez vie a une nouvelle entite.
On refere a un objet par this (ca) en php a l interieur meme de la classe car il s agit d une abstraction. on pourrait dire que this est un mot cle designant l adresse memoire de l objet avec ses proprietes et methodes.
dans d autres langues, this est aussi me ou encore self.

$queue1->add('1');
$queue2->add('mysong.mp3');
$queue1->pause(1); // nous verifions que la value est 1 ou 0
$queue1->execute(); // nous verifions que la queue n est pas en pause avant
$queue1->dequeue(); // nous verifions que la queue n est pas vide
$queue2->flush(); // la encore $queue2 verifie que son etat interne de la pause est off

Ainsi, lorsque nous creons une classe, nous creons un patron qui contiendra les methodes, actions et proprietes avec lesquelles chaque instance, naissance concrete de la classe, pourra interagir.
Par example : Humain : parler, marcher, dormir sont des actions
langue, yeux, bras sont des proprietes.
Humain(francais)->parle = on aura du francais
Humain(japonais)->parle = on aura du japonais.

On voit ici que la POO permet d avoir des methodes identiques dont le comportement peut changer en fonction d un etat interne, d une variable, le polymorphisme.(ici Humain est peut etre une factory delegant l instantiation a des sous classes)
La classe Humain parle le language universel des Dieux.
La classe Humain::Concret::japonais parle le language du Japon mais garde les memes proprietes a l identiques, marcher, dormir. c est l inheritance

Evidemment toutes les donnes du language sont conserves dans des variables inaccessibles du programmeur pour eviter que notre japonais se mette a parler subitement russe! l encapsulation permet de s assurer que l objet garde son etat interne intact.

inheritance
encapsulation
polymorphisme


Hummm, la POO peut paraitre complique parce qu elle necessite de penser d abord son application a un degre d abstraction superieur a une methode de programmation procedural.
Tout ce qui est fait en POO peut etre fait sans. mais ca serait dommage de s en priver quand il faut et si le language le permet.

Est-ce utile de rajouer une partie sur la POO dans un tutoriel sur php pour debutant?
Un debutant va-t-il un jour creer une application pouvant beneficier des avantages de la POO?
peut-etre pas
peut-etre si

Je suis normand...
Hors ligne robocop # Posté le 19/03/2008 à 16:33:53
Avatar
Groupe : Membres
Citation : nicknick63
Ca c'est sur que c'est super dérangeant. D'où l'intérêt d'utiliser un logiciel qui gère bien l'auto-complétion ^^ .

T'en connais pas un bon logiciel sous linux ?
 
Hors ligne b1nary0d1g1t # Posté le 19/03/2008 à 16:36:08
In libro veritas
Avatar
Groupe : Membres
Citation : entwanne
Pour ma part, cela fait un moment que je code en PHP, je code en utilisant beaucoup de fonctions, mais je ne comprends pas ce qu'apporte la programmation OO par rapport à la programmation fonctionnelle.


Juste une petite précision :
la programmation fonctionnelle c'est encore autre chose... wikipedia
Ce dont tu parles s'appelle de la programmation impérative.

La POO prend tout son avantage dans le cas d'application de +/- grande envergure.
comme beaucoup de gens l'on dit ici, son application dans le cas d'un site web est discutable.
cf le debut du tuto C++ de mateo si tu veux mieux cerner le truc... c'est plutot bien expliqué :)

edit: oops grilled x2 :D

In libro veritas
--------------------------------------------
Linux Mint 4.0 Daryna KDE CE
 
Hors ligne nicknick63 # Posté le 19/03/2008 à 16:39:56
Avatar
Groupe : Membres
Citation : robocop
Citation : nicknick63
Ca c'est sur que c'est super dérangeant. D'où l'intérêt d'utiliser un logiciel qui gère bien l'auto-complétion ^^ .

T'en connais pas un bon logiciel sous linux ?

Je ne suis (malheureusement) pas sous Linux, mais je pense qu'Eclipse ou Vim devraient faire l'affaire...
Linux dispose des meilleurs éditeurs de texte du monde, donc il me parait évident qu'il y a un paquet de logiciels qui gèrent agréablement l'auto-complétion.
Enfin bon je ne suis pas du tout un expert de Linux, je ne peux pas trop te renseigner sur ce sujet.

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne shine-neko # Posté le 19/03/2008 à 17:04:41
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Merci tonton Mat

Juste au passage is_null ? il faut aussi comme empty foutre un trim ?

La v3 de Shine-Shiina est sortit
Qui n'a jamais rêver d'apprendre a dessiner , Cuisiné japonnais dévorer de nouveaux manga fait par des copains et d'apprendre le japonais ?
=> La réponse se trouve ici
Image utilisateur

 
Hors ligne crow # Posté le 19/03/2008 à 17:42:00
Groupe : Membres
Citation : `Haku
Le MVC implique juste la séparation de trois composants (modèles, vues, controlleur(s)), mais rien ne décrit ces composants ou ce qui les sépare.

A ouai, je n'avais pas vu ça comme sa. Moi mon controller fait appel à une méthode contenue dans la vue qui fait elle même appel aux les différentes méthodes contenue dans le model. J'arrivais pas à me représenter ça sans poo. Autant pour moi ;)

Citation : `nicknick63
Je ne suis (malheureusement) pas sous Linux, mais je pense qu'Eclipse ou Vim devraient faire l'affaire...

Eclipse et zend studio marchent bien sur linux et gèrent un grand nombre de fonctionnalités comme l'autocomplétition.
Il y a un comparatif des différents éditeurs ici : http://php.developpez.com/comparatifs/editeurs/

Moi sur windows j'utilise pspad car il est assez léger et à beaucoup de fonctionnalités. Par contre je suis à la recherche d'un éditeur ou d'un petit utilitaire permettant de reformater du code php (mettre les tabulations etc ...).
 
Hors ligne Log'Ans # Posté le 19/03/2008 à 17:51:24
Stay Tranquilo ! Oh no !
Avatar
Groupe : Membres
Citation : `Haku
Citation : Control
`Haku tu (as) fait quoi comme étude pour savoir tout sur le PHP en profondeur?
Car la tu t'amuse à réduire tout le monde en pièce :D . Personnellement je te crois plus facilement que les autres vu que tu as créé un excellent tutoriel... .

Sinon, j'irai jeter un coup d'œil aux mises à jours tantôt.

Ce ne sont pas les études qui m'ont appris quoi que ce soit sur l'informatique ou sur le PHP. Et je ne sais pas tout, loin de là.
J'ai commencé avec les tutos de M@teo et j'ai eu la chance d'avoir envie de faire un forum, ce qui m'a permis d'apprendre beaucoup de choses. Mais c'est surtout en côtoyant de grands codeurs (Bison, winzou, Shepard, karamilo, Tracker, strucky, Savageman et bien d'autres) qu'on a l'envie et la motivation de continuer et d'en apprendre toujours plus.


C'est si émouvant :'( :'( ...

Image utilisateur
 
En ligne Pio154 # Posté le 19/03/2008 à 17:51:27
prendre du temps pour coder
Avatar
Groupe : Membres
Citation
Moi sur windows j'utilise pspad car il est assez léger et à beaucoup de fonctionnalités. Par contre je suis à la recherche d'un éditeur ou d'un petit utilitaire permettant de reformater du code php (mettre les tabulations etc ...).


:o , le fénient, fait le toi même.

Mon blog : cliquez ici !
:) :D ;) :p :lol: :euh: :( :o :colere2: o_O ^^ :-°
:ange: :colere: :diable: :magicien: :ninja: >_< :pirate: :'( :honte: :soleil: :waw: :zorro:
 
Hors ligne Diti # Posté le 19/03/2008 à 18:23:45
Manchot empereur
Avatar
Groupe : Membres
Citation : robocop
Citation : nicknick63
Ca c'est sur que c'est super dérangeant. D'où l'intérêt d'utiliser un logiciel qui gère bien l'auto-complétion ^^ .

T'en connais pas un bon logiciel sous linux ?

En léger tu as Scribes (apt), en lourd mais très puissant tu as l'EDI web Aptana.
 

Désolé, les commentaires de cette news sont désactivés, vous ne pouvez pas en ajouter !

Revenir à liste des news

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 267 Zéros connectés | Requêtes SQL 5 requêtes | Temps de génération de la page : Total (SQL) 0.0432s (0.0211s)