Hallo zusammen,
ich bin noch nich so tief in PHP und lerne grade die OOP. Nun bin ich da in dem kapitel namespace angelangt und kämpfe mit dem Verständnis vom Sinn des ganzen. Theoretisch klingt das ja ganz toll aber in der Praxis denk ich mir nur WTF - das is doch unnütz? Da aber das von allen verwendet wird schein ich einfach nur ein Fehler zu haben. Ich geb mal ein kleines Code beispiel und erklär mal was mein Problem ist.
mein Projekt sieht folgendermassen aus.
Ich habe zwei Klassen "Page.php". Eine wird beim Anzeigen von PDF Seiten benutzt. Und die andere Klasse kommt beim Paginator zum Einsatz.
Um das so benutzen zu können habe ich nun den amespace. Die Index.php sieht daher wie folgt aus:
Verzeichnisstruktur:
Projektverzeichnis
index.php
- Model
- PDF
Page.php
- Paginator
Page.php
Klasse Page.php (PDF)
Klasse Page.php (Paginator)
Soweit so schön. Nun will man ja bei der Angabe vom Namespace nicht immer die ganzen Pfade eingeben und dafür gibs das tolle schlüsselwort "USE"
mit dem man bei der Objekterstellung sich die Pfadangabe sparen kann indem man ein Alias fuer den klassennamen vergeben kann.
die index.php sieht dann wie folgt aus:
Aber da kann ich doch gleich einfach meine Klassen in PDFPage.php und PagPage.php benennen und spar mir den ganzen Scheiss mit dem Namespace.
Ich seh den Sinn einfach nicht. Kann mir einer vielleicht ein Gedankenanstoss geben? Ich denk mir halt, wenn das alle benutzen muss da doch ein Grund
sein der einen signifikanten Vorteil liefert.
danke schonmal im voraus
ich bin noch nich so tief in PHP und lerne grade die OOP. Nun bin ich da in dem kapitel namespace angelangt und kämpfe mit dem Verständnis vom Sinn des ganzen. Theoretisch klingt das ja ganz toll aber in der Praxis denk ich mir nur WTF - das is doch unnütz? Da aber das von allen verwendet wird schein ich einfach nur ein Fehler zu haben. Ich geb mal ein kleines Code beispiel und erklär mal was mein Problem ist.
mein Projekt sieht folgendermassen aus.
Ich habe zwei Klassen "Page.php". Eine wird beim Anzeigen von PDF Seiten benutzt. Und die andere Klasse kommt beim Paginator zum Einsatz.
Um das so benutzen zu können habe ich nun den amespace. Die Index.php sieht daher wie folgt aus:
Verzeichnisstruktur:
Projektverzeichnis
index.php
- Model
Page.php
- Paginator
Page.php
PHP-Code:
<php
require_once './Model/PDF/Page.php';
require_once './Model/Paginator/Page.php';
$page1 = new Model\PDF\Page();
echo $page1->getPage();
echo "<br>";
$page2 = new Model\Paginator\Page();
echo $page2->getPage();
PHP-Code:
<?php
namespace Model\PDF;
class Page {
private $pdfPage = 2;
function getPage() {
return $this->pdfPage;
}
}
Klasse Page.php (Paginator)
PHP-Code:
<?php
namespace Model\Paginator;
class Page {
private $paginatorPage = 1;
function getPage() {
return $this->paginatorPage;
}
}
mit dem man bei der Objekterstellung sich die Pfadangabe sparen kann indem man ein Alias fuer den klassennamen vergeben kann.
die index.php sieht dann wie folgt aus:
PHP-Code:
<?php
require_once './Model/PDF/Page.php';
require_once './Model/Paginator/Page.php';
use Model\PDF\Page as PDFPage;
use Model\Paginator\Page as PagPage;
$page1 = new PDFPage();
echo $page1->getPage();
echo "<br>";
$page2 = new PagPage();
echo $page2->getPage();
Ich seh den Sinn einfach nicht. Kann mir einer vielleicht ein Gedankenanstoss geben? Ich denk mir halt, wenn das alle benutzen muss da doch ein Grund
sein der einen signifikanten Vorteil liefert.
danke schonmal im voraus
Kommentar