
Wat is het "Joomla framework" en hoe kan je het gebruiken?
Wanneer mensen aan Joomla denken, denken ze vaak aan het Joomla CMS — een geweldig systeem om websites mee te bouwen. Maar Joomla is meer dan alleen het CMS. Onder de motorkap zit nog iets anders: het Joomla Framework.
Het Joomla Framework is een verzameling losse PHP-onderdelen. Je kunt ze zelfs buiten het Joomla CMS gebruiken!
Bijvoorbeeld in maatwerkapplicaties, CLI-tools, microservices of andere PHP-projecten.
Joomla Framework Packages
Het Joomla Framework is modulair opgebouwd. Dat betekent dat het bestaat uit veel kleine pakketten, waarbij elk pakket één specifieke taak uitvoert. Bijvoorbeeld:
-
Databaseverbindingen
-
HTTP-verwerking
-
Bestandsysteem-functies
-
Eventsysteem
Je kunt elk pakket afzonderlijk gebruiken. Je hebt het volledige Joomla CMS niet nodig. Je kunt deze pakketten installeren via Composer vanaf Packagist. Bijvoorbeeld: gebruik alleen het Joomla Database-pakket in een Symfony- of Laravel-project. Geen Joomla CMS nodig!
PHP-bibliotheken
Wanneer je in PHP code ontwikkelt, hoef je niet alles vanaf nul te bouwen. Stel dat je data naar een PDF wilt exporteren: ga dan niet zelf een PDF-bibliotheek programmeren, maar gebruik er gewoon eentje die al bestaat. Je kunt met Composer PHP-bibliotheken van anderen in je eigen project integreren. Deze zijn al getest en worden bijgehouden.
Packagist.org
Voor PHP-bibliotheken is er een site genaamd Packagist. Je vindt er allerlei pakketten, waaronder ook Joomla-pakketten:
🔗 https://packagist.org/?query=joomla
Composer
Composer is de tool om PHP-pakketten te beheren. Het helpt je bij het installeren van bibliotheken. Gebruik simpelweg:
composer require joomla/http
Composer downloadt dan de juiste versie naar een map genaamd /vendor/
. Het regelt ook alle afhankelijkheden en zet automatisch de autoloading op. In je PHP-bestand hoef je alleen het volgende toe te voegen:
require __DIR__ . '/vendor/autoload.php';
Bibliotheken binnen Joomla
Joomla gebruikt zijn eigen Framework-pakketten, maar ook andere PHP-bibliotheken. Deze zijn al opgenomen in Joomla in de map /libraries/vendor/
.
👉 Je hoeft (en mag) deze zelf niet updaten!
Joomla ontwikkelaars beheren deze voor jou. Bij het maken van installaties en updates worden deze bibliotheken automatisch meegenomen. Veilig en eenvoudig.
PHP-bibliotheken gebruiken in je eigen extensie
Als je een eigen extensie bouwt, kun je ook Composer gebruiken om extra bibliotheken te installeren.
⚠️ Maar zet ze niet in Joomla’s map /libraries/vendor/
!
Die map wordt beheerd door Joomla en kan worden overschreven bij een update. Zet jouw libraries liever in een map zoals:/components/com_mijncomponent/vendor/
Zo behoud jij de controle over versies en voorkom je conflicten met Joomla of andere extensies.
Joomla Framework-pakketten gebruiken zonder Joomla CMS
Voor kleine projecten heb je misschien het volledige Joomla CMS niet nodig. Je kunt dan alleen een paar Joomla Framework-pakketten gebruiken.
Ga naar Packagist, kies een pakket, en installeer het via Composer:
composer require joomla/registry
In je PHP-code:
require DIR . '/vendor/autoload.php';
use Joomla\Registry\Registry;
$registry = new Registry;
$registry->set('welcome', 'Hallo Joomla wereld!');
echo $registry->get('welcome'); // Hallo Joomla wereld!
Eenvoudig en overzichtelijk!
Voorbeeld: Joomla-artikelen headless tonen met het Joomla Framework
Om te laten zien hoe je het Joomla Framework kunt gebruiken, heb ik een voorbeeld gemaakt dat artikelen uit een specifieke categorie ophaalt via een los PHP-script — zonder het Joomla CMS te gebruiken:
🔗 https://github.com/pe7er/db8-joomla-framework-example
De code gebruikt Joomla’s databasepakket om verbinding te maken met een bestaande Joomla-database en direct content op te halen. Ideaal voor "headless" toepassingen of microservices.
Het voorbeeld gebruikt dus direct het Joomla Framework — zonder Web Services API of het Joomla CMS.
Features
-
Headless: Geen Joomla CMS-installatie nodig
-
Gebruikt Joomla Framework-pakketten via Composer
-
Haalt artikelen op uit de
#__content
-tabel -
Responsieve HTML-output met Bootstrap 5
-
Makkelijk aan te passen en uit te breiden
Vereisten
-
PHP 8.1 of hoger
-
Composer
-
Bestaande Joomla 4.x of 5.x database
-
Webserver met toegang tot
index.php
Installatie
Clone de repository:
git clone [email protected]:pe7er/db8-joomla-framework-example.git
cd db8-joomla-framework-example
Installeer afhankelijkheden met Composer:
composer install
Configuratie
Kopieer .env.example
naar .env
en pas je databasegegevens aan.
Gebruik
Na de configuratie start je de app via een lokale server, bijvoorbeeld:
php -S localhost:8000
Open daarna je browser en ga naar:
🔗 http://localhost:8000
Je zou een lijst met artikelen uit je Joomla-database moeten zien, gestyled met Bootstrap zoals dit:
Joomla Framework bronnen
-
Website: https://framework.joomla.org/
-
Packagist: https://packagist.org/?query=joomla
Conclusie
Het Joomla Framework is een krachtig, maar vaak onbekend onderdeel van Joomla. Als je extensies maakt voor Joomla — of zelfs alleen PHP-apps — dan kun je veel tijd besparen en je code verbeteren met deze pakketten.
Alles wat je nodig hebt is Composer... en een beetje nieuwsgierigheid.
Meehelpen aan het Joomla Framework?
Wil je helpen met het verbeteren van het Joomla Framework?
-
We zoeken vrijwilligers om de documentatie te verbeteren
-
We hebben meer ontwikkelaars nodig om de Framework-pakketten te onderhouden en verder te ontwikkelen
Dit artikel werd oorspronkelijk gepubliceerd in het Joomla Community Magazine.
Lees alle artikelen in het magazine via deze link
Joomla! bestaat al 19 jaar als Open Source project. Dat is een lange tijd in technologiejaren! 19 jaar geleden kon je niet eens een iPhone bezitten, of X gebruiken en waarschijnlijk had je geen Facebook-account maar een Hyves-account 😊.
Er is veel gebeurd, maar Joomla! is al die tijd een duurzame keuze gebleken als CMS voor miljoenen websites wereldwijd, ondersteund door een betrokken community.