Ist es erforderlich sind, um die namespace-Datei?
Dies ist, was ich zur hand haben:
//Person.php
namespace Entity;
class Person{
}
User-Datei:
//User.php
use Entity\Person;
$person = new Person;
Hier, es schlägt fehl, wenn ich weiß nicht die Person.php
- Datei. Wenn ich es, das alles funktioniert. Muss ich unbedingt benötigen, um die Datei, auch wenn Sie namespaces verwenden? Wenn wir überhaupt benötigen, um include - /require-Dateien, wie kann dann namespaces effektiv eingesetzt werden? Auch, können wir behaupten Ordner-Struktur von verschachtelten namespaces?
- Ich denke, dass Sie gelernt, das php-include-vor-namespace. Namespaces nur die Gruppe Symbole. es muss nicht alles beinhalten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort auf deine Frage ist "ja" und "Nein".
In der Tat der code der Implementierung der Klasse
Person
aufgenommen werden muss, da sonst die Klasse nicht definiert ist und kann nicht verwendet werden. Wo sollte die definition kommen, wenn der code nicht enthalten? Der php-interpreter nicht denke der Klassen-Implementierung. Das ist das gleiche in allen Programmiersprachen, die durch die Art und Weise.Aber es ist etwas genannt Autoloading in php. Es ermöglicht Ihnen, automatisch bestimmte Dateien. Der Mechanismus basiert auf einer Zuordnung von Klassennamen zu Dateinamen. So ist es am Ende hinausläuft, php Suche über eine Ordner-Struktur, um eine Datei zu suchen, deren name suggeriert, dass es die eine Klasse implementiert, derzeit erforderlich, in der der code ausgeführt wird.
Aber nicht falsch: das noch bedeutet, dass die Datei aufgenommen werden muss. Der einzige Unterschied ist: die inklusive erfolgt automatisch, also ohne dass Sie die Angabe einer expliziten
include
oderrequire
- Anweisung.Ja, Sie brauchen, um jede Datei.
Ein sehr gutes Beispiel gefunden werden kann hier auf die effektive Nutzung von namespaces.
Mit PSR-0 autoloading, der namespace muss der gleiche sein wie der Ordner, in dem das class-file der Dateiname der gleiche sein wie der Klassenname. Dies gibt Ihnen eine sehr einfache und effektive autoloading mit der Komponistin zum Beispiel.