Υποχώροι Ονομάτων στην Αντικειμενοστρεφή Προγραμματισμό στην PHP
Ας υποθέσουμε τώρα ότι έχουμε μια πιο περίπλοκη κατάσταση:
για τον διαχειριστή χρειάζεται να δημιουργηθούν δύο κλάσεις Page
- μία με τα δεδομένα της σελίδας και η δεύτερη - με την παρουσίαση
αυτών των δεδομένων. Ας υποθέσουμε ότι η πρώτη κλάση βρίσκεται
στο αρχείο /admin/data/page.php, και η δεύτερη
- στο αρχείο /admin/view/page.php.
Στα προηγούμενα μαθήματα είχαμε ήδη αποφασίσει ότι όλες οι κλάσεις από τον φάκελο
admin θα ανήκουν στον χώρο ονομάτων
Admin. Ωστόσο, τώρα σε αυτόν τον ίδιο
χώρο ονομάτων έχουμε σύγκρουση δύο κλάσεων.
Για την επίλυση του προβλήματος μπορούμε να δημιουργήσουμε επιπλέον
υποχώρους ονομάτων. Για παράδειγμα, μπορούμε να δημιουργήσουμε
χώρο ονομάτων Admin, και μέσα σε αυτόν υποχώρους
Data και View. Σε αυτήν την περίπτωση
τα ονόματα αυτών των υποχώρων απλώς γράφονται
μέσω ανάποδης πλάγιας γραμμής - τόσο κατά τον ορισμό του χώρου ονομάτων
όσο και κατά τη δημιουργία αντικειμένου της κλάσης.
Εδώ πρέπει να διευκρινιστεί ότι το επίπεδο ένθεσης των υποχώρων ονομάτων δεν περιορίζεται (μπορούμε να δημιουργήσουμε υπο-υποχώρους μέσα σε υποχώρους και ούτω καθεξής).
Λοιπόν, ας ολοκληρώσουμε το παράδειγμά μας που περιγράψαμε παραπάνω.
Για την κλάση Page από το αρχείο /admin/data/page.php
θα ορίσουμε τον χώρο ονομάτων Admin\Data:
<?php
namespace Admin\Data;
class Page
{
}
?>
Για την κλάση Page από το αρχείο /admin/view/page.php
θα ορίσουμε τον χώρο ονομάτων Admin\View:
<?php
namespace Admin\View;
class Page
{
}
?>
Ας δημιουργήσουμε αντικείμενα των κλάσεών μας:
<?php
require_once '/admin/data/page.php';
require_once '/admin/view/page.php';
$adminDataPage = new \Admin\Data\Page;
$adminViewPage = new \Admin\View\Page;
?>
Ας υποθέσουμε ότι έχετε τον φάκελο modules/cart.
Φροντίστε ώστε όλες οι κλάσεις από αυτόν τον φάκελο
να ανήκουν στον χώρο ονομάτων
Modules\Cart.
Ας υποθέσουμε ότι έχετε τον φάκελο modules/shop/cart/.
Φροντίστε ώστε όλες οι κλάσεις από αυτόν τον φάκελο
να ανήκουν στον χώρο ονομάτων
Modules\Shop\Cart.