Récapitulatif de l'unité d'enseignement

Récapitulatif de l'unité d'enseignement

Lien vers le cours

L. Delafontaine, avec l'aide de GitHub Copilot.

Ce travail est sous licence CC BY-SA 4.0.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Récapitulatif de l'unité d'enseignement

Vous l'avez fait, bravo ! 🎉

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Retrospective

Jetons un coup d'œil sur ce que vous avez fait durant ce semestre.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Objectifs de l'unité d'enseignement

En résumé, vous devriez être capable de :

  • Appliquer tous les concepts vu en Programmation serveur 1 (ProgServ1) dans le contexte d'un projet libre.
  • Utiliser des concepts avancés de la programmation orientée objet.
  • Déployer et accéder à votre propre application en ligne et persister les données dans une base de données dédiée.
  • Gérer les préférences et l'authentification des utilisateur.trices.
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Cours 01 - Programmation orientée objet (avancé)

Retrouvez ce cours sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Éléments clés à retenir

  • La programmation orientée objet (POO) est un paradigme de programmation qui organise le code en objets.
  • L'encapsulation permet de protéger les données et les méthodes des objets.
  • La POO facilite la réutilisabilité et la maintenabilité du code.
  • Les concepts avancés de la POO incluent l'héritage, les interfaces, et les classes abstraites.
  • Grâce à l'autoloader, les classes peuvent être chargées automatiquement en fonction de leur namespace.
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Cours 02 - Bases de données et PDO (avancé)

Retrouvez ce cours sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Éléments clés à retenir

  • Les bases de données relationnelles permettent de stocker et de gérer des données de manière structurée.
  • PDO (PHP Data Objects) est une extension de PHP qui permet d'interagir avec différentes bases de données de manière sécurisée et efficace.
  • PDO peut interagir avec plusieurs types de bases de données.
  • SQLite en "Programmation serveur 1 (ProgServ1)", MySQL en Programmation serveur 2 (ProgServ2).
  • Attention aux attaques par injection SQL et attaques XSS !
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Cours 03 - Déploiement

Retrouvez ce cours sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Éléments clés à retenir

  • Déployer une application web PHP demande de bien connaître son architecture (un serveur web (Apache) pour gérer les requêtes HTTP, un interpréteur PHP pour exécuter le code PHP, une base de données pour stocker les données, et un espace de stockage pour les fichiers de l'application).
  • Configurer un environnement de production sécurisé est crucial pour protéger les données et les utilisateurs.
  • Infomaniak est un fournisseur suisse de confiance pour héberger des applications web PHP.
  • Vos applications sont accessibles depuis n'importe où (!).
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Cours 04 - Cookies, préférences, et gestion multilingues (i18n)

Retrouvez ce cours sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Éléments clés à retenir

  • Les cookies sont des fichiers textes stockés sur le poste client (navigateur) qui permettent de stocker les préférences utilisateur (ex. : langue, thème, etc.).
  • Les cookies sont définis par le serveur et envoyés au client via les en-têtes HTTP, puis renvoyés par le client au serveur avec chaque requête HTTP.
  • La gestion multilingue (i18n) permet d'adapter le contenu d'une application web en fonction de la langue préférée de l'utilisateur.
  • Utiliser des fichiers de traduction pour stocker les chaînes de texte dans différentes langues.
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Cours 05 - Sessions, authentification, et autorisation

Retrouvez ce cours sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Éléments clés à retenir

  • Les sessions (qui se reposent sur les cookies) permettent de sauvegarder des informations spécifiques à un utilisateur entre plusieurs requêtes HTTP.
  • L'authentification vérifie l'identité d'un utilisateur (ex. : login/mot de passe).
  • L'autorisation détermine les actions qu'un utilisateur authentifié est autorisé à effectuer (ex. : rôles et permissions).
  • Ces deux concepts sont essentiels pour sécuriser les applications web et isoler/protéger les données des utilisateurs.
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Cours 06 - Gestion et envoi des e-mails

Retrouvez ce cours sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Éléments clés à retenir

  • Les e-mails reposent sur des protocoles standards comme SMTP, IMAP, et POP3.
  • Envoyer des e-mails demande un serveur SMTP configuré correctement. Pour cela, nous utilisons Infomaniak (pour la production) ou Mailpit (pour le développement local).
  • La fonction mail() de PHP est basique et limitée.
  • Utiliser une bibliothèque comme PHPMailer permet d'envoyer des e-mails de manière plus fiable et sécurisée.
  • Utiliser des dépendances externes simplifie le développement.
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Projet libre

Retrouvez ce cours sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Éléments clés à retenir

  • Vous avez réalisé un projet libre de A à Z.
  • Vous avez déployé l'application chez un hébergeur tel qu'Infomaniak.
  • L'application est disponible sur Internet, la rendant accessible à tout le monde.
  • Vous pouvez être fier.es de ce que vous avez fait ! Bravo !

Attention à la date et la forme du rendu (voir support de cours). Je ferai mon possible pour vous rendre les notes au plus vite.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Résultats des formulaires de feedback et évaluations GAPS

Discussions et retours sur l'unité d'enseignement.

Vous pourrez les retrouver sur le dépôt Git de l'unité d'enseignement.

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Conclusion

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Conclusion (1/3)

  • Jusqu'à maintenant, vous avez réalisé des applications web simples avec PHP.
  • Ces applications ont été entièrement construites par vos soins, de la conception à la mise en ligne.
  • Ces applications, bien que simples, respectent les bonnes pratiques de développement web.
  • Néanmoins, vous avez expérimenté les défis et les complexités du développement web et les questions d'implémentation.
  • Il existe d'autres solutions pour ne pas réinventer la roue.
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Conclusion (2/3)

  • Dans le monde professionnel, nous avons des frameworks et des bibliothèques pour nous aider à gérer ces complexités.
  • Ces outils sont conçus pour :
    1. Simplifier et accélérer le développement web.
    2. Garantir la sécurité.
    3. Mettre en œuvre des solutions éprouvées et efficaces.
    4. Le but est de ne pas devoir tout (re)faire à la main.
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Conclusion (3/3)

  • Au prochain semestre, je vous souhaite d'explorer les éléments suivants :
    • Gestion de dépendances externes avec Composer.
    • Utilisation de frameworks PHP populaires comme Laravel ou Symfony.
    • Utilisation du modèle MVC avec systèmes de routage et templating.
    • Mais surtout, je vous souhaite de vous épanouir dans ce qui vous plaît le plus !
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Mes derniers conseils pour la suite

  • Posez-vous toujours les bonnes questions : "pourquoi ?", "est-ce que je fais la bonne chose pour la bonne cause ?"
  • Faites toujours ce qui est bon pour vous : la santé, les relations, les ami.es sont plus important.es que le travail !
  • Ayez toujours confiance en vous et en vos tripes : faites ce que vous pensez être juste !
  • Aidez les autres : la coopération vaut mieux que la compétition !
  • Restez critique : votre opinion compte et peut faire la différence (ne faites pas confiance à tout ce que vous lisez, ex. l'AI !).
HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Merci !

Encore merci pour votre attention et votre engagement tout au long de cette unité d'enseignement (autant ProgServ1 que ProgServ2).

J'ai eu beaucoup de plaisir à enseigner cette matière et à travailler avec vous.

Je vous souhaite tout le meilleur pour la suite de votre parcours académique et professionnel mais, surtout, que vous soyez heureux.ses ! Au plaisir de vous recroiser !

Apéro time! 🎉

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0
Récapitulatif de l'unité d'enseignement

Sources

HEIG-VD - ProgServ2 Course 2025-2026 - CC BY-SA 4.0

URLs

Illustrations