Training #1 : PHPresentation

Pour m’entraîner, j’aime faire des projets un peu différents de ce que j’ai l’habitude de faire (beaucoup de web/Symfony).

J’étais sur Google Slide pour faire une présentation et sans trop savoir pourquoi, cela m’a fait penser à LaTex. Je n’avais connaissance d’aucune solution qui y ressemblait dans l’univers PHP et qu’il serait intéressant de développer ce type de solution pour m’entrainer.

Lien vers le Github

Présentation

PHPresentation est une bibliothèque écrite en PHP pour créer des présentations type PowerPoint mais c’est avant tout un projet d’entrainement pour apprendre les design patterns, le langage PHP, le déploiement d’application, les tests unitaires, etc.

La première diapo de l’exemple posté sur le GitHub du projet.

PHPresentation utilise PHP comme langage, HTML/CSS/Bootstrap pour le rendu, Twig pour le templating et PHPUnit pour les tests unitaires. A terme, j’aimerai utiliser Travis-CI pour l’intégration continue.

Que peut-on faire avec PHPresentation ?

A l’heure où j’écris, PHPresentation se base sur des composants que l’on ajoute aux slides pour la composer.

Les composants (PHPresentation\Utils\Components) sont les suivants :

  • PHPText : un texte
  • PHPTitre : un titre dont la taille peut varier
  • PHPCard : une carte type Bootstrap
  • PHPBlock : un bloc avec un titre et un texte avec une mise en forme
  • PHPList : une liste d’éléments
  • PHPButton : un bouton qui mène vers un lien
  • PHPLink : un lien simple
  • PHPCode : permet d’afficher du code
  • PHPImage : une image

D’autres composants sont prévus comme la grille qui permettra de positionner des composants sur le slide. Tout ceci est décrit sur le Github dans l’onglet “Project”.

Par ailleurs, des options verront le jour pour personnaliser les composants.

Aide

Évidemment si je poste un article ici, c’est pour présenter mon projet, mais aussi pour appeler à l’aide.

Je ne connais pas toutes les pratiques en PHP et surtout les design patterns. Si certains d’entres vous passent par ce blog, je serai reconnaissant de m’envoyer des pull requests pour améliorer mon code ! Notamment pour le Container et l’architecture du code.

Laisser un commentaire