PSR-4 autoloader
Home

PSR-4 autoloader

PSR-4 autoloader

Een autoloader vindt de php klasse, de interface of de trait en laadt deze in de PHP compiler wanneer je er om vraagt bij runtime. Dankzij autoload kunnen alle onze applicaties de PHP component inlezen met één autoloader.

Bronnen

PSR-4: Autoloader

Overzicht

Deze PSR richtlijn bepaalt hoe autoloading van klassen uit bestandspaden dient te gebeuren. Het is volledig interoperabel en kan gebruikt worden samen met andere autoloading bepalingen, inclusief PSR-0. Deze PSR beschrijft ook waar bestanden, die worden geautoloaded volgens de specificatie, geplaatst moeten worden.

Bepalingen

  1. De term klas verwijst naar klassen, interfaces, traits en andere gelijkaardige structuren.
  2. Een volledige welgevormde klassennaam is van de volgende vorm:
    \<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
    1. In een welgevormde klassennaam is de 'vendor namespace' de naam op het het topniveau.
    2. Een welgevormde klassennaam han een of meer sub-namespaces bevatten.
    3. De welgevormde klassennaam moet eindigen met een klassennaam.
    4. Onderlijningstekens hebben geen speciale betekenis in een welgevormde klassennaam.
    5. Alfabetische karakters in een welgevolgde klassennaam kunnen om het even welke combinatie van hoofd- en kleine letters zijn.
    6. Verwijzingen naar klassennamen zijn hoofdlettergevoelig.
  3. Als een bestand geladen wordt die overeenkomt met een welgevormde klassennaam:
    1. Een ononderbroken reeks van één of meer namespaces en sub-namespaces aan het begin van de welgevormde klassennaam, met uitzondering van het eerste namespace scheidingsteken (een namespace prefix), stemt overeen met tenminste één basismap.
    2. De ononderbroken sub-namespace namen na de namespace preifx stemt overeen met een submap van de basismap waarin de namespacescheidingstekens directoryscheidingstekens voorstellen. De subdirectory naam moet overeenkomen met de sub-namespaces namen en is hoofdlettergevoelig.
    3. De klassennaam op het einde stemt overeen met een bestandsnaam met een php extensie. De klassennaam en bestandsnaam zijn hoofdlettergevoelig.
  4. Implementaties van autoloader mogen geen uitzonderingen opwerpen, foutmeldingen genereren en ook geen waarde retourneren.

Voorbeelden

PSR-4 mapt een toplevel namespace prefix aan een specifiek pad in het bestandssysteem. à alle mappen en bestanden onder de src/ directory.

De namespace is ModernWays/Helpers en het fysieke pad is vendor/modernways/helpers/src/.

Overeenkomst tabel Bestanden-Klassen

Namespace Klassennaam Bestandsnaam
namespace ModernWays\Helpers; class Feedback modernways\helpers\src\Feedback.php
namespace ModernWays\Helpers; class Log modernways\helpers\src\Log.php
namespace ModernWays\Helpers; class Locale modernways\helpers\src\Locale.php
namespace ModernWays\Helpers; class LogApp modernways\helpers\src\LogApp.php
namespace ModernWays\Helpers\Dal; class Connection modernways\helpers\src\Dal\Connection.php

JI
2015-12-13 11:24:55