Depuis Joomla! 4, nous avons modifié le processus de développement. Il n'est plus possible de cloner le dépôt et d'obtenir une installation Joomla utilisable. Nous suivons les bonnes pratiques et mettons en place un processus de compilation (build) pour le CMS.
Guide de démarrage rapide
Les étapes pour configurer votre environnement de développement dépendent de votre système d'exploitation. Nous ne pouvons pas rédiger de documentation pour chaque système d'exploitation (OS), merci d'utiliser votre moteur de recherche préféré pour trouver un tutoriel.
Outils nécessaires
- PHP - essentiellement la même chose que ce dont vous avez besoin pour exécuter un site Joomla, mais vous avez besoin de la version PHP CLI (interface en ligne de commande). (Voir la page Configuring a LAMPP server for PHP development.)
- Composer - pour gérer les dépendances PHP de Joomla. Pour obtenir de l'aide sur l'installation de Composer, consultez la documentation sur https://getcomposer.org/doc/00-intro.md.
- Node.js - pour compiler les fichiers JavaScript et SASS de Joomla. Pour obtenir de l'aide sur l'installation de Node.js, veuillez suivre les instructions disponibles sur https://nodejs.org/en/. Notez que vous aurez besoin de NodeJS 12 ou supérieur pour installer Joomla.
- Git - pour la gestion des versions.
Étapes pour configurer l'environnement local
- Cloner le dépôt
- Extraire (checkout) la branche de la dernière version.
- Exécuter composer install (composer = gestionnaire de paquets pour PHP) depuis la racine du dépôt git. (Vous pouvez ajouter --ignore-platform-reqs si vous n'avez pas PHP-LDAP installé localement et que vous n'en avez pas besoin.)
- Exécuter npm ci (npm = gestionnaire de paquets pour JavaScript, le paramètre "ci" signifie "clean install") depuis la racine du dépôt git. (Notez que vous avez besoin de npm 10.1.0 ou supérieur pour cela. Exécutez npm install -g npm@lts pour mettre à jour votre version de npm vers la version LTS.)
Les utilisateurs de Linux et OSX peuvent configurer l'alias bash suivant en plaçant ce qui suit dans le fichier ~/.bashrc :
alias jclean="rm -rf administrator/templates/atum/css; \
rm -rf templates/cassiopeia/css; \
rm -rf administrator/templates/system/css; \
rm -rf templates/system/css; \
rm -rf media/; \
rm -rf node_modules/; \
rm -rf libraries/vendor/; \
rm -f administrator/cache/autoload_psr4.php; \
rm -rf installation/template/css"
alias jinstall="jclean; composer install; npm ci"
Ceci supprimera tous les fichiers compilés présents dans votre système et exécutera une nouvelle installation en une seule commande en appelant jinstall à l'intérieur de votre installation Joomla.
Guide de démarrage un peu plus détaillé
Joomla ressemble de nos jours à beaucoup d'autres outils web. Il comporte une grande partie en PHP et de plus en plus de code JavaScript. Alors que le codage PHP ne nécessite pas beaucoup de préparation, JavaScript nécessite beaucoup d'outillage. La raison principale est que personne n'écrit de code d'une manière que chaque navigateur comprend, le code doit donc être transpilé, par exemple d'ES6 vers une version compatible de JavaScript. Il en va de même pour le CSS. Pour Joomla, nous utilisons SASS, qui sera converti en CSS natif afin que tout navigateur puisse le comprendre. En contrepartie, la mise en place d'un environnement de développement est un peu plus compliquée, mais l'outillage rend le codage plus pratique. Grâce aux observateurs (watchers) et au rechargement automatique du navigateur, vous pouvez voir vos modifications en temps réel.
PHP
Il devrait suffire d'exécuter composer install car cela installera les dépendances PHP enregistrées dans le fichier composer.lock. Vous pouvez le faire autant de fois que vous le souhaitez. Cela n'installera de nouveaux packs que lorsque le fichier composer.lock est modifié. N'exécutez pas composer update car cela mettra à jour tous les packs vers des versions plus récentes et mettra à jour le fichier composer.lock.
Remarque : vous devrez peut-être exécuter composer install avec l'option --ignore-platform-reqs pour ignorer les exigences de plateforme spécifiées dans Composer. C'est le cas si vous n'avez pas l'extension LDAP de PHP installée.
Scripts Node/npm
Node.js est fourni avec un gestionnaire de packs appelé NPM (à certains égards identique à Composer). NPM dispose d'une commande run et nous avons préparé des scripts pour vous faciliter la vie. Vous devez exécuter les commandes à la racine du dépôt lorsque vous avez modifié des fichiers JS ou SASS. Auparavant, vous deviez exécuter npm ci une fois, pour installer les dépendances.
npm run build:css
Cela compilera les fichiers SASS en CSS et créera également les fichiers minifiés.
npm run build:js
Cela compilera et transpilera les fichiers JavaScript au format correct et créera des fichiers minifiés.
npm run watch
Ceci est identique à la commande build:js mais surveillera les modifications et construira automatiquement les fichiers mis à jour dans le répertoire media. Les fichiers SASS ne sont pas encore inclus.
npm run lint:js
Cela effectuera une vérification de syntaxe sur tous les fichiers JavaScript ES6 par rapport à la norme de code JavaScript (pour plus d'informations sur la norme de style de code Joomla, veuillez consulter le manuel des normes de codage à l'adresse le manuel des normes de codage.
npm run test
Cela exécutera une suite de tests JavaScript.
Problèmes possibles
En exécutant composer install, vous pouvez rencontrer ces erreurs
Problem 1
- Installation request for joomla/ldap 2.0.0-beta -> satisfiable by joomla/ldap[2.0.0-beta].
- joomla/ldap 2.0.0-beta requires ext-ldap * -> the requested PHP extension ldap is missing from your system.
Problem 2
- Installation request for symfony/ldap v5.1.5 -> satisfiable by symfony/ldap[v5.1.5].
- symfony/ldap v5.1.5 requires ext-ldap * -> the requested PHP extension ldap is missing from your system.
La solution consiste à exécuter composer install avec l'option --ignore-platform-reqs pour ignorer les exigences de plateforme spécifiées dans Composer. C'est le cas si vous n'avez pas l'extension LDAP de PHP installée.
composer install --ignore-platform-reqs
Si vous recevez une erreur de connexion comme celle illustrée ci-dessous, supprimez le fichier administrator/cache/autoload_psr4.php.
