Last active
February 8, 2018 00:35
-
-
Save mathnogueira/2272eea0fd28084dab32a8fab4b85195 to your computer and use it in GitHub Desktop.
O que melhorar em https://gist.github.com/anonymous/495bb25642718d4b6202dd049f4500e4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Por que você está incluindo o arquivo de conexões aqui se esta classe não a utiliza? | |
require_once("Conexao.php"); | |
class Pessoa { | |
protected $nome; | |
public function SetNome() { | |
// Por que o SetNome está dependendo do $_POST? Esta variável não deve ser utilizada em sua camada de modelo. | |
// E seu o nome da pessoa não vier de uma requisição POST? Ela pode vir a partir de uma requisição PUT, ou até mesmo | |
// de uma tabela do banco de dados. | |
// | |
// Passe a variável nome como argumento deste método, assim, quem o chama que fica responsável de saber de onde | |
// tirar o nome da pessoa. | |
// | |
// Ex: | |
// public function SetNome($nome) { | |
// $this->nome = $nome; | |
// } | |
$this->nome = $_POST['nome']; | |
} | |
public function GetNome (){ | |
return $this->nome; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Em vez de ficar dando require_once em todos seus arquivos, dê uma lida em Namespaces e sobre | |
// autoloading de classes. | |
require_once("Pessoa.class.php"); | |
require_once("Conexao.php"); | |
class PessoaFisica extends Pessoa { | |
// Getters e setters pra esses caras? | |
private $data; | |
private $CPF; | |
// Mesma coisa da sua função SetNome(), passe as variáveis $data e $cpf como parâmetros do construtor | |
// public function __construct($data, $cpf) { | |
// $this->data = $data; | |
// $this->CPF = $cpf; | |
// } | |
// | |
public function __construct () { | |
$this->data = $_POST['data']; | |
$this->CPF = $_POST['CPF']; | |
parent::SetNome(); | |
// Pra que isso? Você está retornando o nome da pessoa, mas não o armazena em nenhuma variável, ou seja | |
// só está aqui pra gastar ciclos de processamento do processador. | |
parent::GetNome(); | |
} | |
// Isto é ok, porém não gosto dessa abordagem pois ela viola o princípio de responsabilidade única nesta | |
// classe. | |
function insert (){ | |
} | |
} | |
// Agora toda vez que você incluir este arquivo, você terá uma variável $pessoa. Isso não é correto, deixe o arquivo | |
// que utilizar este arquivo ser responsável por instanciar a pessoa. | |
$pessoa = new PessoaFisica(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment