Développer un thème Wordpress avec des super pouvoirs
Développer des thèmes wordpress c'est souvent un peu ennuyeux... Aujourd'hui nous allons découvrir un framework Wordpress remarquable basé sur Laravel.
Dernière mise à jour le : 1 octobre 2023
Themosis, un framework Wordpress fabuleux
Le framework dont nous allons discuter aujourd'hui s'appelle Themosis. Il a été développé par une agence Web (Themosis Studio) et est basé sur Laravel. Il reprend un bon nombre des fonctionnalités de Laravel, comme par exemple son ORM (Eloquent) le moteur de rendu Blade, ainsi que composer et npm qui sont très pratiques pour intégrer tout types de dépendances à son projet. Son gros avantage est qu'il intègre totalement Wordpress dans cette architecture. En utilisant ce framework vous allez redécouvrir Wordpress et vous pourrez mettre en place des fonctionnaltés très facilement. D'un point de vue sécurité Themosis est également intéressant car il intègrera une surcouche de protection pour votre site Wordpress ainsi que une gestion des Routes spécifiques.
Des fonctionnalités très utiles pour votre projet
Les fonctionnalités que rajoute Themosis sont très intéressantes si vous avez un projet avec des spécifications techniques qui peuvent aller au delà de Wordrpress ou si vous souhaitez développer un Thème Wordpress de manière plus structurée.
Cependant ce framework n'est pas forcément adapté à tous les projets. Si vous n'êtes pas a l'aise avec la programmation orientée objet ou si vous ne connaissez pas le fonctionnement de Laravel ou tout autre framework PHP tel que Symfony, vous risquez de perdre du temps à comprendre le fonctionnement de Themosis. De même si votre projet est assez simple et ne demande pas de foncitonnalités spécifiques ou qu'un plugin Wordpress bien connu peut vous aider à répondre à votre besoin, Themosis ne sera pas fait pour votre projet car sa surcouche apporte beaucoup de complexité à Wordpress au niveau du développement.
LE MVC un atout pour l'organisation
Themosis intègre le modèle MVC de Laravel ce qui est un réel atout pour le développement de votre site. Vous pourrez organiser votre code correctement et vous y retrouvez lors des différentes mises à jour et de la maintenance de votre code.
Eloquent
Eloquent peut être un réel atout pour le développement de votre site. Si vous ne souhaitez pas passer par le modèle de custompost de wordpress et créer votre propre modèle de données, eloquent pourra vous être très utile pour intégrer vos modèles personnalités sur votre site Wordpress.
Bade ou Twig
L'utilisation d'un moteur de template est un réel confort. Vous avez ainsi le loisir de choisir votre moteur de template préféré entre Balde et Twig. Cela vos permettra d'éviter d'insérer du PHP dans vos vues et de mieux structurer l'affichage des différents éléments de votre site.
Le routing simplifié
Themosis intègre également le système de routes de Laravel. Cela vous permettre définir toutes vos routes de manière simplifiés. Les routes natives de wordpress sont également supportés.
Installer Themosis pour son prochain projet
Dans cette partie nous allons voir comment mettre en place un environnement de développement pour Themosis, si vous souhaitez plus d'information sur son fonctionnement,vous pouvez vous référer à la documentation présente sur le site officiel).
Prérequis
Afin de permettre l'intallation de Themoisis, voici les différents outils dont vous allez avoir besoin :
Installation
Téléchargement de Themosis
Ouvrez votre terminal ou PowerShell dans votre dossier de travail et exécutez la commande suivante :
remplacez simplement myproject
par le nom de votre projet.
composer create-project themosis/themosis myproject
Initialisation de Homestead
Themosis V2 fonctionne avec Homestead, pour le faire fonctionner vous devez initialiser homestead.
cd myproject
./vendor/bin/homestead make
homestead.yaml
Configuration du fichier Afin de faire fonctionner votre environnement, modifiez le fichier homestead.yaml
comme ce qui suit. Il vous faudra juste remplacer myproject
par le nom de votre projet, PATH_TO_YOUR_WORKSPACE
par le chemin menant au dossier contenant votre projet et enfin USERNAME
par votre nom d'utilisateur. Si votre nom d'utilisateur comprend des espaces, commencer le chemin par des antislash jusqu'au nom d'utilisateur \
et terminez le par des slash après le nom d'utilisateur /
.
Exemple :
'C:\Users\PC foo bar/.ssh/id_rsa'
ip: VOTRE_IP
memory: 2048
cpus: 1
provider: virtualbox
authorize: 'C:\Users\UNSERNAME/.ssh/id_rsa.pub'
keys:
- 'C:\Users\UNSERNAME/.ssh/id_rsa'
folders:
-
map: 'C:\PATH_TO_YOUR_WORKSPACE\myproject'
to: /home/vagrant/code
-
map: 'C:\PATH_TO_YOUR_WORKSPACE/phpMyAdmin'
to: /home/vagrant/code/phpMyAdmin
sites:
-
map: myproject.test
to: /home/vagrant/code/htdocs
-
map: phpmyadmin.test
to: /home/vagrant/code/phpMyAdmin
databases:
- homestead
name: myporject
hostname: myproject
.env
Configuration du fichier Ce fichier est automatiquement généré lors de la création de votre projet, vous aurez simplement à modifier les urls APP_URL
et WP_URL
. Assurez vous également d'avoir les mêmes identifiants de base de données entre le fichier .env
et le fichier homestead.yaml
APP_ENV=local
APP_DEBUG=true
APP_KEY= ...
APP_TD=themosis
APP_URL=http://myproject.test
WP_URL=http://myproject.test/cms
DATABASE_NAME=homestead
DATABASE_USER=homestead
DATABASE_PASSWORD=secret
DATABASE_HOST=localhost
MAIL_HOST=your-smtp-host
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_FROM_ADDRESS=noreply@themosis.com
MAIL_FROM_NAME=Themosis
Installation du thème
Rendez vous à la racine de votre projet et tapez :
php console theme:install my-theme
Installation des dépendances NPM ou YARN
Une fois le thème installé vous pouvez vous rendre dans le dossier du thème /htdocs/content/theme/my-theme
et taper les commandes suivantes pour installer les dépendances NPM
# Using yarn
yarn install
yarn run watch
# Using npm
npm install
npm run watch
Happy coding
Votre site est installé, il ne vous restera plus qu'a lancer l'utilitaire Vagrant pour monter une machine virtuelle : vagrant up
a la racine de votre projet.
Conclusion
Themosis est un framework très pratique pour structurer son projet Wordpress, le maintenir et le faire grandir petit à petit sans avoir le besoin de tout recommencer. N'hésitez pas à me contacter si vous avez des questions à ce sujet.