Aspects techniques de ce site
Mise à jour le 28 août 2021
Base de développement (framework)
Ce site est construit avec la base structurée de développement (framework en anglais) LARAVEL
De plus nous utilisons une sorte de surcouche logicielle appelée Livewire.
Laravel est un outil écrit en PHP, extrêmement puissant, qui permet de développer des sites web très facilement en écrivant un code limpide et très concis.
Livewire permet de gérer des interactions localisées n'obligeant pas à recharger toute une page. Il permet de faire de l'Ajax sans presque aucun code javascript.
Avantages et inconvénients
Utiliser un tel outil présente l'inconvénient de vous obliger à recréer vous-même beaucoup des fonctionnalités de base, donc de générer un travail de développement qui n'existerait pas avec d'autres outils comme les CMS Drupal et Wordpress. En effet, avec Drupal et WordPress, les fonctionnalités, « page », « article », « diaporama », etc., sont déjà en place ainsi que la manière dont elles sont structurées pour former un ensemble cohérent. Ici rien de tout cela. Tout est à faire. C'est un peu comme si, au lieu d'acheter sa maison, il fallait, non seulement la construire soi-même, mais, de surcroît, en fabriquer les composants — briques, portes, tuiles, etc.
Heureusement, cet inconvénient est très largement compensé par deux aspects :
- Tout d'abord, votre produit reste parfaitement adapté à votre besoin en ce sens que n'y apparaît que ce qui vous est strictement nécessaire, concourant ainsi à une plus grande légèreté et des temps de téléversement sur le serveur distant grandement réduits, mais aussi à une plus grande fiabilité.
- Ensuite, vous avez plus de souplesse pour développer des outils spécifiques, même si cela requiert quelques compétences en informatique. Au final, c'est un outil qui répond parfaitement à la philosophie « KISS »[^4]
Outils et logiciels mis en œuvre
Un autre avantage — que l'on peut apprécier ou pas —, c'est que cette démarche vous oblige à apprendre et à vous tenir au courant des derniers développement des technologies — et c'est un euphémisme de dire qu'elles sont nombreuses. Pour illustrer ce propos, listons ici quelques technologies, langages et outils à connaître pour la réalisation d'un site comme celui-ci :
- Serveur apache
- PHP : un langage pour l'écriture de scripts coté serveur.
- HTML : le langage de base de toute page web (définit la structure de la page et ce quelle contient)
- Markdown : un langage pour saisir facilement et rendre plus lisible au développeur des pages HTML; une sorte de traducteur.
- CSS : un langage permettant de donner un style aux éléments définis par HTML — sans lui pas de gestion de la taille, de la position, de la couleur etc.
- Blade : un langage pour écrire les modèles de vues.
- Javascript : un langage — à ne pas confondre avec le langage java — pour écrire des scripts coté client — autrement dit coté navigateur — cela permet d'opérer des modifications ou des contrôles de saisie sur la page en local sans générer de trafic sur le réseau.
- npm un gestionnaire de paquets Javascript
- composer un gestionnaire de paquets PHP
- client FTP : un outil qui permet de téléverser des fichiers depuis votre ordinateur vers le serveur distant (ex: filezilla) *
- La base de développement elle-même (appelée aussi Framework) — ici Laravel — qui vous permet de générer l'infrastructure de base de votre site, d'y ajouter des modèles de contenus et des contenus.
- Livewire une sorte de surcouche à Laravel pour des interactions plus localisées réduisant ainsi le trafic réseau
- L'atelier de développement ici Visual Studio Code
Tous ces logiciels et outils sont absolument gratuits et en général Libres ou OpenSource
Mais dans le fond, c'est toujours plus motivant d'exercer sa créativité, plutôt que de devoir composer avec celle des autres, surtout quand elle ne va pas toujours dans le sens que vous souhaitez ou dont vous avez besoin. C'est donc avec un immense plaisir que j'ai pu mettre tout cela en pratique. Espérons simplement que cette modeste réalisation réponde à vos attentes. Le webmestre.