PHP Orientado a Ojetos - PHP OO
27/04/2016
0
Bom dia!
Voltei a estudar sobre PHP OO e agora me surgiu uma dúvida cruel. ("cruel é bom", já dizia Maze Runner, uhasuhashauhs)
Bom, a situação é a seguinte:
Possuo duas classes:
usuario.class.php
chamado.class.php
Minha dúvida são as seguintes:
1. Entendo que "Usuario" não pode ser uma extensão de "Chamado", pois um chamado possui um usuário. (ele não é um tipo de usuário). É correto afirmar isso?;
2. Tenho dúvida sobre como "adicionar" os atributos que são objetos da outra classe (Usuario). Entendo que preciso de classes para fazer esse intermédio, mas gostaria de entender a essência disso.
Por exemplo:
Para adicionar o meu responsavel eu faria assim?:
Nesse momento eu tenho um objeto Responsavel que é do tipo Usuario. Para persistir no banco, eu vou utilizar apenas o $Obj->_getUsuario_Id();
E da mesma forma eu faria com o restante dos objetos do tipo Usuario.
Está certo (em termos de padrão) fazer dessa forma? Imagino que isso vá funcionar, mas minha preocupação é com a qualidade do código.
Lembrando que sei que existem muitas outras etapas antes de persistir no banco, mas eu preciso primeiro entender como montar meus objetos.
Eu li diversos tutoriais e explicações sobre orientação a objetos com PHP na internet e confesso que fiquei impressionado com a quantidade de "coisas" que são ensinadas.
Estou iniciando na programação e gostaria da ajuda do fórum para começar da forma correta.
Muito obrigado mais uma vez! (e desculpa se o código ficar todo numa única linha. Juro que tentei deixar ele indentado, mas não descobri como.)
Voltei a estudar sobre PHP OO e agora me surgiu uma dúvida cruel. ("cruel é bom", já dizia Maze Runner, uhasuhashauhs)
Bom, a situação é a seguinte:
Possuo duas classes:
usuario.class.php
<?php class Usuario { private $usuario_id; private $usuario_email; public function __construct(){ } public function _setUsuario_Id($valor = NULL){ $this->usuario_id = $valor; } public function _getUsuario_Id(){ return $this->usuario_id; } public function _setUsuario_Email($valor){ $this->usuario_Email = $valor; } public function _getUsuarioId(){ return $this->usuario_Email; } public function __destruct(){ } } ?>
chamado.class.php
<?php require_once('usuario.class.php'); class Chamado { private $chamado_id; private $chamado_titulo; private $chamado_data_criacao; private $chamado_data_conclusao; private $autor; //É um Usuario private $responsavel; //É um Usuario private $participantes; //É um Usuario public function __construct(){ $usuario = new Usuario(); $this-participantes = []; } public function _setChamado_Id($valor = NULL){ $this->chamado_id = $valor; } public function _getChamado_Id(){ return $this->chamado_id; } public function _setChamado_Titulo($valor){ $this->chamado_titulo = $valor; } public function _getChamado_Titulo(){ return $this->chamado_titulo; } public function _setChamado_Data_Criacao($valor){ $this->chamado_data_criacao = $valor; } public function _getChamado_Data_Criacao(){ return $this->chamado_data_criacao; } public function _setChamado_Data_Conclusao($valor){ $this->chamado_data_conclusao = $valor; } public function _getChamado_Data_Conclusao(){ return $this->chamado_data_conclusao; } /** A dúvida é sobre como eu devo fazer para "ligar" um usuário ao autor, ao responsável e aos participantes **/ public function _addAutor($Obj){ $this->autor = $Obj; } public function _listAutor(){ return $this->responsavel; } public function _addResponsavel($Obj){ $this->responsavel = $Obj; } public function _listResponsavel(){ return $this->autor; } public function _addResponsavel($Obj){ $this->responsavel = $Obj; } public function _addParticipantes($Obj){ $this->participantes = $Obj; } public function _listParticipantes(){ return $this->participantes; } public function __destruct(){ } } ?>
Minha dúvida são as seguintes:
1. Entendo que "Usuario" não pode ser uma extensão de "Chamado", pois um chamado possui um usuário. (ele não é um tipo de usuário). É correto afirmar isso?;
2. Tenho dúvida sobre como "adicionar" os atributos que são objetos da outra classe (Usuario). Entendo que preciso de classes para fazer esse intermédio, mas gostaria de entender a essência disso.
Por exemplo:
Para adicionar o meu responsavel eu faria assim?:
/** Através de uma classe auxiliar, monto uma lista de usuários para ser escolhido um(objeto). Então a pessoa que está abrindo o chamado escolhe o usuário desejado, por exemplo(id,email): $Obj [12, mariazinha@email.com] ***/ public function _addResponsavel($Obj){ $this->responsavel = $Obj; }
Nesse momento eu tenho um objeto Responsavel que é do tipo Usuario. Para persistir no banco, eu vou utilizar apenas o $Obj->_getUsuario_Id();
E da mesma forma eu faria com o restante dos objetos do tipo Usuario.
Está certo (em termos de padrão) fazer dessa forma? Imagino que isso vá funcionar, mas minha preocupação é com a qualidade do código.
Lembrando que sei que existem muitas outras etapas antes de persistir no banco, mas eu preciso primeiro entender como montar meus objetos.
Eu li diversos tutoriais e explicações sobre orientação a objetos com PHP na internet e confesso que fiquei impressionado com a quantidade de "coisas" que são ensinadas.
Estou iniciando na programação e gostaria da ajuda do fórum para começar da forma correta.
Muito obrigado mais uma vez! (e desculpa se o código ficar todo numa única linha. Juro que tentei deixar ele indentado, mas não descobri como.)
Jaquisson
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)