• 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 !

Conclusion et perspectives

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

Nous voici arrivés au terme de ce cours. Il est temps de faire le bilan de notre travail.

Résumé des fonctionnalités de l'application

Notre application web d'exemple était au départ une simple page écrite en PHP classique. En travaillant de manière itérative, nous avons obtenu une architecture moderne dont on peut rappeler les principales caractéristiques :

  • séparation des responsabilités selon le principe Modèle-Vue-Contrôleur ;

  • intégration du micro-framework Silex ;

  • modélisation objet du domaine et de l'accès aux données ;

  • utilisation des espaces de noms et chargement automatique des classes grâce à Composer ;

  • intégration du moteur de templates Twig pour faciliter l'écriture des vues ;

  • présentation moderne et adaptée au terminal utilisé (responsive design) grâce au framework web Bootstrap ;

  • gestion avancée de la sécurité et des formulaires ;

  • back-office d'administration ;

  • tests fonctionnels automatisés utilisant PHPUnit ;

  • journalisation et gestion des erreurs ;

  • API utilisant le format JSON ;

  • validation des formulaires.

À ce stade, il est intéressant de vérifier la qualité globale de notre application. Pour cela, nous allons utiliser le service SensioLabsInsight : il s'agit d'un outil gratuit qui analyse le code source d'une application web pour signaler les problèmes de qualité.

Résultat de l'analyse du code source par SensioLabsInsight
Résultat de l'analyse du code source par SensioLabsInsight

Les points signalés concernent de petits détails : avec un peu de travail supplémentaire, il serait possible de les corriger afin d'obtenir la médaille de platine :)

 

Pour aller plus loin

Ce cours vous a présenté une manière d'architecturer une application web avec PHP. À vous d'adapter cet exemple à vos contextes métier ! L'architecture présentée ici peut convenir à de nombreux projets.

Celles et ceux qui souhaitent aller encore plus loin ont trois possibilités.

  • Continuer à utiliser Silex en exploitant ses possibilités non présentées ici, comme l'internationalisation .

  • Étudier un autre framework PHP puis faire un choix éclairé. Si cette voie vous intéresse, je vous conseille de vous orienter vers Laravel qui présente certaines similitudes avec Silex et représente un très bon choix.

  • Basculer vers le framework Symfony, en vous aidant évidemment de l'excellent cours OpenClassrooms sur le sujet. Les principales nouveautés qui vous découvrirez avec Symfony sont la notion de bundle (module) pour organiser le code source et l'utilisation d'un ORM (Doctrine) plutôt que l'écriture de requêtes SQL pour s'interfacer avec la base de données. L'architecture finale de notre application est similaire à celle d'un bundle Symfony.

Comme l'explique parfaitement cet article, le choix entre Silex et Symfony n'est pas uniquement fonction de la taille et de la complexité du projet. Les deux frameworks reposent sur les mêmes composants et permettent de répondre aux mêmes défis techniques. La différence essentielle est que Symfony impose sa structure et ses conventions à toute l'équipe de développement. À l'inverse, Silex vous laisse libre de concevoir votre propre architecture. C'est à vous de choisir l'approche qui vous convient le mieux ! 

Remerciements

L'article Learning PHP development with Silex a été ma principale source d'inspiration pour écrire ce cours. J'ai bénéficié des conseils avisés de Matthieu Gauthey, Pablo Pernot, et de mon collègue Alain Arsane. Enfin, je remercie Hugo Hamon de SensioLabs pour sa relecture et ses conseils.‌

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