⊗ppOpNsRPt 100 of 107 menu

Względne ścieżki w przestrzeniach nazw w OOP w PHP

Załóżmy, że w pliku index.php występuje następujące wywołanie:

<?php namespace Admin\Data; new \Core\Controller; ?>

Jak już wiesz, przy odwoływaniu się do klasy przed jej przestrzenią nazw należy pisać odwrotny ukośnik. W rzeczywistości nie jest to konieczne. Jeśli nie napiszesz tego ukośnika, wywoływana przestrzeń nazw zostanie obliczona względem bieżącej przestrzeni. Spójrz na przykład:

<?php namespace Admin\Data; new Core\Controller; // równoważne \Admin\Data\Core\Controller ?>

Dane są dwie klasy:

<?php namespace Modules\Shop\Core; class Cart { } ?>
<?php namespace Modules\Shop; class UserCart extends \Modules\Shop\Core\Cart { } ?>

Uprość kod dla dziedziczenia klasy, biorąc pod uwagę, że przestrzenie nazw naszych klas mają wspólną część.

Dane są dwie klasy:

<?php namespace Core\Data; class Controller { } ?>
<?php namespace Core\Data; class Model { } ?>

W ten sposób tworzone są obiekty tych klas w pliku index.php:

<?php namespace Core\Data; $controller = new \Core\Data\Controller; $model = new \Core\Data\Model; ?>

Uprość kod do tworzenia obiektów, biorąc pod uwagę przestrzeń nazw, w której tworzone są obiekty naszych klas.

tresmsazhy