Archives mensuelles : mars 2014

MOOC OpenClassrooms PHP/MySQL – semaine 1

Cette semaine a ouvert le MOOC « Concevez votre site web avec PHP et MySQL » organisé par OpenClassrooms.

J’avais déjà participé à un premier MOOC durant l’automne 2013 (c’était d’ailleurs le premier MOOC organisé par OpenClassrooms) et j’avais relaté mon expérience, plutôt positive dans l’ensemble, dans cet article.

Pourquoi participer à un MOOC sur PHP et MySQL pour débutant alors que ça fait près de quinze ans que je développe dans ce langage ? Tout d’abord, parce que je pense que l’on peut toujours apprendre, et que c’est parfois en revenant aux bases que l’on peut (re)découvrir des choses. Ensuite, parce que je trouve ce principe de MOOC et la façon de faire d’OpenClassrooms plutôt sympathiques et que je voudrais voir comment les pratiques évoluent chez eux. Enfin, parce que j’espère en participant activement au forum et aux discussions autour du contenu du MOOC et de son organisation, pouvoir à mon petit niveau aider les débutants dans leur découverte du langage et dans la mesure du possible, distiller quelques « bonnes pratiques » de développement issues de mon expérience et de mes lectures.

Je vais essayer, dans la mesure du possible, de publier un article sur ce blog pour chaque semaine de ce MOOC.

Entrons maintenant dans le vif du sujet…

Organisation du MOOC :

Les cours s’étalent sur quatre semaines. Un certain nombre de vidéos traitant chacune d’un aspect particulier sont mises à disposition des participants durant toute la durée de la formation.

Un exercice est à réaliser avant le dimanche 23h59 afin de valider la semaine. Il est noté sur 10. A la fin, le cumul des notes permettra ou non de valider le MOOC. Lors du premier MOOC auquel j’avais participé, lorsque la note finale était suffisante, un badge était délivré et apparaissait ensuite dans le profil de l’utilisateur. Il semblerait que cette pratique ait été abandonnée afin de mettre en avant les certifications proposées par OpenClassrooms.

Enfin, un forum est à la disposition des participants afin qu’ils puissent échanger sur les cours, les exercices, et sur tous les thèmes en rapport avec le MOOC en général. Un nouveau forum est ouvert chaque semaine. Ce forum n’est pas des plus pratiques, puisque tous les messages se suivent et qu’il est rapidement très difficile de s’y retrouver si l’on ne le consulte pas régulièrement. J’espère que cela évoluera à l’avenir vers un outil plus efficace.

Cette première semaine est consacrée naturellement aux bases de PHP : installation des outils nécessaires, premiers pas avec PHP…

Les cours en vidéo :

Neuf  vidéos sont disponibles cette semaine.

  1. Introduction à PHP
  2. Préparer son ordinateur
  3. Premiers pas avec PHP
  4. Inclure des portions de page
  5. Les variables
  6. Les conditions
  7. Les boucles
  8. Les fonctions
  9. Les tableaux

Elles sont dans l’ensemble plutôt de bonne qualité, même si il peut y avoir de grosses différences de niveau sonore dans certaines.

 1. Introduction à PHP (6’42)

Présentation du fonctionnement d’un site web, différences entre un site statique et un site dynamique, échanges entre le client et le serveur, mention des autres langages utilisés pour le web et des autres serveurs de bases de données.

2. Préparer son ordinateur (8’09)

Installation des outils nécessaires au développement PHP sur son ordinateur : navigateur web, éditeur de texte (SublimeText), Apache, PHP, MySQL (Wamp, Mamp ou Xamp).

 3. Premiers pas avec PHP (8’11)

Première utilisation de PHP pour afficher des informations dans une page HTML. Un petit « echo ‘Bonjour !’; » pour commencer. 🙂

4. Inclure des portions de page (8’34)

Utilisation de PHP pour inclure des portions de page et ainsi éviter la répétition de code HTML pour une entête, un pied de page et un menu. Utilisation de l’instruction « include« .

5. Les variables (5’55)

Règles de nommage, déclaration et utilisation des variables. Présentation des différents types et des opérations de base.

6. Les conditions (10’46)

Présentation des structures conditionnelles en PHP : « if« , « elseif« , « else« , « switch/case« , les opérateurs de comparaison et les booléens.

 7. Les boucles (5’59)

Présentation des structures de boucles : « while » et « for« . Je pense que la structure « do… while » aurait également pu être abordée dans ce chapitre. Il est toujours intéressant de connaître les différences de comportement basiques entre « while » et « dowhile« .

8. Les fonctions (8’49)

Présentation des fonctions de base de PHP (longueur d’une chaîne de caractères, manipulation des chaînes, des dates).

Création et utilisation de fonctions utilisateur.

9. Les tableaux (9’53)

Introduction à la création et à l’utilisation des tableaux en PHP, numériques et associatifs, utilisation de « print_r« . Parcours d’un tableau à l’aide de « for » et de « foreach« .

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Sans surprise, les questions tournent autour des concepts et des informations présentées dans le vidéos et concernent les bases de PHP.

Les échanges sur le forum :

Les échanges sont nombreux et des sujets reviennent.

Je pense que ce qui revient le plus au début, ce sont les problèmes liés à l’installation de Wamp ou Mamp sur les machines des participants. Beaucoup rencontrent des problèmes après l’installation avec un ou plusieurs serveur(s) qui ne démarre(nt) pas. Généralement, des solutions sont trouvées et partagées. J’ai moi même rencontré ce genre de problème l’an dernier et c’est pour cela que lorsque j’ai changé de pc, j’ai préféré travailler uniquement avec des serveurs virtuels (voir mon article à ce sujet).

Ensuite, les participants commencent à se poser des problèmes liés au code, à différentes fonctions, les boucles, les conditions… C’est le moment où ceux qui connaissent un peu mieux le sujet peuvent aider les autres. C’est en général une expérience très enrichissante.

Encore peu de discussions autour du code en lui-même, nul doute que les choses vont changer au fur et à mesure des semaines.

 Mon sentiment concernant cette première semaine :

Depuis ma participation au premier MOOC organisé par OpenClassrooms en septembre/octobre 2013, les choses ont bien évolué, notamment en ce qui concerne les vidéos. Elles sont plus professionnelles, de meilleure qualité, même si il subsiste encore parfois quelques problèmes de niveau sonore. Je n’ai pas non plus rencontré les mêmes problèmes qu’il y a quelques mois pour leur visionnage (le lecteur avait été changé plusieurs fois durant le MOOC). J’ai pu les visionner sans aucun soucis.

Concernant le contenu en lui-même, les bases de PHP sont abordées et cela peut suffire pour démarrer. Le choix de Wamp / Mamp / Xamp est judicieux dans la mesure où il permet d’être rapidement opérationnel pour démarrer avec PHP, sans pour autant se pencher sur les problèmes d’installation et de configuration d’Apache, PHP et MySQL.

Par contre, chaque vidéo ne fait qu’effleurer le sujet abordé. Il s’agit bien entendu d’une introduction afin de mettre les participants sur les rails. Mais dans l’optique de les amener progressivement à s’améliorer, il aurait été intéressant dès ce stade, de proposer quelques exercices accompagnés d’une correction. Des liens vers des exercices ont été proposés dans le forum par d’autres participants, il est dommage qu’ils n’aient pas été directement donnés par les organisateurs. D’après un message de Mathieu Nebra sur le forum en réponse à une question posée par un participant, des exercices seraient proposés à partir de la semaine 2. Le MOOC  n’en sera donc que plus intéressant !

Je regrette par contre que le moteur du forum soit toujours le même, car il n’est pas vraiment pratique. Tous les messages sont affichés à la suite et il n’est pas possible de grouper les conversations. Ce n’est pas trop gênant au début, mais au bout d’une semaine, le forum contient quatorze pages. Pour retrouver une information, il faut parcourir toutes les pages. Et le nombre de pages va forcément augmenter au fur et à mesure de l’avancement du MOOC.

Une dernière remarque, je trouve dommage qu’un lien aussi indispensable que celui du manuel PHP n’ait pas été mentionné dès les premières vidéos de cours.

A bientôt pour la semaine 2 du MOOC.

Installation d’un serveur LAMP, avec Ubuntu et VirtualBox

Il est de plus en plus courant d’utiliser des machines virtuelles pour développer un projet. En tout cas, moi, ça m’arrive tout le temps maintenant.

Au début, j’ai installé VirtualBox sur mon portable. Ensuite, j’ai installé une distribution serveur Ubuntu. N’étant pas un pro de Linux et n’ayant ici que la ligne de commande, j’ai suivi un tutoriel, plutôt bien fait, trouvé sur le web. Tout s’est bien passé. Après avoir tâtonné un peu pour configurer le réseau et faire communiquer mon portable (l’hôte dans le jargon des machines virtuelles), tout fonctionnait bien. Le serveur web répondait, ma page PHP de test s’affichait correctement. Ensuite, je me suis dit « je n’ai pas forcément envie de travailler directement sur la machine virtuelle pour éditer le code PHP, l’idéal serait un répertoire partagé avec l’hôte histoire d’utiliser mes outils habituels ». Et là, j’ai vraiment galéré. Je ne sais pas pourquoi. Dans le tutoriel, ça avait l’air simple. Mais à chaque fois que j’ai utilisé la fonction de répertoire partagé de VirtualBox, j’ai eu des problèmes d’accès. Pourtant, j’ai essayé de donner les droits les plus larges aux utilisateurs sur ce répertoire, mais rien n’y faisait. En lecture, pas de problème (encore que, une fois le répertoire partagé, il arrivait que je n’arrive pas à lire le contenu d’un répertoire en ligne de commande sous Linux), mais en écriture…

J’ai quand même tourné quelques temps comme ça. Et puis un nouveau projet est arrivé. Enfin, nouveau, pas exactement. J’avais travaillé dessus pour mon employeur actuel il y a un peu plus d’un an à son lancement, et là, je reviens dessus « en renfort » pour le terminer. Les choses ont bien évolué en un an. Il y a plus de code, plus de fonctionnalités (ce qui en soit est assez rassurant après un an ;-))… et une machine virtuelle Windows.

La machine virtuelle Windows fait environ 12 Go. Mes collègues travaillaient directement dessus. Je l’ai installée et… c’était lent ! Il faut dire aussi que je n’avais « que » 4 Go de ram sur mon portable de travail. J’ai donc commencé par demander une extension de mémoire. Mais comme ce n’est pas instantané, je me suis demandé si il ne serait pas plus simple de monter un serveur virtuel LAMP, moins consommateur de ressources, et qui me permettrait d’être opérationnel rapidement sur le projet. J’en ai parlé avec le chef de projet qui m’a dit en gros « ok, regarde si tu peux te monter un serveur avant de déjeuner, sinon, on continue comme ça, il faut avancer ». J’avais donc environ deux heures devant moi.

J’ai créé une nouvelle machine virtuelle, installé une distribution Ubuntu Server, avec tout ce qu’il faut pour exécuter des scripts PHP, MySQL… Et là, je me suis dit « plutôt que de galérer encore avec un répertoire partagé, pourquoi ne pas essayer Samba ? ». Grand bien m’en a pris puisqu’en dix minutes à peine, Samba était installé et configuré et mon partage opérationnel. Dix minutes de plus, et l’application en cours de développement était installée également, et je pouvais travailler tranquillement sur le serveur virtuel, à partir de mon portable en continuant d’utiliser Zend Studio. Ouf, j’étais soulagé, je pouvais travailler sur l’application, de façon efficace, sans avoir à souffrir de la taille et donc de la lenteur de la machine virtuelle Windows de mes petits camarades (qui eux avaient déjà des postes équipés de 8 Go de ram).

Par contre, je me suis dit également qu’il serait peut-être bien de me faire un pense-bête histoire qu’à chaque installation d’un nouveau serveur virtuel, je n’aie pas à rechercher les commandes me permettant d’installer et/ou de configurer la machine (ne le faisant pas tous les jours, j’oublie vite ;-)).

C’est ainsi qu’est née l’idée de ce tutoriel sans prétention que je partage avec vous aujourd’hui. Au fur et à mesure des besoins rencontrés ou de vos remarques, j’essaierai de l’enrichir, de façon à ce qu’il soit le plus complet possible. J’espère en tout cas qu’il pourra vous être utile.

Bon développement !

Téléchargez le tutoriel au format PDF :

Tutoriel installation VM LAMP