Advertisement
JoanMarcos

Duvida POO PHP

Sep 26th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.00 KB | None | 0 0
  1. <?php
  2.  
  3. #CONEXÃO COM BACO DE DADOS
  4.    class Conexao {
  5.         private $usuario;
  6.         private $senha;
  7.         private $banco;
  8.         private $servidor;
  9.         protected $mysqli;
  10.  
  11.         public function __construct()
  12.         {
  13.             $this->servidor = 'localhost';
  14.             $this->banco = 'SubArtigo';
  15.             $this->usuario = 'root';
  16.             $this->senha = 'root';
  17.         }
  18.  
  19.         public function Conectar()
  20.         {
  21.             mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  22.             try{
  23.                 if (is_null($this->mysqli))
  24.                     return $this->mysqli = new mysqli($this->servidor,$this->usuario,$this->senha,$this->banco);
  25.                 else
  26.                     return $this->mysqli;
  27.             } catch(mysqli_sql_exception $e) {
  28.                 return die($e -> getMessage());
  29.             }
  30.         }
  31.  
  32.     }
  33.  
  34.  
  35. #OUTRO ARQUIVO. Relacionamento de Usuario e Endereco é Agregação
  36.  
  37. #<?php
  38.    include_once('Conexao.php');
  39.     include_once('Endereco.php');
  40.     include_once('../Helpers/Helpers.php');
  41.  
  42.     abstract class Usuario {
  43.         private $Nome;
  44.         private $Senha;
  45.         private $Email;
  46.         private $Telefone;
  47.         private $NumeroParticipante;
  48.         private $TipoUsuario;
  49.         private $EnderecoID;
  50.  
  51.         public function __construct()
  52.         {
  53.             $this->con = new Conexao();
  54.             $this->Endereco = new Endereco();
  55.         }
  56.  
  57.         public function __set($nome, $valor)
  58.         {
  59.             $this->$nome = $valor;
  60.         }
  61.  
  62.         public function __get($nome)
  63.         {
  64.             return $this->$nome;
  65.         }
  66.  
  67.         public  function queryAddUsuario($dados)
  68.         {
  69.             try {
  70.                 $this->Nome = $dados['Nome'];
  71.                 $this->Senha = md5($dados['Senha']);
  72.                 $this->Email = $dados['Email'];
  73.                 $this->Telefone = $dados['Telefone'];
  74.                 $this->NumeroParticipante = uniqid();
  75.                 $this->TipoUsuario = $dados['TipoUsuario'];
  76.                 $endereco = $this->Endereco->AddEndereco($dados);
  77.                 $usuario = $this->con->Conectar()->query("INSERT INTO usuario (nome,senha,email,telefone,numero_participante,tipo_usuario,endereco_id) VALUES ('$this->Nome','$this->Senha','$this->Email','$this->Telefone','$this->NumeroParticipante','$this->TipoUsuario','$this->EnderecoID')");
  78.                 if ($usuario && $endereco)
  79.                     return 'ok';
  80.                 else
  81.                     return 'erro';
  82.             } catch (PDOException $e) {
  83.                 return 'error '.$e->getMessage();
  84.             }
  85.         }
  86.  
  87.  
  88.     }
  89.  
  90.  
  91. #OUTRO ARQUIVO. Endereco
  92.  
  93. #<?php
  94.    include_once('Conexao.php');
  95.  
  96.     class Endereco {
  97.         private $Rua;
  98.         private $Bairro;
  99.         private $Numero;
  100.         private $Cep;
  101.         private $Cidade;
  102.         private $Estado;
  103.         private $LocalEmpresa;
  104.  
  105.         public function __construct()
  106.         {
  107.             $this->con = new Conexao();
  108.         }
  109.  
  110.         public function AddEndereco($dados) {
  111.             try {
  112.                 $this->Rua = $dados['Rua'];
  113.                 $this->Bairro = $dados['Bairro'];
  114.                 $this->Numero = $dados['Numero'];
  115.                 $this->Cep = $dados['Cep'];
  116.                 $this->Cidade = $dados['Cidade'];
  117.                 $this->Estado = $dados['Estado'];
  118.                 $this->LocalEmpresa = $dados['LocalEmpresa'];
  119.                 $Endereco = $this->con->Conectar()->query("INSERT INTO endereco (rua,bairro,numero,cep,cidade,estado,local_empresa) VALUES ('$this->Rua','$this->Bairro','$this->Numero','$this->Cep','$this->Cidade','$this->Estado','$this->LocalEmpresa')");
  120.                 if ($Endereco) {  return true; }
  121.                 else { $Endereco->close(); }
  122.  
  123.             } catch (mysqli_sql_exception $ex) {
  124.                 return 'error '.$ex->getMessage();
  125.             }
  126.  
  127.         }
  128.     }
  129.  
  130.  
  131.  
  132. #OUTRO ARQUIVO.
  133. #<?php
  134.  
  135.     include_once('Usuario.php');
  136.  
  137.     class Participante extends Usuario {
  138.        
  139.         function __construct() {
  140.             parent::__construct();
  141.         }
  142.  
  143.         public function enviarArtigo()
  144.         {
  145.             /*implementar */
  146.         }
  147.     }
  148.  
  149. #OUTRO ARQUIVO.
  150. #<?php
  151.    include_once('Usuario.php');
  152.  
  153.     class Revisor extends Usuario {
  154.  
  155.         function __construct() {
  156.             parent::__construct();
  157.         }
  158.  
  159.         public function enviarAvaliacao()
  160.         {
  161.             /*implementar */
  162.         }
  163.     }
  164.  
  165. /*
  166.     Tenho um formulário que contem todos os dados de usuário e endereço.
  167.     No banco a tenho o seguinte relacionamento de usuários com endereço(Não pode cadastrar um usuário sem o endereço N 1).
  168.     Minha Duvida, como vou cadastrar um usuário sendo que preciso do id do endereço para cadastrar o usuário, tenho que fazer uma    
  169.     consulta antes para pegar o último endereço cadastrado para colocar no cadastro de usuário ? como faço esse tipo de
  170.     implementação com POO ?
  171. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement