Ψευδώνυμα Κλάσεων για Χώρους Ονομάτων στην Αντικειμενοστραφή Προγραμματισμό στην PHP
Ας υποθέσουμε ότι έχουμε δύο κλάσεις Data,
που ανήκουν σε διαφορετικούς χώρους ονομάτων.
Ας υποθέσουμε ότι σε κάποια κλάση χρειαζόμαστε αντικείμενα
και από τις δύο αυτές κλάσεις:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // δημιουργούμε αντικείμενο
$data2 = new \Core\Admin\Data; // δημιουργούμε αντικείμενο
}
}
?>
Ας υποθέσουμε ότι αποφασίσαμε να απλοποιήσουμε τις κλήσεις των κλάσεων
μέσω της εντολής use. Σε αυτή την περίπτωση μας
περιμένει ένα πρόβλημα: και οι δύο κλάσεις έχουν το όνομα Data,
και αυτό σημαίνει ότι θα έχουμε σύγκρουση ονομάτων:
<?php
namespace Project;
// Θα υπάρξει σύγκρουση ονομάτων:
use \Core\Users\Data; // συνδέουμε την πρώτη κλάση
use \Core\Admin\Data; // συνδέουμε τη δεύτερη κλάση
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Για την επίλυση αυτού του προβλήματος υπάρχει μια ειδική
εντολή as, που επιτρέπει να ορίσουμε στην κλάση που συνδέεται
ένα ψευδώνυμο - το όνομα, κάτω από το οποίο
αυτή η κλάση θα είναι προσβάσιμη σε αυτό το αρχείο. Ας
πραγματοποιήσουμε την μετονομασία των κλάσεων Data μας:
<?php
namespace Project;
use \Core\Users\Data as UsersData;
use \Core\Admin\Data as AdminData;
class Test
{
public function __construct()
{
$data1 = new UsersData;
$data2 = new AdminData;
}
}
?>
Απλοποιήστε τον ακόλουθο κώδικα χρησιμοποιώντας
την use:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Απλοποιήστε τον ακόλουθο κώδικα χρησιμοποιώντας
την use:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>