Почему объектно-ориентированный PHP с mysqli лучше, чем процедурный подход?

Я использовал процедурный подход с mysql * до недавнего времени. Теперь я хочу перейти к mysqli и объектно-ориентированному подходу. Многие онлайн-ресурсы и книги говорят о том, что ООП лучше, чем процедурный, даже в случае PHP. Пройдя несколько онлайн-уроков, я написал небольшую программу, которая подключается к базе данных и выбирает значение. Я хочу знать, почему объектно-ориентированный подход лучше? Плюс это правильный способ кодирования веб-страницы OO php?

Объектно-ориентированный подход

$host = "localhost"; $username = "root"; $password = ""; $dbname = "compdb"; @ $db = new mysqli($host, $username, $password, $dbname); if(mysqli_connect_errno()) { die("Connection could not be established"); } $query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'"; $result = $db->query($query); $total_num_rows = $result->num_rows; echo "The Results Are : <br>"; while($row = $result->fetch_array()) { echo $row['company_id']; } 

?>

Процедурный подход

 <?php $host = "localhost"; $username = "root"; $password = ""; $dbname = "compdb"; @ $db = mysqli_connect($host, $username, $password, $dbname); if(mysqli_connect_errno()) { die("Connection could not be established"); } $query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'"; $result = mysqli_query($db, $query); $total_num_rows = mysqli_num_rows($result); echo "The Results Are : <br>"; while($row = mysqli_fetch_array($result)) { echo $row['company_id']; } 

?>

Solutions Collecting From Web of "Почему объектно-ориентированный PHP с mysqli лучше, чем процедурный подход?"

Основная причина заключается в том, что PHP неуклонно движется в направлении программирования OO.

Нет ничего плохого в использовании mysqli_xxx() а не эквивалентов ООП; это точно так же, как и в коде.

Единственная проблема заключается в том, что вы будете получать все дальше и дальше за кривой с точки зрения того, что люди думают о хорошо написанном PHP-коде.

Стоит отметить, что библиотека PDO, которая считается идеальным для большинства DB-кода в PHP, является OOP-only. У него нет процедурного интерфейса. И также большинство других новых функций, добавленных в PHP в последних нескольких версиях. Если вы хотите использовать PHP в полной мере, вам все равно нужно знать ООП.

Также имеется в виду возможность создания класса расширения для вашей БД – что-то вроде этого:

 class myDB extends mysqli { .... your own stuff here to extend and improve the base mysqli class } 

Конечно, вы можете добиться того же, что и с процедурным кодом, но это не так просто, как путь ООП. И, конечно, это актуально только в том случае, если вы действительно хотите расширить класс.

Однако в качестве первого шага просто переход от mysql_xxx() к mysqli_xxx() – отличный старт. Перемещение всего пути к использованию интерфейса OOP было бы еще лучше, но просто переход к функциям mysqli – хорошее начало.

Использование процедурного интерфейса для начала, безусловно, упростит переход от старых mysql_xx() , поэтому, если переключение на интерфейс OOP слишком сильно скачкообразно в начале, не чувствуйте, что вам нужно делать все это в один раз. Начните с преобразования в процедурные функции mysqli , затем перейдите к методам ООП позже; ни один прыжок не будет таким большим.