Accéder au contenu principal

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 git Cette 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:

Exemple de framework joomla

Références du cadre 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.

1
2
3
4
5
6
7
EventSchedule
February Customize Backend
February Email Template
February Joomla Academy
February Mywoodlot
February Recover Article
February Web Development II
February Write Tutorial
February JQuery 2
Gets SiteView
JCB
JCB1 Custom Admin View
JCB2 Basis
January Components
January Connecting Third Party Libraries
January Floating Labels
January Happy 2025
January Web Development
March Blog Joomla
March Case Study
March Disaster
MySqlTab
SitViewCodeSuggestions
TutorialKing
Admin Tabs Custom Code
Article Menu Item
ClassDescriptionGitea
Diagram Selection Process
Joomla Extension Changlog View
Menu Templates
Selection Process Current
Starttime
EventSchedule3
Chrome OvkmdodwV6
Dashboard 01 Custom Css Example
Dashboard 02 Disable Core Extensions
Dashboard 03 Edit Layout
Dashboard 04 Images
Dashboard 05 User Dashboard
Dashboard 06 Custom Quick Icons
Dashboard 07 Admin Checklist
Fimage1
Fimage10
Fimage11
Fimage12
Fimage13
Fimage2
Fimage3
Fimage4
Fimage5
Fimage6
Fimage7
Fimage8
Fimage9
Image 20250114112645473
Image1
Image10
Image11
Image12
Image13
Image1a
Image2
Image3
Image4
Image4a
Image5 1
Image5
Image5a
Image6
Image6a
Image7
Image8
Image9
Junction Table