Мой код является объектно-ориентированным?
у Меня есть код, и я хотел бы знать, если даже это объектно-ориентированного кода. Следует структуре. Работа с 3 файлов.
1 пламя save.php
, выполняется следующий код:
include_once('dao.php');
include_once('modelo.php');
$post = new Post();
$post->setDescricao($_POST['custo_descricao_html']);
$post->setMes($_POST['custo_mes_atual']);
$post->setLocal($_POST['custo_local_html']);
$post->setPreco($_POST['custo_custo_html']);
$post->setObservacao($_POST['custo_observacao_html']);
$post->setColaborador_id($_POST['colaborador_logado_custo']);
$dao = new DaoCusto();
if ($_POST['custo_controle_html'] == 0) {
$post->setId(rand(0, time()));
$resultado = $dao->insert($post);
echo($resultado == 'salvo') ? '0' : $resultado;
} else {
$post->setId($_POST['custo_idUpdate_html']);
$resultado = $dao->update($post);
echo($resultado == 'salvo') ? '0' : $resultado;
}
2 файла, которые я gets
sets
, modelo.php
:
<?php
class Post {
private $id;
private $descricao;
private $mes;
private $local;
private $preco;
private $observacao;
private $colaborador_id;
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
return $this;
}
public function getDescricao() {
return $this->descricao;
}
public function setDescricao($descricao) {
$this->descricao = $descricao;
return $this;
}
public function getMes() {
return $this->mes;
}
public function setMes($mes) {
$this->mes = $mes;
return $this;
}
public function getLocal() {
return $this->local;
}
public function setLocal($local) {
$this->local = $local;
return $this;
}
public function getPreco() {
return $this->preco;
}
public function setPreco($preco) {
$this->preco = $preco;
return $this;
}
public function getObservacao() {
return $this->observacao;
}
public function setObservacao($observacao) {
$this->observacao = $observacao;
return $this;
}
public function getColaborador_id() {
return $this->colaborador_id;
}
public function setColaborador_id($colaborador_id) {
$this->colaborador_id = $colaborador_id;
return $this;
}
}
третий файл, который является, где я делаю мой CRUD
, dao.php
<?php
require_once '../../../conexao/conexao.php';
require_once 'modelo.php';
class DaoCusto {
public static $instance;
public function __construct() {
}
public function insert(Post $custo) {
try {
$sql = "INSERT INTO tb_custo (custo_id , custo_descricao , custo_mes , custo_local , custo_preco , custo_observacao , colaborador_colaborador_id) values (:custo_id , :custo_descricao , :custo_mes , :custo_local , :custo_preco , :custo_observacao , :colaborador_colaborador_id)";
$p_sql = Conexao::getInstance()->prepare($sql);
$p_sql->bindValue(':custo_id', $custo->getId());
$p_sql->bindValue(':custo_descricao', $custo->getDescricao());
$p_sql->bindValue(':custo_mes', $custo->getMes());
$p_sql->bindValue(':custo_local', $custo->getLocal());
$p_sql->bindValue(':custo_preco', $custo->getPreco());
$p_sql->bindValue(':custo_observacao', $custo->getObservacao());
$p_sql->bindValue(':colaborador_colaborador_id', $custo->getColaborador_id());
return ($p_sql->execute()) ? 'salvo' : false;
} catch (PDOException $e) {
return 'Erro, contate o suporte!Código:' . $e->getCode() . 'Mensagem:' . $e->getMessage();
}
}
public function Update(Post $custo) {
try {
$sql = "UPDATE tb_custo SET custo_descricao= :custo_descricao , custo_mes= :custo_mes , custo_local= :custo_local , custo_preco= :custo_preco , custo_observacao= :custo_observacao , colaborador_colaborador_id= :colaborador_colaborador_id WHERE custo_id= :custo_id ";
$p_sql = Conexao::getInstance()->prepare($sql);
$p_sql->bindValue(':custo_descricao', $custo->getDescricao());
$p_sql->bindValue(':custo_mes', $custo->getMes());
$p_sql->bindValue(':custo_local', $custo->getLocal());
$p_sql->bindValue(':custo_preco', $custo->getPreco());
$p_sql->bindValue(':custo_observacao', $custo->getObservacao());
$p_sql->bindValue(':colaborador_colaborador_id', $custo->getColaborador_id());
$p_sql->bindValue(':custo_id', $custo->getId());
return ($p_sql->execute()) ? 'salvo' : false;
} catch (PDOException $e) {
return 'Erro, contate o suporte!Código:' . $e->getCode() . 'Mensagem:' . $e->getMessage();
}
}
}
Эта структура является объектно-ориентированным?
1 answers
Как это можно сделать " ориентации объекта в PHP класс Post
- это хорошо ООП, только не больше, потому что не использует наследование и полиморфизм. Есть инкапсуляция и каким-то абстракции. Прирост быть сделано таким образом, мне кажется, близки к нулю, но нельзя сказать, что что-то произошло. array ассоциативный было бы гораздо проще, что заставляет меня думать, что увеличение, можно считать отрицательным.
DaoCusto
это немного меньше. Все, что есть статический менее объектно-ориентированным, но немного. Было бы намного проще создать простую функцию. Настаивает на использовании механизмом, который не помещается там. Работает, есть люди, которым нравится делать так, но нет увеличения, наоборот.
Вопрос: в чем актуальность этого? Цель следовать формуле, не понимая, почему или сделать что-то, что поможет, код лучше? ООП не делает код лучше по волшебству, и бывают случаи, что это может ухудшить то, что вы делаете. Не кажется, как в вашем случае, когда пришлось быть прагматичными, пока не было, по крайней мере на части.
См.: , "объектно-Ориентированный", и какие другие методы?
Поймите, что объект ориентации-это что-то вторичное для программирования. PHP еще.