Hallo miteinander
Ich möchte gerne genau verstehen wie in einer Datei eine bestimmte Klasse mittels 'use' statement gefunden wird.
Gemäss der Doku und Google habe ich folgendes herausgefunden:
-use importiert namespaces
-Beliebig viele Importierungen möglich
-Erstellt alias (auch „Importieren / Importregel“ genannt). Ähnlich wie einen symbolischen Link auf eine Datei oder ein Verzeichnis. Arten davon:
--Klassenname
----use My\Full\Classname as Another
--Globale Klasse importieren
----use ArrayObject
--Namespace
----use My\Full\NSname; // Gleich wie My\Full\NSname as NSname
--Interfacename
--Funktionen (>= PHP 5.6)
----use function My\Full\functionName ; // Mit alias: My\Full\functionName as func
--Konstanten (>= PHP 5.6)
----use const My\Full\CONSTANT
Was ich immer noch nicht verstehe, wie wird jetzt eine Klasse gefunden? Werden verschiedene Such-Versuche gemacht? Wird zuerst der pseudo-Pfad im use statement mit der Dateien-Hierarchie abgeglichen, und wenn nichts gefunden wird, in allen PHP files nach einen Namespace gesucht der genau gleich benannt wurde (gemäss der Aussage 'use' importiert Namespaces), und diese Klasse darin zugänglich macht?
Mich verwirrt das im ZendFramework2. Ich habe hier meinen Controller, im Dateikopf steht
Der Pfad im oberen use Statement existiert in der Datei-Hierarchie ab hier: [ROOT]/vendor/ZF2/library/[hier]
Und der Pfad im unteren use Statment ab hier: [ROOT]/module/Objects/src/[hier]
Woher weiss 'use' wo er die Klasse findet?
Ich möchte gerne genau verstehen wie in einer Datei eine bestimmte Klasse mittels 'use' statement gefunden wird.
Gemäss der Doku und Google habe ich folgendes herausgefunden:
-use importiert namespaces
-Beliebig viele Importierungen möglich
-Erstellt alias (auch „Importieren / Importregel“ genannt). Ähnlich wie einen symbolischen Link auf eine Datei oder ein Verzeichnis. Arten davon:
--Klassenname
----use My\Full\Classname as Another
--Globale Klasse importieren
----use ArrayObject
--Namespace
----use My\Full\NSname; // Gleich wie My\Full\NSname as NSname
--Interfacename
--Funktionen (>= PHP 5.6)
----use function My\Full\functionName ; // Mit alias: My\Full\functionName as func
--Konstanten (>= PHP 5.6)
----use const My\Full\CONSTANT
Was ich immer noch nicht verstehe, wie wird jetzt eine Klasse gefunden? Werden verschiedene Such-Versuche gemacht? Wird zuerst der pseudo-Pfad im use statement mit der Dateien-Hierarchie abgeglichen, und wenn nichts gefunden wird, in allen PHP files nach einen Namespace gesucht der genau gleich benannt wurde (gemäss der Aussage 'use' importiert Namespaces), und diese Klasse darin zugänglich macht?
Mich verwirrt das im ZendFramework2. Ich habe hier meinen Controller, im Dateikopf steht
Code:
namespace Objects\Controller; use Zend\Mvc\Controller\AbstractActionController; use Objects\Model\Objects;
Und der Pfad im unteren use Statment ab hier: [ROOT]/module/Objects/src/[hier]
Woher weiss 'use' wo er die Klasse findet?
Kommentar