Autoloader voor eigen classes: Apart of via Composer
Momenteel ben ik lekker bezig met mijn CMS-project, en ik gebruik momenteel een hoop classes, en ook diverse classes en packages via Composer. Voor alle Composer-packages gebruik ik de standaard Autoloader die Composer aanmaakt, maar mijn eigen classes gebruiken nog geen autoloader. Nu wil ik deze wel gebruiken....
Nu ben ik benieuwd wat jullie gebruiken of adviseren? Een aparte Autoloader voor je eigen classes, interfaces etc.., of ook deze afhankelijk maken van de Composer autoloader. De weg om alles via Composer te doen klinkt verleidelijk, en het meest logisch, maar ik wil niet straks tegen drempels aanlopen.
Wat is jullie advies?
Ik heb dit ook even bij de buren van HelpMij.nl gevraagd. Je weet maar nooit!
Nu ben ik benieuwd wat jullie gebruiken of adviseren? Een aparte Autoloader voor je eigen classes, interfaces etc.., of ook deze afhankelijk maken van de Composer autoloader. De weg om alles via Composer te doen klinkt verleidelijk, en het meest logisch, maar ik wil niet straks tegen drempels aanlopen.
Wat is jullie advies?
Ik heb dit ook even bij de buren van HelpMij.nl gevraagd. Je weet maar nooit!
Gewijzigd op 06/12/2025 14:18:29 door - Ariën -
Ik heb even de voor- en nadelen naast elkaar gelegd, en bij Composer moet je dan, bij gebruik van hun autoloader, steeds na het toevoegen van een class 'composer dump-autoload' uitvoeren. Ik kan het wel in een workflow zetten, maar voor nu lijkt een losse autoloader wat beter.
Maar wederom ben ik wel benieuwd naar jullie ervaringen en beargumenteerde keuze.
Maar wederom ben ik wel benieuwd naar jullie ervaringen en beargumenteerde keuze.
Gewijzigd op 07/12/2025 23:52:12 door - Ariën -
als je een logische opbouw in de naamgeving en evt de namespaces gebruikt, zou dat toch moeten kunnen zonder elke keer composer aan te passen.
Voorbeeld: ik heb voor een project een aantal helper-classes.
Die staan in een map /aap/noot/Helpers/
in composer.json staat
als ik nu ergens in mijn code verwijs naar
\myProject\FooBar\Helpers\algemeen::test();
dan gaat de autoloader opzoek naar een file algemeen.php in die map aap/noot/Helpers
En als ik daar een bijzonder.php plaats, kan ik direct een zelfde soort aanroep in mijn scripts gebruiken, zonder iets met composer of zijn autoloader te doen.
(wel dezelfde namespace gebruiken, en eventueel op hoofdletters letten in je filenames)
Voorbeeld: ik heb voor een project een aantal helper-classes.
Die staan in een map /aap/noot/Helpers/
in composer.json staat
als ik nu ergens in mijn code verwijs naar
\myProject\FooBar\Helpers\algemeen::test();
dan gaat de autoloader opzoek naar een file algemeen.php in die map aap/noot/Helpers
En als ik daar een bijzonder.php plaats, kan ik direct een zelfde soort aanroep in mijn scripts gebruiken, zonder iets met composer of zijn autoloader te doen.
(wel dezelfde namespace gebruiken, en eventueel op hoofdletters letten in je filenames)
Ik ga er eens mee experimenteren. Zou wel mooi zijn dat het ook zonder composer dump-autoload kan
en uiteraard gebruik je dezelfde filename als de name van de class die (alleen) in die file staat.
Maar dat spreekt zo voor zich voor mij, dat ik dat even vergat te melden
Toevoeging op 08/12/2025 12:16:50:
en uiteraard gebruik je dezelfde filename als de name van de class die (alleen) in die file staat.
Maar dat spreekt zo voor zich voor mij, dat ik dat even vergat te melden
Maar dat spreekt zo voor zich voor mij, dat ik dat even vergat te melden
Toevoeging op 08/12/2025 12:16:50:
en uiteraard gebruik je dezelfde filename als de name van de class die (alleen) in die file staat.
Maar dat spreekt zo voor zich voor mij, dat ik dat even vergat te melden
Als je je inderdaad aan de conventies van PSR-4 “Autoloading Standard” houdt (voor de directorystructuur en de namen van namespaces, classes en bestanden), kun je bestanden automatisch laden met élke autoloader die compatibel is met PSR-4. Waaronder de autoloader van Composer.
https://www.php-fig.org/psr/psr-4/
Inspiratie voor je eigen PSR-4-compatibele autoloader vind je hier:
https://www.php-fig.org/psr/psr-4/examples/
https://www.php-fig.org/psr/psr-4/
Inspiratie voor je eigen PSR-4-compatibele autoloader vind je hier:
https://www.php-fig.org/psr/psr-4/examples/
Ik zou alles via de Composer autoloader laten lopen en gewoon PSR-4 aanhouden. Zolang je namespace structuur klopt hoef je geen aparte autoloader te bouwen en hoef je alleen dump-autoload te doen als je composer.json wijzigt, niet bij elke nieuwe class.
Mooie kick! Maar om een lang verhaal kort te maken. Ik heb inderdaad gekozen voor de autoloader van composer.




