Skip to main content
Als een gebruiker contact met je opneemt, wil je in een vast formaat kunnen controleren of het package is in- of uitgeschakeld en welke driver is geselecteerd. Met AboutCommand::add() voeg je een sectie voor je package toe aan de uitvoer van php artisan about, zonder een apart command te implementeren. De officiële documentatie bevat een basisvoorbeeld van de registratie. Deze pagina bekijkt ook de implementatie van Laravel 13 en gaat dieper in op het moment waarop informatie wordt verzameld, de JSON-types, botsende sectienamen en de registratiestatus in tests.

De getoonde inhoud registreren in de provider

Het volgende voorbeeld gaat ervan uit dat courier.enabled en courier.driver al als packageconfiguratie zijn geregistreerd. Hoe je configuratie registreert, lees je in Packageconfiguratie samenvoegen en cachen.
runningInConsole() is een voorwaarde die onnodige registratie bij HTTP-requests voorkomt. Het is geen voorwaarde die alleen de uitvoering van about detecteert: de registratie vindt ook plaats bij andere Artisan-commands. Het ophalen van de configuratie binnen de closure hierboven wordt echter niet uitgevoerd op het moment van registratie.
Kies expliciet welke items je toont. Geef geen API-sleutels, toegangstokens, verbindings-URL’s met inloggegevens of volledige configuratie-arrays weer. Ook de JSON-uitvoer maskeert geheime informatie niet automatisch. Vraag gebruikers bij een supportvraag om alleen de sectie van het package te delen en de inhoud vóór het delen te controleren.

Registratie en evaluatie als aparte momenten zien

In Laravel v13.35.0 verzamelt add() de gegevens niet direct, maar voegt een registratieclosure toe aan de statische $customDataResolvers. Bij het uitvoeren van about worden de weer te geven gegevens samengesteld en worden de geregistreerde closures voor het ophalen van gegevens geëvalueerd. Door configuratiewaarden binnen de closure op te halen, weerspiegel je de status op het moment dat het command wordt uitgevoerd, in plaats van ze vooraf buiten add() in te lezen en in een array vast te leggen. Het filter --only wordt daarentegen pas na de evaluatie van de closures voor het ophalen van gegevens toegepast.
Ook als je zoals hier alleen een standaardsectie opgeeft, wordt de closure van Acme Courier hierboven geëvalueerd. Niet getoond worden is iets anders dan niet uitgevoerd worden. Haal toegevoegde informatie daarom uit configuratiewaarden of lichte lokale status. Als je er connectiviteitscontroles naar externe API’s, databasequery’s of het herschrijven van bestanden in stopt, kan zelfs een command dat een ongerelateerde sectie bekijkt traag worden of mislukken. Verplaats connectiviteitscontroles en reparaties naar aparte Artisan-commands.
De voorwaarde runningInConsole() alleen garandeert niet dat de boot() van een uitgestelde service provider wordt uitgevoerd. Wil je de diagnostische informatie altijd registreren, plaats die registratie dan in een provider die direct wordt geladen. Voor een opzet waarin alleen de servicebindings worden uitgesteld, zie Uitgestelde service providers.

CLI-weergave en JSON-types combineren

Wil je alleen de informatie van het package bekijken, geef dan de sectienaam op in kleine letters en in snake case. Voor Acme Courier is dat acme_courier.
Met het registratievoorbeeld hierboven ziet de JSON er als volgt uit wanneer courier.enabled true is en courier.driver log.
In de CLI wordt Enabled weergegeven als ENABLED. AboutCommand::format() is een helper waarmee je console voor de CLI en json voor JSON kunt opgeven. Het voorbeeld hierboven geeft alleen console op, dus in JSON wordt de oorspronkelijke booleaanse waarde teruggegeven. Je hoeft de weergavetekst van de CLI niet ongewijzigd in JSON te hergebruiken. Gebruik je zoals in het voorbeeld namen die bestaan uit gewone Engelse woorden gescheiden door spaties, dan zijn filters en JSON-sleutels makkelijker te hanteren. Sleutels waar geautomatiseerde processen op vertrouwen, kunnen ook veranderen als je de weergavenaam aanpast. Controleer de compatibiliteit dus bij elke release.

Geef secties een naam die specifiek is voor je package

add() voegt items toe aan dezelfde sectie. Een sectie met dezelfde naam opgeven vervangt dus niet de volledige eerder geregistreerde inhoud. Kies een naam die zich onderscheidt van andere packages, zoals Acme Courier, en beperk toevoegingen aan de standaardsecties van Laravel Environment, Cache, Drivers en Storage tot gevallen waarin dat echt nodig is. Registreer je in dezelfde sectie meerdere keren een item met dezelfde naam, dan kunnen in de CLI meerdere regels overblijven, terwijl ze in JSON onder dezelfde sleutel worden samengevoegd en de laatste waarde overblijft. Vermijd ook namen die anders geschreven zijn maar na omzetting naar snake case dezelfde sleutel opleveren. Houd de registratie op één plek en ontwerp items zo dat ze zowel in de CLI als in JSON uniek zijn.

Statische registratiestatus in tests

Aan het begin van de uitvoering van about worden de weergavegegevens $data opnieuw geïnitialiseerd, maar de lijst met registraties voor toegevoegde informatie, $customDataResolvers, blijft behouden. Zo kan de informatie telkens opnieuw uit dezelfde registraties worden verzameld, maar als de boot() van de provider binnen hetzelfde PHP-proces herhaaldelijk wordt uitgevoerd, kunnen registraties zich opstapelen. AboutCommand::flushState() is een methode die de registraties van alle packages en de weergavegegevens wist. Roep deze niet aan in een productieprovider om dubbele items in je eigen sectie te voorkomen: daarmee gaat ook de diagnostische informatie van andere packages verloren. Bouw je de applicatie opnieuw op met je eigen testinfrastructuur, leg dan vast wie verantwoordelijk is voor het resetten van de status tussen tests. Reset je de status, doe dat dan vóórdat de betreffende provider wordt gestart en voer daarna alle benodigde registraties uit. Controleer ook of je bestaande testinfrastructuur de status al reset.

Controlepunten vóór een release

Controleer de volgende combinaties met Laravel-packages testen met Orchestra Testbench en in een echte applicatie die het package gebruikt.

Gerelateerde pagina’s

Laravel-packages ontwikkelen

De basis van providers en het registreren van resources.

Packageconfiguratie samenvoegen en cachen

De relatie tussen standaardwaarden, overschrijvingen door gebruikers en de configuratiecache.

Geraadpleegde primaire bronnen

Laatst gewijzigd op 11 oktober 2026