PINS (PINS IS NOT SYMFONY) est un mini framework qui se construit petit à petit en fonction de l'avancement de mes cours en ligne. Ces fichiers peuvent donc être utilisés tels quels, mais il n'y a pas de documentation, si ce n'est les explications de ce ReadMe et je n'ai pas prévu d'en faire une dans un futur proche. Ils ont en fait été prévus comme support pour mes cours que vous pouvez trouver sur 2 plateformes différentes :
-
Créer un site Web dynamique de A à Z avec PHP se trouve chez Udemy.
Le cours est né sur UDEMY, mais j'essaie maintenant de maintenir les 2 plateformes au même niveau.
- Le premier dossier "basique" contient la première expérimentation pour passer d'un template HTML à un site PHP dynamique de base. On part d'une template qui provient du site HTML5up. Cela permet d'un part de se lancer directement dans le code PHP et d'autre part de se trouve dans une situation plus réaliste où un designer nous fournit un gabarit que l'on doit transformer. Pour ce premier POC (Proof Of Concept) on se contente de coder de façon précédurale quelques fonctions qui permettraient de faciliter, voire d'industrialiser le développement de sites. L'expérience peut être poussée plus loin mais le but est de montrer la faisabilité sans aller jusqu'au bout des possibilités (pour l'instant...). Et aussi de montrer les limites du procédural, ce qui nous conduira à refaire l'exeercice mais cette fois en Programmation Orientée Objets.
- Le second dossier "poo" contient le mini framework codé en Programmation Orienté Objet. Il reprend l'idée de template avec une syntaxe "à la Twig" et la mise en œuvre du modèle de conception MVC. Cette fois le projet est plus ambitieux, sans vouloir refaire Symfony ou Laravel, il est intéressant de se poser les mêmes questions. Depuis l'architecture et l'arborescence que l'ont choisi, jusqu'aux fonctions que l'on voudrait automatiser, en passant par la sécurité et la robustesse du framework que l'on construit. Ce n'est pas du tout le même si on le code "pour soi" ou pour que cela puisse être utilisé par d'autres.
- Le troisième dossier est l'aboutissement du projet. Le framework étudié dans le second dossier est cette fois plus abouti et nettoyé de tous les fichiers de travail. Le noyau du framework est maintenant stabilisé, ce qui permet d'étudier comment ajouter des pages, des fonctionnalités et continuer à développer de nouvelles extensions au framework.
La branche
mastercontient la version de base, sans le blog et les accès base de données. Une branche spécifiqueMySQL-POOest dédiée à la partie MySQL.
TODO: Tout réorganiser dans des branches pour plus de clarté.
Le template Massively provient du site HTML5up.
En plus des dossiers du template Massively, il y a 3 dossiers spécifiques à notre framework :
- classes contient la librairie de base.
- contenu contient la partie de contenu spécifique à chaque page du site.
- template contient les templates de pages.
Le dossier themes contient les dossiers du ou des thèmes utilisés par le site. Chaque thème est constitué des ressources habituelles : images, fichiers css, javascript, etc. Et au moins d'un template HTML, sous la forme d'un fichier avec l'extension twig.
Les templates HTML sont écrits avec une syntaxe TWIG (très) simplifiée, il faut en créer au minimum un qui sera utilisé par défaut pour toutes les pages du site. Chaque page peut toutefois appeler un template spécifique.
Un template peut hériter d'un autre (1 seul niveau d'héritage).
Le pages du site doivent être créées dans le dossier controleur sous la forme d'une fonction controleur qui retourne dans un tableau les différentes variables du template.
- PHP Standard Recommandation
- Composer pour gérer les dépendances d'un projet et les installer automatiquement.
- PHPUnit
- Symfony
- Laravel
- Bootstrap
- Bootswatch
- Shards, Bootstrap, en mieux.
Pourquoi pas me remercier en m'offrant un café ?
Réalisé par @marcyves
Ces scripts sont mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France.

