Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi Pessoal,
estou iniciando em php OOP e estou criando um padrão factory para os usuários do sistema.
Tenho basicamente 3 usuários: clientes, funcionários e diretores.
Meu código é o seguinte:
class Usuario{
protected $values;
protected $id;
protected $db;
protected $_nome;
protected $_email;
protected $_senha;
protected $_status = 1;
protected $_criador;
protected $iNome;
protected $iEmail;
function __construct($nome, $email, $senha, $status, $criador){
global $db;
$this->db=$db;
$this->_nome=$nome;
$this->_email=$email;
$this->_senha=$senha;
$this->_status=$status;
$this->_criador=$status;
}
//PERMISSÕES
function hasLoginPermission(){
return true;
}
function hasDeletePermission(){
return false;
}
function hasInsertPermission(){
return false;
}
function hasUpdatePermission(){
return false;
}
//CRUD
}
Minha classe funcionário:
class Funcionario extends Usuario{
protected $_setor;
function __construct($dados = array()){
if(!count($dados)==6)
throw new exception("Número de argumentos inválido para criar o funcionário.");
$this->_nome=$dados['nome'];
$this->_email=$dados['email'];
$this->_senha=$dados['senha'];
$this->_status=$dados['status'];
$this->_criador=$dados['criador'];
$this->_setor=$dados['setor'];
$this->tabela='usuarios';
parent::__construct($nome, $email, $senha, $status, $criador);
$campos = array("nome"=>$nome, "email"=>$email, "setor"=>$setor, "senha"=>$senha, "status"=>$status);
}
function setnome($nome){
$this->_nome=$nome;
}
function getNome(){
return $this->_nome;
}
function hasDeletePermission(){
return false;
}
function hasInsertPermission(){
return true;
}
function hasUpdatePermission(){
return true;
}
//CRUD
public function insert()
...//GET
//VALIDAÇÃO
public function Valida(){
$iNome = new Campo($this->_nome, new ValidaNaoVazio());
$iEmail = new Campo($this->_email, new ValidaEmail());
$iSetor = new Campo($this->_cpf, new ValidaCpf());
}
}
Quando faço isso:
$dados = array("nome"=>"Juliano", "email"=>"juliano@virtualcriativa.com.br", "senha"=>"1324", "status"=>"1", "criador"=>"1", "setor"=>"Consultor" );
$teste = userfactory::Create("Funcionario", $dados);
echo $teste->getNome();
Ele não imprime o nome do funcionário. Dei print_r no construct da Funcionário e ele recebe os dados corretamente. Também dei echo nos dados no array que tb estão corretos.
O que está errado?
Outra dúvida, adianta alguma coisa implementar o CRUD, GETS e SETS na Usuario ou devo deixar para as classes filha?
Obrigado!
Carregando comentários...