⊗ppOpNsSN 97 of 107 menu

Subespacios de nombres en POO en PHP

Supongamos ahora que tenemos una situación más compleja: para el administrador necesitamos hacer dos clases Page - una con los datos de la página, y la segunda - con la representación de estos datos. Supongamos que la primera clase se encuentra en el archivo /admin/data/page.php, y la segunda - en el archivo /admin/view/page.php.

En lecciones anteriores ya decidimos que todas las clases de la carpeta admin pertenecerán al espacio de nombres Admin. Sin embargo, ahora en este mismo espacio de nombres tenemos un conflicto de dos clases. Para resolver el problema se pueden hacer adicionales subespacios de nombres. Por ejemplo, se puede hacer el espacio de nombres Admin, y en él los subespacios Data y View. En tal caso, los nombres de estos subespacios simplemente se escriben con una barra invertida - tanto al definir el espacio de nombres, como al crear un objeto de la clase.

Aquí cabe aclarar que el nivel de anidamiento de los subespacios no está limitado (se pueden crear sub subespacios en subespacios y así sucesivamente).

Entonces, terminemos nuestro ejemplo descrito arriba. Para la clase Page del archivo /admin/data/page.php indiquemos el espacio de nombres Admin\Data:

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

Para la clase Page del archivo /admin/view/page.php indiquemos el espacio de nombres Admin\View:

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

Creemos objetos de nuestras clases:

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

Supongamos que tiene la carpeta modules/cart. Haga que todas las clases de esta carpeta pertenezcan al espacio de nombres Modules\Cart.

Supongamos que tiene la carpeta modules/shop/cart/. Haga que todas las clases de esta carpeta pertenezcan al espacio de nombres Modules\Shop\Cart.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar