Вы думаете о ООП неправильно.Если вы пытаетесь сравнить ООП с процедурными пространствами имен просто как два разных способа организации вашего кода и вызовов функций, тогда, безусловно, пространства имен покажутся более эффективными.
Преимущество ООП заключается не в организации объекта, полного функций,Это просто относится к классам ООП как к большим "утилитарным" классам, полным функций.Преимущество ООП не является организационным.Это совершенно другой способ построения ваших программ, который заставляет вас разбивать код на более мелкие, незаметные объекты.Я использую ООП во всех моих программах PHP, даже для небольших проектов.
Преимущество ООП становится для меня наиболее очевидным при выполнении любого проекта, который обращается к базе данных (что в наши дни довольно хорошо).Я создаю небольшие классы для моделирования каждой таблицы базы данных, а затем получаю доступ к информации в этих таблицах как к объектам.У меня есть некоторые базовые классы, которые я использую во всех своих проектах, которые определяют, как отображать таблицы в объекты, чтобы я больше не печатал и не вставлял команды mysql.Я просто использую объекты, и они наследуют всю необходимую функциональность для вставки, обновления и удаления из базы данных.
Это, безусловно, гораздо более полезно в коде (особенно если вы используете PHP ide, у которого есть завершение кода) длясм. это в коде:
echo "Hello, {$someDataObject->name}!";
Чем это:
echo "Hello, " . $row['name'] . "!";
Разница может быть не очевидна сразу.Оба примера представляют собой одну строку кода для печати столбца таблицы.Но второй пример требует, чтобы я знал имена столбцов в моей голове.В первом примере имена столбцов встроены в классы как свойства.Мой инспектор кода знает все свойства, поэтому, когда я пишу код, он представляет список всех свойств по мере ввода.
Поддерживать занятия легче, чем вы думаете.В зависимости от выбранной вами объектной инфраструктуры существуют сценарии для генерации классов из таблиц и их обновления.И я считаю, что гораздо меньше ошибок и ошибок, чтобы поддерживать мои классы объектов в актуальном состоянии самостоятельно, чем иметь изменения базы данных, нарушающие код, потому что имена столбцов изменились, и тогда я должен обновить эти ссылки на столбцы в десятках мест.Да, есть поиск и замена, но видите ли вы преимущество обновления одного файла для изменения столбца по сравнению с обновлением каждой ссылки на $ row ['some_column']?
Надеюсь, это поможет ответить на ваш вопрос.