Qu'est-ce que le framework Joomla et comment pouvez-vous l'utiliser?
Quand les gens pensent à Joomla, ils pensent souvent au CMS Joomla, qui est un excellent système pour créer des sites Web. Mais Joomla est plus que le CMS. Sous le capot, il y a autre chose: le framework Joomla.
Le framework Joomla est un groupe de parties PHP séparées. Vous pouvez même les utiliser en dehors de Joomla CMS! Par exemple dans les applications personnalisées, les outils CLI, les microservices ou d'autres projets PHP.
paquets-cadres Joomla
Le framework Joomla est modulaire. Cela signifie qu'il a beaucoup de petits paquets. Chacun fait un travail. Par exemple:
- Connexion à la base de données
- Traitement HTTP
- Fonctions du système de fichiers
- Système événementiel
Vous pouvez utiliser chacun d'eux sur son propre. Vous n’avez pas besoin du CMS Joomla complet. Vous pouvez les installer avec Composer de Packagist. Par exemple, utilisez uniquement le paquet Joomla Database dans un projet Symfony ou Laravel. Pas besoin d'installer Joomla CMS.
Bibliothèques PHP
Lorsque vous développez du code en PHP, vous n'avez pas à tout écrire à partir de zéro. Par exemple, vous voudrez peut-être exporter des données vers un PDF. Ne réinventez pas la roue et programmez votre propre bibliothèque PDF, mais utilisez plutôt une bibliothèque existante. Vous pouvez utiliser "compositeur" pour intégrer les bibliothèques PHP faites par d'autres dans vos propres projets. Ces bibliothèques sont testées et mises à jour.
Packagist.org
Pour les paquets de bibliothèque PHP, il existe un site Web appelé Packagist. Vous pouvez y trouver toutes sortes de paquets, y compris les paquets Joomla. Il suffit de chercher https://packagist.org/?query=joomla.
Compositeur
Composer est l'outil pour gérer les paquets PHP. Il vous aide à installer des bibliothèques. Il suffit d'utiliser:
compositeur nécessite joomla/http
Composer téléchargera la bonne version dans un dossier appelé /vendor/ . Il gère également d'autres paquets nécessaires et met en place le chargement automatique pour vous. Dans votre fichier PHP, il vous suffit d'utiliser ce qui suit pour charger toutes les bibliothèques:
nécessite __DIR__ . «/vendor/autoload.php»;
Bibliothèques à l'intérieur de Joomla
Joomla utilise ses propres paquets Framework, ainsi que d'autres bibliothèques PHP. Ceux-ci sont déjà inclus dans Joomla dans le dossier /libraries/vendor/
Vous n’avez pas besoin de les mettre à jour vous-même. En fait, vous ne devriez pas les mettre à jour vous-même! Parce que cela pourrait rendre le CMS de base Joomla différent et quand il provoque des erreurs, il serait difficile à résoudre. Les développeurs Joomla maintiennent les paquets dans /libraries/vendor/ pour vous. Lorsqu'ils créent des paquets d'installation et de mise à jour Joomla, ils incluent également ces bibliothèques. Sûr et facile.
Utilisation des bibliothèques PHP dans votre propre extension
Si vous créez votre propre extension, vous pouvez également utiliser composer pour utiliser des bibliothèques PHP supplémentaires. Mais ne les mettez pas dans le dossier /bibliothèques/vendeur/ de Joomla!
Ce dossier est géré par Joomla et peut être remplacé par des mises à jour. Au lieu de cela, placez les bibliothèques dans votre dossier d'extension: /components/com_mycomponent/vendeur/
De cette façon, vous contrôlez la version et évitez également les conflits avec Joomla ou d'autres extensions.
Utilisation des paquets Joomla Framework sans CMS Joomla
En fait, pour les petits projets, vous n'avez peut-être pas besoin du CMS Joomla complet. Vous pouvez utiliser un peu de PHP avec seulement quelques paquets Joomla Framework. Aller à Packagist, trouver un package, installer avec Composer:
Le compositeur a besoin de joomla/registry
Dans votre code PHP:
exiger la DIR . «/vendor/autoload.php»;
utiliser Joomla\Registry\Registry;
$registry = nouveau registre;
$registry->set('welcome', 'Hello Joomla world!');
echo $registry->get('bienvenue'); // Bonjour le monde de Joomla!
Simple et propre.
Exemple: Afficher les articles Joomla Headless à l'aide du framework Joomla
Pour montrer comment utiliser le framework Joomla, j'ai créé un exemple pour afficher des articles d'une catégorie spécifique dans une application PHP autonome, sans utiliser le CMS Joomla complet: https://github.com/pe7er/db8-joomla-framework-exampleLe code utilise le package de base de données de Joomla pour se connecter à une base de données Joomla existante et récupérer du contenu directement, ce qui est très agréable pour les cas d'utilisation sans tête ou de type microservice. Mon exemple se concentre sur l’utilisation directe de Joomla Framework, sans s’appuyer sur l’API Web Services de Joomla ou sur l’environnement CMS.
Caractéristiques
- Sans tête: Aucune installation de Joomla CMS requise
- Utilise les packages Joomla Framework via Composer
- Tire des articles de la table #__content
- Sortie HTML réactive à l'aide de Bootstrap 5
- Facile à configurer et à étendre
Exigences
- PHP 8.1 ou supérieur
- Compositeur
- Une base de données Joomla 4.x ou 5.x existante
- Serveur Web avec index.php accessible
Installation
- Cloner le dépôt:
clone de gitCette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. :pe7er/db8-joomla-framework-example.git
cd db8-joomla-framework-exemple - Installez les dépendances avec Composer:
compositeur installent - Configuration
Copiez l'exemple .env.example en .env et modifiez les informations d'identification de la base de données
Utilisation
- Après la configuration, lancez l'application en ouvrant index.php dans votre navigateur (via un serveur local comme Apache ou le serveur intégré de PHP):
php -S localhost:8000 - Dans une visite de navigateur: http://localhost:8000
Vous devriez voir une liste d'articles de style Bootstrap de votre base de données Joomla.
Exemple d'image
Mon exemple de code simple utilise Joomla Framework Packages pour récupérer des articles d'une catégorie spécifique à partir d'une base de données Joomla. Dans mon environnement de test, la catégorie contenait 8 articles Joomla et s'affichait comme suit:

Références du cadre Joomla
- Site web: https://framework.joomla.org/
- Projet GitHub: https://github.com/joomla-framework
- Paquets sur Packagist: https://packagist.org/?query=joomla
Conclusion
Le framework Joomla est un puissant secret caché, mais inconnu de nombreux développeurs. Si vous créez des extensions Joomla — ou même simplement des applications PHP — vous pouvez utiliser ces packages. Ça fait gagner du temps. Cela rend votre code meilleur.
Tout ce qu'il vous faut, c'est Compositeur... et un peu de curiosité.
Vous aidez avec Joomla Framework?
Si vous voulez aider à améliorer le framework Joomla:
- Nous avons besoin de volontaires pour améliorer la documentation de Joomla Framework
- nous avons besoin de plus de développeurs pour améliorer et maintenir les paquets Joomla Framework
Certains articles publiés sur le Joomla Community Magazine représentent l'opinion personnelle ou l'expérience de l'auteur sur le sujet spécifique et peuvent ne pas être alignés sur la position officielle du projet Joomla.