Σχετικές διαδρομές στον χώρο ονομάτων στην OOP στην PHP
Ας υποθέσουμε ότι στο αρχείο index.php γίνεται
η ακόλουθη κλήση:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Όπως ήδη γνωρίζετε, όταν γίνεται αναφορά σε μια κλάση, πριν από τον χώρο ονομάτων της, πρέπει να γράφεται αντίστροφη κάθετος. Στην πραγματικότητα, αυτό δεν είναι απαραίτητο. Εάν αυτή η κάθετος δεν γραφτεί, τότε ο καλούμενος χώρος ονομάτων θα υπολογιστεί σχετικά σε σχέση με τον τρέχοντα χώρο ονομάτων. Δείτε το παράδειγμα:
<?php
namespace Admin\Data;
new Core\Controller; // ισοδύναμο με \Admin\Data\Core\Controller
?>
Δίνονται δύο κλάσεις:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Απλοποιήστε τον κώδικα για την κληρονομικότητα της κλάσης, λαμβάνοντας υπόψη το γεγονός ότι οι χώροι ονομάτων των κλάσεων μας έχουν ένα κοινό τμήμα.
Δίνονται δύο κλάσεις:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Έτσι δημιουργούνται αντικείμενα αυτών των κλάσεων στο
αρχείο index.php:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Απλοποιήστε τον κώδικα για τη δημιουργία αντικειμένων, λαμβάνοντας υπόψη τον χώρο ονομάτων, στο οποίο δημιουργούνται τα αντικείμενα των κλάσεων μας.