⊗ppOpNsSN 97 of 107 menu

Subespaços de nomes na OOP em PHP

Suponha que agora temos uma situação mais complexa: para o administrador, precisamos criar duas classes Page - uma com os dados da página e a outra - com a visualização desses dados. Suponha que a primeira classe esteja no arquivo /admin/data/page.php, e a segunda - no arquivo /admin/view/page.php.

Nas lições anteriores, já decidimos que todas as classes da pasta admin pertencerão ao espaço de nomes Admin. No entanto, agora neste mesmo espaço de nomes, temos um conflito entre duas classes. Para resolver o problema, podemos criar subespaços de nomes adicionais. Por exemplo, podemos criar o espaço de nomes Admin e, dentro dele, os subespaços Data e View. Nesse caso, os nomes desses subespaços são simplesmente escritos com uma barra invertida - tanto ao definir o espaço de nomes quanto ao criar um objeto da classe.

Vale esclarecer aqui que o nível de aninhamento dos subespaços não é limitado (é possível criar subsubespaços dentro de subespaços e assim por diante).

Então, vamos finalizar nosso exemplo descrito acima. Para a classe Page do arquivo /admin/data/page.php, especificaremos o espaço de nomes Admin\Data:

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

Para a classe Page do arquivo /admin/view/page.php, especificaremos o espaço de nomes Admin\View:

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

Vamos criar objetos das nossas classes:

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

Suponha que você tenha a pasta modules/cart. Faça com que todas as classes desta pasta pertençam ao espaço de nomes Modules\Cart.

Suponha que você tenha a pasta modules/shop/cart/. Faça com que todas as classes desta pasta pertençam ao espaço de nomes Modules\Shop\Cart.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar