• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

Vous pouvez être accompagné et mentoré par un professeur particulier par visioconférence sur ce cours.

J'ai tout compris !

Introduction : pourquoi ce cours ?

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

PHP, un langage moderne

Avec plus de 80% de part de marché, PHP est à l'heure actuelle le principal langage serveur du Web. Il souffre malgré tout d'un déficit d'image par rapport à des technologies concurrentes comme ASP.NET ou Java EE. Ces dernières imposent un cadre rigide qui guide et rassure le développeur. À l'inverse, PHP est une technologie très souple qui laisse beaucoup de liberté, y compris celle de faire un peu n'importe quoi. 

PHP a souvent l'image  d'un langage mal fichu, réservé aux débutants ou aux bidouilleurs. Cette réputation lui vient en partie de son histoire mouvementée : contrairement à des langages comme Java et C#, pensés par des armées d'ingénieurs chez Sun Microsystems et Microsoft, PHP a émergé du Web à partir d'une idée personnelle, puis a évolué au fur et à mesure des besoins. Cela explique le côté empirique, voire un peu confus, du langage et certaines mauvaises décisions de conception qui ont eu des conséquences néfastes, notamment en matière de sécurité.

Mais PHP a changé.

Les versions 5.x ont (enfin !) apporté les fonctionnalités avancées dont le langage avait besoin : support complet de la programmation orientée objet, gestion des exceptions, espaces de nommage... Encore faut-il connaître et savoir mettre en œuvre ces nouvelles possibilités.

Une autre caractéristique de PHP est la richesse de son écosystème : des milliers de projets (composants, bibliothèques, frameworks, etc.) cherchent à améliorer l'expérience du développeur PHP. Il n'est pas facile de se repérer dans cette jungle foisonnante pour choisir les bons outils.

Objectifs du cours

Trop de ressources d'apprentissage de PHP présentent encore des pratiques dépassées, voire dangereuses. Trop de développeurs écrivent encore du code PHP selon des techniques obsolètes, rendant leurs projets difficiles à maintenir et à faire évoluer.

Le cours que vous lisez a deux objectifs :

  • Montrer comment concevoir une application web fonctionnelle, robuste et sûre avec PHP.

  • Présenter une sélection d'outils efficaces issus de son écosystème.

Pré-requis

Pour suivre ce cours dans de bonnes conditions, vous devez :

  • Connaître les langages fondamentaux du Web, HTML et CSS. Si ces langages vous sont inconnus, consultez les cours d'OpenClassrooms ou de Codecademy.

  • Connaître les bases du langage PHP et avoir déjà accédé à une base de données relationnelle avec PHP. Si vous êtes un débutant complet, commencez par vous familiariser avec ce langage avec le cours de Codecademy. Pour découvrir comment interagir avec une base de données relationnelle avec PHP, consultez le cours d'OpenClassrooms.

  • Disposer d'une machine de développement incluant le serveur web Apache et le serveur de bases de données MySQL. Une solution simple consiste à les installer ensemble en utilisant une distribution Apache/PHP/MySQL tout-en-un comme XAMPP sous Windows ou MAMP sous Mac.

  • Avoir une version de PHP au moins égale à 5.4.11. Vous pouvez vérifier la version de PHP installée sur votre machine en visualisant le résultat de la fonction phpinfo. Les distributions Apache/PHP/MySQL incluent généralement cette information dans leur environnement d'adminsitration. Une autre solution consiste à taper dans un terminal la commande ci-dessous.

php --version

Méthode de réalisation

En nous inspirant des méthodes agiles comme SCRUM, nous allons bâtir l'application d'exemple par étapes successives appelées « itérations », ou encore des sprints dans SCRUM.

Certaines itérations seront consacrées à l'ajout de nouvelles fonctionnalités à l'application. Les autres permettront d'améliorer son architecture en pratiquant ce qu'on appelle la refactorisation ou remaniement du code(refactoring).

Exemple de certificat de réussite
Exemple de certificat de réussite