Насколько у меня правильный код ООП 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()}. Уведомление было отправлено администратору!"; } } } Насколько правильный, удобный код?! Просьба без шуточек, только конструктив, спасибо :)
В целом ваш код ООП на PHP выглядит неплохо и соответствует основным принципам объектно-ориентированного программирования. Однако, есть несколько моментов, которые стоит улучшить:
Именование класса connectDB не очень точно отражает его функциональность. Рекомендуется назвать класс более общим образом, например, Database.
В методе connect() класса connectDB лучше не делать вывод ошибки на экран, а выбросить исключение и обработать его в вызывающем коде.
В методах getOrderInfo() и changeOrder() класса SearchOrder параметры необходимо провалидировать более строго, например, проверять тип данных и наличие обязательных аргументов.
Рекомендуется добавить метод для отключения соединения с базой данных после выполнения запросов.
При обработке исключений лучше логировать ошибку в файл или базу данных, а не просто выводить ее на экран.
Не забывайте про работу с транзакциями и защиту от SQL инъекций при использовании пользовательских данных в SQL запросах.
Надеюсь, эти рекомендации помогут вам улучшить ваш код и стать более опытным в области ООП на PHP. Успехов в изучении объектно-ориjsonнтированного программирования!
В целом ваш код ООП на PHP выглядит неплохо и соответствует основным принципам объектно-ориентированного программирования. Однако, есть несколько моментов, которые стоит улучшить:
Именование класса connectDB не очень точно отражает его функциональность. Рекомендуется назвать класс более общим образом, например, Database.
В методе connect() класса connectDB лучше не делать вывод ошибки на экран, а выбросить исключение и обработать его в вызывающем коде.
В методах getOrderInfo() и changeOrder() класса SearchOrder параметры необходимо провалидировать более строго, например, проверять тип данных и наличие обязательных аргументов.
Рекомендуется добавить метод для отключения соединения с базой данных после выполнения запросов.
При обработке исключений лучше логировать ошибку в файл или базу данных, а не просто выводить ее на экран.
Не забывайте про работу с транзакциями и защиту от SQL инъекций при использовании пользовательских данных в SQL запросах.
Надеюсь, эти рекомендации помогут вам улучшить ваш код и стать более опытным в области ООП на PHP. Успехов в изучении объектно-ориjsonнтированного программирования!