La programmation en PHP

a marqué ce sujet comme résolu.

Hello tout le monde,

J’ai recommencé à travailler sur un tuto pour PHP. Il est loin d’être complet. Mais j’ai une approche significativement différente de la plupart des cours. N’hésitez pas à donner votre avis. Un plan commence à bien se dessiner donc je pense que vous pouvez déjà avoir des retours !

Je n’attends pas de pré-validation, c’est plutôt pour les curieux, pour ceux qui ont des remarques importantes au début etc. Le cours n’en est pas encore à 50% et j’ai une sale tendance à réécrire le début en boucle :x .

Merci !

+7 -0

Salut,

J’ai vite regardé sans vraiment lire et par hasard, je suis tombé sur cette image :
https://raw.githubusercontent.com/Nekland/Cours-de-PHP/create-plan/Images/Editors/terminal.png

L’image me renvoie une erreur 404.
Je te conseille d’héberger tes images directement dans la galerie de Zeste de Savoir, ainsi les images seront toujours accessibles tant que le tutoriel existera.

Bonne continuation, c’est beaucoup de travail alors courage !

Salut,

J’ai vite regardé sans vraiment lire et par hasard, je suis tombé sur cette image :
https://raw.githubusercontent.com/Nekland/Cours-de-PHP/create-plan/Images/Editors/terminal.png

L’image me renvoie une erreur 404.
Je te conseille d’héberger tes images directement dans la galerie de Zeste de Savoir, ainsi les images seront toujours accessibles tant que le tutoriel existera.

Bonne continuation, c’est beaucoup de travail alors courage !

Green

Oui en fait je vais probablement faire ça en effet. Après j’ai pris le parti d’utiliser mon hébergement perso pour les images pour le moment, et au final je pense qu’il est assez fiable (je le maintiens pour plusieurs raisons). Mais les images de github ont drop parce que j’ai supprimé le projet de l’autre côté. J’ai encore un peu de travail pour repasser sur toutes les images.

Quoi qu’il en soit je vais probablement utiliser la galerie (j’ignorais qu’elle existait) merci.

J’ai hâte de voir ce que ça va donner et suis content qu’un cours sur PHP ne se focalise pas uniquement sur l’environnement web !

entwanne

Cool, j’avais peur que justement on trouve ça trop fantasque :) .

Salut @Nek

Tout d’abord bravo pour te lancer dans l’écriture d’un cours, ce n’est pas ce qu’il y a de plus facile et ça demande bien du courage.

Je n’ai que parcouru le premier chapitre, mais quelque chose m’a sauté aux yeux et me chiffonne.

Depuis PHP a beaucoup évolué et ce n’est pas terminé: on parle aujourd’hui de PHP6 (une nouvelle version majeure de PHP) mais aussi de HHVM (une implémentation de PHP par facebook censé être plus performante).

Cette phrase laisse à penser que le cours est quelque peu en retard. Sachant que PHP 8 est prévu dans 4 mois environ et que PHP 6 n’a jamais vu le jour, ça serait dommage de proposer un cours obsolète.

Après, peut-être que tu comptes le mettre à jour plus trad. Mais sachant certaines des nouveautés, comme le typage ou les lambdas, est-ce que ça ne vaut pas le coup d’y réfléchir maintenant pour les intégrer de façon cohérente dans le cours ?

Haha c’est rigolo. Oui en fait j’ai repris pas mal de choses que j’avais écrit il y a des années de cela sur un repository GitHub (d’ailleurs la création du cours sur ZdS date de 2014!).

Ce cours parlera de PHP 8, pas d’inquiétudes :) . J’ai d’ailleurs mis à jour le passage de suite comme ça ce n’est pas oublié ! (merci)

+1 -0

Non PHP 8 n’est pas sorti, mais je vise la sortie de PHP 8 pour le tuto (fin d’année). J’ai encore beaucoup de boulot ^^' . J’espère que je pourrai quand même le sortir à temps !

C’est cool le fait de l’avoir mis en beta. Ça me met un peu la pression pour avancer plus vite haha :) .

+0 -0

Bonjour les agrumes !

J’ai essayé d’avancer sur le contenu, le plan est un peu étoffé, il y a un début sur la POO. Bref je continue d’avancer à un rythme acceptable pour le moment. N’hésitez pas si vous avez des retours.

Merci d’avance pour vos commentaires.

PS: n’hésitez pas à vous désabonner si les notifications de mise à jour sont chiantes pour vous. Pour moi ça permet de montrer l’avancement à certaines personnes et de me mettre aussi un peu la pression donc c’est important, désolé si vous y voyez un quelconque dérangement.

+0 -0

Salut,

j’ai lu ton débit de chapitre POO et je pense sincèrement qu’il faut que tu te poses un peu avant de faire cette partie : là on est est pile dans le cliché de ce qui se fait en terme de mauvaise explication de la POO :

  • plein de jargon d’un coup
  • peu de mise en situation sur pourquoi on fait ça
  • utilisation des "objets du quotidien" alors que c’est probablement le truc le plus éloigné de ce qu’est un objet en informatique
  • arrivée très rapide de l’héritage alors que la première chose à expliquer devrait être la "composition".

Pour ce qui est de la POO, n’hésite pas à en parler petit à petit. Tu peux même te contenter de parler de PDO (pour les BDD) au départ pour introduire le new, l’opérateur -> et l’opérateur ::.

Je suis d’accord sur certains points et pas sur d’autres:

  1. Le jargon d’un seul coup, ouais, c’est lourd
  2. Mais justement, c’est spécifiquement pour cela que l’exemple n’est pas "real world", pour que le lecteur se concentre sur intégrer les mots (une tentative de pédagogie quoi)
  3. J’ai pas encore parlé d’héritage tu exagères 😭 , mais j’en parlerai probablement avant la composition, cela étant dit, je ne compte pas non plus mettre la composition dans la partie "design pattern" comme on pourrait s’y attendre, j’avais prévu d’en parler comme alternative à l’héritage.

Et sinon commencer la POO sans expliquer les fondements et en attaquant un nouveau sujet (les bdds) je trouve ça hardcore à l’infini :/ . J’aime bien l’idée de l’amener en douceur, mais ce que tu proposes c’est l’inverse !

j’avais prévu d’en parler comme alternative à l’héritage.

C’est pas une alternative, c’est la norme.

Je pense que je vais écrire un billet avec l’état d’avancement de ma manière de voir l’enseignement de la POO pour ouvrir le débat.

j’avais prévu d’en parler comme alternative à l’héritage.

C’est pas une alternative, c’est la norme.

Je pense que je vais écrire un billet avec l’état d’avancement de ma manière de voir l’enseignement de la POO pour ouvrir le débat.

artragis

Mdr "c’est la norme", ligne d’après "j’ouvre le débat".

Plus sérieusement, comme tu le dis, c’est un débat. Et j’ai rien contre la composition, j’ai quelque chose contre le refus d’héritage qui rajoute de la complexité pour rien ;) . On pourrait en parler des heures mais ce n’est pas le sujet de ce cours. Ici j’enseigne les structures du langage, c’est déjà beau de faire de la composition une structure du langage je trouve.

Mdr "c’est la norme", ligne d’après "j’ouvre le débat".

J’ouvre le débat sur ce qu’est "bien expliquer la POO" car franchement j’ai pas d’avis arrêté. Le problème que pose les exemples "IRL" et la prépondérence de l’héritage pour tout et n’importe quoi c’est que ça rend tout très confus dans la tête des gens.

i j’enseigne les structures du langage, c’est déjà beau de faire de la composition une structure du langage je trouve.

Tu dis que ton public c’est les néophyte. Tu peux donc pas leur dire "bon, vous voyez les concept de POO, pour les appliquer en PHP, voici comment faire". Il faut que tu leur explique pourquoi donc il va falloir qu’ils apprennent la POO.

En vrai, il est même possible que tu n’aies pas besoin de mettre la POO en PHP dans ton tutoriel, juste présenter les trois opérateurs new, -> et :: comme des éléments pour manipuler certains types de variables.

+2 -0

Il faut que tu leur explique pourquoi donc il va falloir qu’ils apprennent la POO

Pertinent. Je vais essayer de réfléchir à un paragraphe "pourquoi".

En vrai, il est même possible que tu n’aies pas besoin de mettre la POO en PHP dans ton tutoriel, juste présenter les trois opérateurs new, -> et :: comme des éléments pour manipuler certains types de variables.

Là par contre clairement la plupart des gens font de l’objet en PHP. Je n’ai pas pour but de présenter les usages d’une mineure partie des développeurs PHP (je pense à la programmation fonctionnelle). D’ailleurs même la programmation fonctionnelle passe souvent par des classes avec la fonction __invoke en PHP, alors vraiment j’ai du mal à conceptualiser l’idée de passer outre.

Ou j’ai juste pas compris ce que tu veux dire.

Pertinent. Je vais essayer de réfléchir à un paragraphe "pourquoi".

Nek

Quelques idées en vrac vite fait :

  1. grouper plusieurs données qui ont un lien entre elles ;
  2. mémoriser leur état au cours du cycle de vie de leur programme ;
  3. faire la transition sur les problèmes de complexité sous-jacents que cela pose (plusieurs groupes de données différents à manipuler : besoin d’interfaces abstraites / communes, etc).
  4. quels problèmes résout la composition ? Principe de responsabilité unique (et réutilisation ultérieure éventuelle) ?
  5. quels problèmes résout l’héritage ?
  6. quels problèmes résout le polymorphisme ? Encapsuler des algorithmes qui changent (comme pour le 3e point ?).

Bref la POO a sa raison d’être parce qu’il s’agit d’une solution a un problème, mais je ne vous apprends rien. Il faut juste se dire que les programmeurs n’avaient pas nécessairement besoin de faire des print("Miaou") dans des classes Chat comme c’est bêtement enseigné dans certaines structures éducatives…

Je suis sûr que tu peux trouver de très bon exemples réels dans certaines classes de Symfony. ;)

+1 -0

Bonjour les agrumes !

Je vois que cette histoire d’intro à la POO est un sujet, et vous avez raison dans l’état c’était pas terrible. J’ai tenté une approche qui ne rentre pas trop dans la théorie avec un "comment en est on arrivé là". Je pense qu’elle a l’avantage de mettre tout de suite dans le bain en restant sur les acquis précédents.

J’ai une expérience pas si énorme en C, mais je pense que la POO vient vraiment d’un usage des structs qui correspond à cela. Ne pensez-vous pas ?

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.

Je songe très sérieusement à terminer la partie 1 et une partie de la partie 2 avant la fin de l’année ! Préparez vous à devoir valider tout cela.

En attendant je prend tout commentaire constructif. Voici ma todo pour cette première partie du cours :

  1. Corriger l’installation de PHP pour Windows
  2. Terminer la partie sur les fichiers
  3. Clean tous les todos
  4. Ecrire le contenu qui parle des sessions
  5. Ecrire un TP livre d’or (je ne suis pas encore fixé, ça peut être autre chose… 👀)
+0 -0

Salut,

  1. Ecrire un TP livre d’or (je ne suis pas encore fixé, ça peut être autre chose… 👀)

Nek

Je te suggère de trouver autre chose qu’un livre d’or. Je sais que c’est quelque chose de simple et restreint et donc un bon exercice, mais ça ne parle plus trop aux gens. L’époque où beaucoup de sites web avaient un livre d’or est passée depuis quelques temps. C’est aussi quelque chose qu’on retrouve de moins en moins dans les musées et autres lieux publics, donc je crains qu’une partie (jeune) de ta cible ne sache même pas ce que c’est.

La bonne nouvelle, c’est que tu peux faire comme un livre d’or, mais l’appeler autrement. Il y a plein de sites de partage de choses brèves qui existent. Par exemple, le squelette d’un agrégateur de liens ressemble à un livre d’or. Si tu dépouilles le JdH, tu te retrouves avec un titre, une URL, une personne qui l’a posté, une date.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte