Advertisement
Guest User

Untitled

a guest
Jun 30th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.52 KB | None | 0 0
  1. <?php
  2.  
  3. // Arquivo: Utils/Database.php
  4. // Classe que faz a conexão com o banco de dados e realiza ações básicas
  5. // no banco -- independente da entidade que será utilizada.
  6. class Database {
  7.  
  8.     private $host = "localhost";
  9.     private $user = "my_username";
  10.     private $password = "my_Str0ng_P4ssw0rdd!";
  11.     private $db = "database_scheme_name";
  12.  
  13.     private $connection;
  14.  
  15.     public function __construct()
  16.     {
  17.         $this->connection = mysql_connect($this->host, $this->user, $this->password);
  18.     }
  19.  
  20.     public function executeQuery($sqlQuery) {
  21.         // executa uma query
  22.     }
  23.  
  24.     // ...
  25. }
  26.  
  27. // Arquivo: DAO/BankAccountDAO.php
  28. // Classe que realiza os passos necessários para salvar uma determinada entidade
  29. // no banco de dados (faz uso da classe Database, assim ela não precisa saber detalhes
  30. // do banco, como por exemplo: host, user, password, scheme).
  31. class BankAccountDAO {
  32.  
  33.     private $database;
  34.  
  35.     public function __construct($database)
  36.     {
  37.         $this->database = $database;
  38.     }
  39.  
  40.     public function get($id) {
  41.         // busca conta com id especificado
  42.         $bankAccount = $this->database->execute("query que busca a conta bancária");
  43.         return $bankAccount;
  44.     }
  45.  
  46.     public function save($bankAccount) {
  47.         // Salva a conta no banco de dados
  48.         if ($bankAccount->id == 0) {
  49.             // Salva uma nova entidade no banco e atualiza o id do objeto passado
  50.             $this->saveObject($bankAccount);
  51.         } else {
  52.             $this->updateObject($bankAccount);
  53.         }
  54.     }
  55.  
  56.     private function saveObject($bankAccount) {
  57.         // Salva a conta no banco e define o $id do objeto $bankAccount como sendo
  58.         // o id da entidade gerada no banco de dados.
  59.     }
  60.  
  61.     private function updateObject($bankAccount) {
  62.         // Atualiza um objeto do banco de dados usando o $bankAccount->id como identificador.
  63.         // (Where id = $bankAccount->id)
  64.     }
  65.  
  66.     // Faz outras operações que a entidade BankAccount precisa no banco de dados.
  67.  
  68. }
  69.  
  70. // Arquivo: Models/BankAccount.php
  71. // Classe que guarda os valores da entidade e aplica as regras de negócios que se aplicam
  72. // a esta entidade.
  73. class BankAccount {
  74.  
  75.     private $id;
  76.     private $saldo;
  77.  
  78.     public function __construct($saldo) {
  79.         $this->saldo = $saldo;
  80.         $this->id = 0;
  81.     }
  82.  
  83.     public function getId() {
  84.         return $this->id;
  85.     }
  86.  
  87.     public function setId($id) {
  88.         $this->id = $id;
  89.     }
  90.  
  91.     public function getSaldo() {
  92.         return $this->saldo;
  93.     }
  94.  
  95.     public function setSaldo($saldo) {
  96.         $this->saldo = $saldo;
  97.     }
  98.  
  99.     public function depositar($valor) {
  100.         // Você nunca pode depositar um valor negativo ou zero.
  101.         if ($valor <= 0) {
  102.             throw new Exception("Você não pode depositar valores negativos ou zero unidades monetárias.");
  103.         }
  104.         $this->$saldo += $valor;
  105.     }
  106.  
  107.     public function sacar($valor) {
  108.         // Você nunca pode sacar um valor negativo ou zero.
  109.         if ($valor <= 0) {
  110.             throw new Exception("Você não pode sacar valores negativos ou zero unidades monetárias.");
  111.         }
  112.         $this->$saldo -= $valor;
  113.     }
  114. }
  115.  
  116. // Usando tudo junto.
  117. // 1) Montando a estrutura para conectar no banco e salvar uma conta bancária:
  118. $db = new Database();
  119. $bankAccountDAO = new BankAccountDAO($db);
  120.  
  121. // 2) Criando uma nova conta bancária
  122. $novaConta = new BankAccount(1500);
  123.  
  124. // 3) Salvando a conta bancária
  125. $bankAccountDAO->save($novaConta);
  126. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement