Skip to content

Instantly share code, notes, and snippets.

@mathnogueira
Last active February 8, 2018 00:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mathnogueira/2272eea0fd28084dab32a8fab4b85195 to your computer and use it in GitHub Desktop.
Save mathnogueira/2272eea0fd28084dab32a8fab4b85195 to your computer and use it in GitHub Desktop.
<?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;
}
}
<?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