PSR-4 wurde durchgewunken; Verkürzt Klassennamen im Autoloader
Kommentare

Die Framework Interoperability Group freut sich über die erfolgreiche Einigung über die PHP Standards Recommendation 4. Die Spezifizierung von PSR-4 ist relativ kurz und befasst sich lediglich mit dem

Die Framework Interoperability Group freut sich über die erfolgreiche Einigung über die PHP Standards Recommendation 4. Die Spezifizierung von PSR-4 ist relativ kurz und befasst sich lediglich mit dem Autoloading. Die neue Empfehlung lässt sich auf PSR-0 aufsetzen, wobei sie dessen tiefe Verzeichnisstrukturen beseitigen will. PSR-4 besteht aus vier Punkten:

  1. The term „class“ refers to classes, interfaces, traits, and other similar structures.
  2. A fully qualified class name has the following form:()*
    1. The fully qualified class name MUST have a top-level namespace name, also known as a „vendor namespace“. 
    2. The fully qualified class name MAY have one or more sub-namespace names. 
    3. The fully qualified class name MUST have a terminating class name. 
    4. Underscores have no special meaning in any portion of the fully qualified class name.
    5. Alphabetic characters in the fully qualified class name MAY be any combination of lower case and upper case. 
    6. All class names MUST be referenced in a case-sensitive fashion. 
  3. When loading a file that corresponds to a fully qualified class name … 
    1. A contiguous series of one or more leading namespace and sub-namespace names, not including the leading namespace separator, in the fully qualified class name (a „namespace prefix“) corresponds to at least one „base directory“. 
    2. The contiguous sub-namespace names after the „namespace prefix“ correspond to a subdirectory within a „base directory“, in which the namespace separators represent directory separators. The subdirectory name MUST match the case of the sub-namespace names. 
    3. The terminating class name corresponds to a file name ending in .php. The file name MUST match the case of the terminating class name. 
  4. Autoloader implementations MUST NOT throw exceptions, MUST NOT raise errors of any level, and SHOULD NOT return a value. 

Mit der Empfehlung gehen auch bekannte Probleme einher. So wird es nach Einhaltung von PSR-4 nicht mehr so einfach wie unter PSR-0 sein, den Verbleib einer Klasse im Dateisystem an ihrem Namen abzulesen. Doch auch mit den Alternativen dazu wird man auf Schwierigkeiten stoßen, die im Meta-Dokument festgehalten wurden. Aufmacherbild: recommended stamp von Shutterstock / Urheberrecht: Aquir

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -