⊗ppOpNsSN 97 of 107 menu

Sous-espaces de noms en POO en PHP

Supposons maintenant que nous ayons une situation plus complexe : pour l'administrateur, il faut créer deux classes Page - une avec les données de la page, et la seconde - avec la représentation de ces données. Supposons que la première classe se trouve dans le fichier /admin/data/page.php, et la seconde - dans le fichier /admin/view/page.php.

Dans les leçons précédentes, nous avons déjà décidé que toutes les classes du dossier admin appartiendraient à l'espace de noms Admin. Cependant, maintenant, dans ce même espace de noms, nous avons un conflit entre deux classes. Pour résoudre le problème, on peut créer des sous-espaces de noms supplémentaires. Par exemple, on peut créer l'espace de noms Admin, et dedans les sous-espaces Data et View. Dans ce cas, les noms de ces sous-espaces sont simplement écrits avec une barre oblique inversée - à la fois lors de la définition de l'espace de noms et lors de la création d'un objet de la classe.

Il convient de préciser ici que le niveau d'imbrication des sous-espaces n'est pas limité (on peut créer des sous-sous-espaces dans les sous-espaces et ainsi de suite).

Alors, terminons notre exemple décrit ci-dessus. Pour la classe Page du fichier /admin/data/page.php spécifions l'espace de noms Admin\Data :

<?php namespace Admin\Data; class Page { } ?>

Pour la classe Page du fichier /admin/view/page.php spécifions l'espace de noms Admin\View :

<?php namespace Admin\View; class Page { } ?>

Créons des objets de nos classes :

<?php require_once '/admin/data/page.php'; require_once '/admin/view/page.php'; $adminDataPage = new \Admin\Data\Page; $adminViewPage = new \Admin\View\Page; ?>

Supposons que vous ayez un dossier modules/cart. Faites en sorte que toutes les classes de ce dossier appartiennent à l'espace de noms Modules\Cart.

Supposons que vous ayez un dossier modules/shop/cart/. Faites en sorte que toutes les classes de ce dossier appartiennent à l'espace de noms Modules\Shop\Cart.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser