Método mágico __construct()

Uma das principais novidades que surgiram no PHP 5 foram os métodos mágicos. Talvez sejam características exclusivas dessa linguagem e surge diversas discussões quanto às suas vantagens e se não são “gambiarras” inventadas para suprir a inexperiência do conceito de Orientação a Obejtos que no php ainda é um pouco recente.

Mas não vou aqui discutir o mérito dos métodos mágicos e sim mostrar a função e utilização de um deles.

O método __construct() pode ser utilizado como método construtor de todas as classes e veio para substituir os antigos métodos construtores que eram implemetados levando o mesmo nome da classe à qual pertencia. Esse método, assim como todos os outros caracterizados como “mágicos”, se inicia com 2 underlines(ou underscores).

O método construtor de uma classe serve para executar algum comportamento(atribuição de valor, execução de método, etc) logo no momento em que uma instancia da mesma for criada. Isso traz vantagens pois evita a execução de tarefas repetitivas e obrigatórias.

Imagine a classe a seguir:

1
2
3
4
5
6
7
8
<?php
class Conexao(){
 
   public function __construct($host, $user, $pass, $bd){
        mysql_connect($host, $user, $pass) or die('Erro ao conectar com o servidor');
        mysql_select_db($bd) or die('Erro ao conectar com o banco de dados');
   }
}

É uma classe de conexão que quando instanciada deve receber os parâmetros para se conectar a um banco de dados MySQL. Ao invés de criarmos um método conectar() dentro da classe podemos já executar as funções de conexão dentro do método construtor. E isso porque obviamente todos que utilizam a classe de conexão tem como objetivo se conectar a um servidor de banco de dados.

Logo, confira a chamada dessa classe:

1
2
3
4
<?php
    include('conexao.class.php');
 
    $conn = new Conexao('localhost', 'root', 'senha', 'banco_teste');

Já na criação do objeto eu passo as informações para se conectar com o banco. Isso me economiza a chamada de outro método.

Quaisquer dúvidas sobre o método mágico __construct() utilize a caixa de comentários 😉

Em posts futuros falarei a respeito de outros métodos mágicos.

Abs

Siga-me no twitter: @rafaelwendel

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. Bom artigo, estava com duvida a respeito e foi solucionada com a explicação e exemplo, obrigado!

    A propósito, você tem mais exemplos do __construct em outras classes ?
    Pq não vejo (até agora) qual funcionalidade ele pode ter em outras classes.

    1. Cara,

      Algo que uso bastante é já definir atributos obrigatórios de uma classe já no método construtor. Por exemplo, se tenho uma classe Cliente com os atributos nome, cpf, dt_nascimento, etc. Eu já coloco o nome como argumento no método construtor. Isso porque parto do pressuposto que todos os clientes devem possuir um nome (obrigatoriamente).

      Logo, já faço a instanciação da classe da seguinte maneira:

      5
      
      $cli = new Cliente('Rafael');

      Abs!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *