Résumé

L’objectif de ce mémoire est de montrer comment on peut créer une bibliothèque qui pourra faciliter la découverte de la Programmation Orientée Objet (POO) à des débutants via des travaux pratiques guidés. Il relate les faits de réalisations de mon projet de mise en situation professionnelle. Pour faire très simple, la POO est un moyen de programmer avec une représentation du monde courant avec des “objets algorithmiques”. Comme dit plus haut cela est une définition très minime car la programmation orienté objets ne se résume pas à ça. Il n’est donc pas si facile de cerner ce qu’est la programmation orientée objet via une simple définition, c’est pour cela qu’il existe différentes méthodes d’apprentissage et l’IUT de Reims s’oriente vers une pédagogie graphique soutenue par ses enseignant-chercheurs. Cependant le passage à PHP pour l’apprentissage de la POO a changé la manière de réaliser les travaux pratiques pendant la formation. En effet il n’existe pas à ce jour de bibliothèque graphique en PHP pour assurer cette méthode d’enseignement. D’où nous vient la problématique de la création d’une bibliothèque PHP ayant la capacité de faire découvrir simplement la Programmation Orientée Objet par la création d’objets graphiques.

Avant le passage en PHP une bibliothèque Java du département Informatique était utilisée pour permettre aux étudiants de créer une fenêtre et des formes sur cette fenêtre, mais cette pratique a été abandonnée lors de l’adoption du PHP comme langage orienté objet principal, jusqu’à l’arrivée de PHP 7.4. L’arrivée de l’extension FFI (Foreign Function Interface) en PHP 7.4 permet d’importer les fonctionnalités d’une bibliothèque externe au sein de PHP. C’est à dire qu’il est possible d’utiliser des librairies partagées écrite en C, en Go ou encore en Rust, etc. Cela ouvre un large panel de possibilités. L’espoir de pouvoir reprendre les anciennes habitudes d’enseignement renaît.

Avec FFI il est donc possible de créer un bibliothèque graphique en PHP capable avant tout de créer une fenêtre, des formes géométriques et des graphiques à l’intérieur de la fenêtre. SFML (Simple and Fast Media Library) qui est une bibliothèque fournissant une interface vers différents éléments de nos ordinateurs comme le système, le fenêtrage, les graphismes, l’audio et réseau, semble être le meilleur choix pour accomplir cette prouesse jusque là inimaginable. La futur bibliothèque utilisera alors les fonctionnalités qu’offre cette dernière pour aboutir à un simple recueil de classes utilisables par n’importe quel débutant de PHP orienté objet.

Bien que cette bibliothèque utilise CSFML elle n’en sera pas une complète copie, d’abord parce que le temps ne le permet pas et ensuite ce n’est que le module graphique qui nous intéresse ici mais malgré cela nous allons imlémenter qu’une parties de ses fonctions. Par ailleurs FFI est une extension expérimentale et possède par conséquent certaines limites. Malgré cela, son apport dans l’univers de PHP ne peut être remis en question car c’est par elle que l’on peut à présent espérer réaliser un jeu d’échec en PHP qui ne soit ni en web ni en ligne de commande.