El uso de un enfoque de programación orientado a objetos en lugar de un enfoque de programación de procedimientos en un programa realmente no depende del lenguaje (ya sea PHP o no), sino del tipo de problema que está tratando de resolver.
(sólo voy a usar pseudocódigo en mis ejemplos ya que no estoy muy familiarizado con PHP.)
Por ejemplo, si tiene un programa en el que apenas está llevando a cabo un montón de funciones con el fin, entonces el procedimiento va a estar bien. Por ejemplo, si se trata de un simple programa de manipulación de cadenas, un enfoque de procedimiento sería suficiente:
perform_truncation(my_string, 10)
to_upper(my_string)
perform_magic(my_string, hat, rabbit)
Sin embargo, si se va a tratar con muchos elementos diferentes (tales como archivos, o cualquier otra representación de, bueno, objetos) entonces un enfoque orientado a objetos sería mejor.
Por ejemplo, si usted tenía un montón de Car
s y les deseó drive
, a continuación, en el procedimiento, es posible hacer algo a lo largo de la línea de:
drive_car(first_car)
drive_car(second_car)
Donde como, en programación orientada a objetos, la Car
lata conducir a sí mismo:
RedCar myRedCar();
BlueCar myBlueCar();
myRedCar.drive();
myBlueCar.drive();
Y, como cada automóvil es una clase diferente, su comportamiento se puede definir de manera diferente. Además, pueden ser ambas subclases o Car
que pueden tener una funcionalidad común.
Realmente se reduce al tipo de problema que hace que cualquier enfoque de procedimiento sea mejor que orientado a objetos y viceversa.
Aparte del problema de los procedimientos u orientados a objetos, puede ser una especie de "olor a código" tener un archivo fuente con muchas funciones. Esto también se puede decir acerca de las clases que contienen muchas funcionalidades que se pueden realizar mejor como funciones separadas en clases separadas.
El problema aquí puede ser la organización del código en lugar de decidir elegir la programación de procedimiento u orientada a objetos. Organizar las funciones en archivos fuente separados puede ser lo que se necesita aquí que abandonar el enfoque de procedimiento para escribir el programa.
Después de todo, hay muchos programas escritos en el enfoque de programación de procedimientos que están bien escritos y son fáciles de mantener.
Escribí una publicación en el blog hace un tiempo que podría ayudarlo a comprender la diferencia: [Explicación de procedimiento vs. OOP] (http://www.virtuosimedia.com/tutorials/procedural-vs-oop-explained) – VirtuosiMedia