"Visibilidade e Encapsulamento"
Olá pessoal!
Estava assistindo a uma vídeo aula(colocarei ela logo abaixo) , sobre oop no php. Ele me mostrou dois exemplos de como fazer conexão com MySQL, usando class, sendo uma deixando as propriedades publicas e outra privado. Sobre a minha ótica, não mudou nada, só aumentou o código não consegui "ver" a real funcionalidade disso! Mas sei que deve haver, se não ninguém usaria! Segue os dois exemplos:
Exemplo 1 (publico)
//Class
class ConexaoMysql {
public $servidor;
public $usuario;
public $senha;
public $BancoDeDados;
public function conectar(){
mysql_connect($this->servidor, $this->usuario, $this->senha)or die (mysql_error());
}
public function selecionarDB(){
mysql_select_db($this->BancoDeDados) or die (mysql_error());
}
}
//página do php
require("ConexaoMysql.class.php");
$conexao = new ConexaoMysql;
$conexao->servidor = 'localhost';
$conexao->usuario = 'root';
$conexao->senha = '';
$conexao->BancoDeDados = 'Banco';
$conexao->conectar();
$conexao->selecionarDB();
Até aqui, ele diz que da certo( e dá), mas também diz que não é recomendado usar deste jeito, pois "alguém pode modificar os valores das propriedades", (algo próximo á isso). Eu li este conceito em vários lugares(aqui no fórum por exemplo) mas ainda não o entendi! No vídeo, ele faz o seguinte:
Exemplo 2 (protegido)
//Class
class ConexaoMysql {
protected $servidor;
protected $usuario;
protected $senha;
protected $BancoDeDados;
public function__construct($servidor, $usuario, $senha, $BancoDeDados){
$this->servidor = $servidor;
$this->usuario = $usuario;
$this->senha = $senha;
$this->BancoDeDados = $BancoDeDados;
}
public function conectar(){
mysql_connect($this->servidor, $this->usuario, $this->senha)or die (mysql_error());
}
public function selecionarDB(){
mysql_select_db($this->BancoDeDados) or die (mysql_error());
}
}
//pagina no php
require("ConexaoMysql.class.php");
$conexao = new ConexaoMysql('localhost', 'root', '', 'Banco');
$conexao->conectar();
$conexao->selecionarDB();
Minha duvida é: O que mudou, além da maneira de fazer é claro! Por que fazer de um jeito ou de outro? Por que o segundo é melhor?
Vídeo:
Discussão (11)
Carregando comentários...