Насколько у меня правильный код ООП php? Осваиваю ООП и перехожу с процедурного стиля, хочу понять правильно ли я усвоил материал, чтобы сразу писать "без костылей"... Вот мой первый класс:class connectDB {
protected $dbh;
protected $error;

protected function connect() {
try {
$this->dbh = new PDO("mysql:host=localhost;dbname=jetjapan_new","jetjapan_jet","GWJfasfw234");
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->dbh->exec("set names utf8");
} catch(PDOException $e) {
echo "Произошла системная ошибка. Код ошибки {$e->getCode()}. Уведомление было отправлено администратору!";
}
}
}
class SearchOrder extends connectDB {
public $orderID;
public $create;
public $price;
public $status;
protected $params;
public function getOrderInfo($orderID, $params = "*") {
$this->orderID = (int) strip_tags($orderID);
$this->params = (string) strip_tags($params);
parent::connect();
try {
$this->resultDB = $this->dbh->prepare("SELECT {$this->params} FROM `order` WHERE `id` = :orderID");
$this->resultDB->bindParam(':orderID', $this->orderID);
$this->resultDB->execute();
$this->resultDB = $this->resultDB->fetch(PDO::FETCH_OBJ);
$this->create = $this->resultDB->addtime;
$this->price = $this->resultDB->price;
$this->status = $this->resultDB->status;
} catch(PDOException $e) {
echo "Произошла системная ошибка. Код ошибки {$e->getCode()}. Уведомление было отправлено администратору!";
}
}
public function changeOrder($orderID, $column, $value) {
$this->orderID = (int) strip_tags($orderID);
$this->column = (string) strip_tags($column);
$this->value = (string) strip_tags($value);
parent::connect();
try {
$this->resultDB = $this->dbh->prepare("UPDATE `order` SET {$this->column} = :value WHERE `id` = :orderID LIMIT 1");
$this->resultDB->bindParam(':value', $this->value);
$this->resultDB->bindParam(':orderID', $this->orderID);
$this->resultDB->execute();
$this->resultDB = $this->resultDB->rowCount();
return $this->resultDB;
} catch(PDOException $e) {
echo "Произошла системная ошибка. Код ошибки {$e->getCode()}. Уведомление было отправлено администратору!";
}
}
}
Насколько правильный, удобный код?! Просьба без шуточек, только конструктив, спасибо :)

21 Авг 2019 в 07:01
169 +1
0
Ответы
1

В целом ваш код ООП на PHP выглядит неплохо и соответствует основным принципам объектно-ориентированного программирования. Однако, есть несколько моментов, которые стоит улучшить:

Именование класса connectDB не очень точно отражает его функциональность. Рекомендуется назвать класс более общим образом, например, Database.

В методе connect() класса connectDB лучше не делать вывод ошибки на экран, а выбросить исключение и обработать его в вызывающем коде.

В методах getOrderInfo() и changeOrder() класса SearchOrder параметры необходимо провалидировать более строго, например, проверять тип данных и наличие обязательных аргументов.

Рекомендуется добавить метод для отключения соединения с базой данных после выполнения запросов.

При обработке исключений лучше логировать ошибку в файл или базу данных, а не просто выводить ее на экран.

Не забывайте про работу с транзакциями и защиту от SQL инъекций при использовании пользовательских данных в SQL запросах.

Надеюсь, эти рекомендации помогут вам улучшить ваш код и стать более опытным в области ООП на PHP. Успехов в изучении объектно-ориjsonнтированного программирования!

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 047 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир