⊗ppOpNsAu 105 of 107 menu

Carregamento Automático de Classes em POO em PHP

Você já sabe que para usar qualquer classe, devemos incluí-la via require. Quando em um projeto existem muitas classes, acabamos com muitas inclusões, que são muito inconvenientes de escrever e difíceis de controlar.

Para resolver esse problema, foi adicionado ao PHP o carregamento automático de classes. O carregamento automático permite que o PHP carregue automaticamente o arquivo com a classe ao tentar acessar essa classe no código. No entanto, as classes não serão carregadas simplesmente assim - elas precisam ser posicionadas nas pastas do site de uma maneira especial, seguindo alguma convenção sobre os nomes de arquivos e pastas das classes. Pode-se usar a convenção integrada no PHP, ou inventar a sua própria e usá-la.

Vamos começar analisando a convenção padrão do PHP. Essa convenção consiste no fato de que se temos um determinado arquivo com uma classe, então o caminho pelas pastas do site até esse arquivo deve coincidir com o namespace do arquivo, e o nome do arquivo deve coincidir com o nome da classe armazenada nele. Ao mesmo tempo, os nomes das pastas e do arquivo devem estar em letras minúsculas.

Vamos ver um exemplo. Suponha que temos a seguinte classe:

<?php namespace Core\Admin; class PageController { } ?>

Por convenção, esta classe deve estar localizada na pasta /core/admin/ no arquivo pagecontroller.php.

Vamos agora no arquivo index.php usar nossa classe, sem incluí-la via require, mas usando o carregamento automático. Para isso, no início do arquivo onde as classes são chamadas, deve-se chamar a função spl_autoload_register. Vamos fazer isso:

<?php spl_autoload_register(); // ativamos o carregamento automático $obj = new Core\Admin\PageController; // criamos o objeto tranquilamente ?>

No arquivo index.php, ative o carregamento automático de classes. Seguindo a convenção de nomes de pastas e arquivos, crie a classe Core\User, a classe Core\Admin\Controller e a classe Project\User\Data. No arquivo index.php, crie objetos dessas classes.

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