El dominio de la programación enfocada a objetos es, sin duda, uno de los paradigmas más codiciado por los programadores. A continuación verán una lista de 10 cosas que no se deben realizar al implementar programación enfocada a objetos enfocándonos en el lenguaje PHP. 1.    Usar variables generales dentro las clases: una de las ventajas más significativos de la programación enfocada a objetos es la reusabilidad de los códigos. Al usar variables generales ($_GET, $_SESSION, $_POST, $_COOKIE, global) dentro de las clases, esta se ve comprometida considerablemente. La razón es que todos los programas no tienen las mismas variables generales. 2.    Mezclar código HTML en la definición de las clases: es una de las cosas que me sorprenden cada vez que la veo. Es inaceptable que esto se le haya sucedido a algunos. Al mezclar HTML en el código PHP se compromete la reusabilidad de la clase, no todos los programas tienen el mismo código HTML. 3.    Imprimir salida (echo) dentro de las clases: aunque esto se parece a la anterior, me refiero a los echo o parecidas dentro de los métodos. Si una clase no está destinada para emitir salida no lo debe hacer. Para eso muchos utilizamos sistemas de plantillas. 4.    Identificadores de clases, métodos y propiedades sin sentido: un identificador siempre debe ser lo más descriptivo posible. A muchos le gusta usar identificadores increíblemente irrelacionados con su propósito. Esto compromete enormemente la lectura de un código. 5.    Mezclar uso de versiones de php en una misma clase: a dividir de la versión 5 de PHP, la proyectoción enfocada a objetos se puede implementar de una forma más formal, pues se introdujo los modificadores de visibilidad public, private, protected. Aparte de que se pueden crear clases de alto nivel (clase Abstractas) y métodos abstractos con la palabra reservada abstract. También se pueden definir los métodos y propiedades estáticas formalmente con la palabra reservada static. Mezclar la proyectoción enfocada a objetos en PHP 4 (donde todo era publico) con la de PHP 5 hace un código ?sucio?. Consejo: prefiere una de las versiones y proyecto para ella. 6.    Más de una clase en un mismo archivo: definir diferentes clases en un mismo archivo es otra de las cosas que no se debe hacer. Las clase se han de componer lo más reusables probable y si puedes nombrar al archivo con el nombre de la clase muchísimo mejor. Seguid el sendero de los masivos lenguajes como: Actionscript, Asp.net, Java entre otros. 7.    No realizar pruebas unitarias a las clases: al terminar de codificar una clase recuerda de realizar pruebas unitarias para asegurar el adecuado funcionamiento de clase. Esto es simplemente probar todos los probables senderos que pueda beber un estado (propiedad), parámetro de método, etc para que la clase no ?explote?. 8.    Todos los métodos y las propiedades publicas en una clase de PHP 5: los programadores novatos cometen el yerro de definir todos los métodos y propiedades como públicos, por desconocer las ventajas de los modificadores visibilidad. En PHP este es un asunto gravisimo porque no hay tipeado de datos. El asunto de las propiedades públicas es que no podemos controlar de forma sencillo el tipo de datos que contiene por lo que vuestra clase pudiera explotar por un tipo de dato inesperado. Si no estas seguro de que visibilidad le debes colocar a una propiedad hazla privada. Valida los tipos de datos de las propiedades al menos de una forma básica. 9.    Duplicación de métodos para esconder falla de lógica: A diferencia de otros lenguajes como Java y C++, PHP no admite la sobrecarga de métodos. Al menos no de la forma tradicional. Esto, sin embargo, no es excusa para duplicar métodos sólo porque un dato varía para la operación que éste realiza. 10.    Variables de configuración dentro de las clases: Los datos de configuración de fundamento de datos, web services y otros deben ir en un archivo de configuración aparte, NO dentro de la clases que hacen uso de estas. Aunque se admite en clases que sea exclusivamente para ello.