Использование подхода объектно-ориентированного программирования, а не подхода процедурного программирования в программе, на самом деле зависит не от языка (будь то PHP или нет), а от типа проблемы, которую вы пытаетесь решить.
(я просто собираюсь использовать псевдокод в моих примерах, так как я не слишком знаком с PHP.)
Например, если у вас есть программа, в которой вы просто выполняете несколько функций по порядку, то процедурная будет в порядке. Например, если это простая программа для работы со строками, достаточно процедурного подхода:
perform_truncation(my_string, 10)
to_upper(my_string)
perform_magic(my_string, hat, rabbit)
Однако, если вы собираетесь иметь дело со многими различными элементами (такими как файлы или любое другое представление, ну, в общем, объектов), тогда объектно-ориентированный подход будет лучше.
Например, если у вас было несколько Car
с, и вы хотели, чтобы они drive
, то в процедурном отношении вы можете сделать что-то вроде:
drive_car(first_car)
drive_car(second_car)
Где, как в ООП, Car
может управлять собой:
RedCar myRedCar();
BlueCar myBlueCar();
myRedCar.drive();
myBlueCar.drive();
И, поскольку каждый автомобиль относится к разным классам, их поведение можно определять по-разному. Кроме того, они могут быть подклассами или Car
, они могут иметь общую функциональность.
Это действительно сводится к типу проблемы, которая делает либо процедурный подход лучше, чем объектно-ориентированный, и наоборот.
Помимо вопроса процедурного или объектно-ориентированного, это может быть своего рода «запахом кода», когда один исходный файл имеет множество функций. Это также можно сказать о классах, которые содержат много функций, которые могут быть лучше выполнены как отдельные функции в отдельных классах.
Проблема здесь может заключаться в организации кода, а не в выборе процедурного или объектно-ориентированного программирования. Организация функций в отдельных исходных файлах может оказаться здесь более необходимой, чем отказ от процедурного подхода к написанию программы.
В конце концов, существует множество программ, написанных с использованием процедурного подхода, которые хорошо написаны и просты в обслуживании.