Nenhum produto encontrado nessa seleção.
Em nossa primeira aula sobre OOP em PHP, você aprendeu que devemos criar classes em arquivos separados, onde o arquivo que mantém a classe, deve ter o nome class-nomedaclasse.php. Com isso, podemos utilizar uma função especial do PHP chamada {php}__autoload{/php} para carregar nossos arquivos de classes automaticamente.
Ao invés de utilizar as funções include, include_once, require ou require_once para incluir os arquivos de classe todas as vezes que precisarmos de um novo objeto da mesma, você pode fazer o seguinte.
Suponhamos que eu tenha uma classe simples:
<?php class Pessoa { // Propriedades da classe public $nome; public $sobrenome; public $idade; // Construtor - Define os valores das proprieades public function __construct ( $nome = null, $sobrenome = null, $idade = 0 ) { $this->nome = $nome; $this->sobrenome = $sobrenome; $this->idade = (int) $idade; } // Método para exibir public function exibir () { echo 'Nome: '; echo $this->nome . '<br>'; echo 'Sobrenome: '; echo $this->sobrenome . '<br>'; echo 'Idade: '; echo $this->idade . '<br><br>'; } }
Se eu quiser utilizá-la, devo fazer o seguinte:
<?php include('classes/class-pessoa.php'); // Instância da classe Pessoa $pessoa = new Pessoa('Luiz', 'Miranda Figueiredo', 27); $pessoa->exibir(); ?>
Perceba que a função {php}include{/php} está incluindo o arquivo da classe que pretendo utilizar em meu código.
Porém, suponhamos que eu tenha milhares de classes separadas em arquivos distintos (que é o recomendado). Todas as vezes que eu precisasse de determinada classe, teria que incluir o arquivo da mesma para poder utilizá-la.
A função {php}__autoload{/php} faz isso automaticamente por mim. Ela detecta o nome da classe que estou tentando criar, e tenta incluir tal classe em meu código. Veja:
<?php // função para carregar classes automaticamente function __autoload( $class ){ // Garante apenas letras minúsculas no nome do arquivo de classe $class = strtolower( $class ); // Inclui a classe que precisamos include_once("classes/class-{$class}.php"); } // Instância da classe Pessoa $pessoa = new Pessoa('Luiz', 'Miranda Figueiredo', 27); $pessoa->exibir(); ?>
Agora, independente da classe que eu tentar utilizar, o PHP vai saber que pretendo que ele inclua o arquivo da mesma em meu código. Porém, é necessário que você siga as instruções que descrevi anteriormente, ou seja, o nome do arquivo da classe deve ser "class-nomedaclasse.php", com letras minúsculas.
Isso vai facilitar a sua vida!