Introducción
a POO en PHP
PHP
comenzó siendo un simple lenguaje de scripts. A medida que las versiones
avanzaban, se fueron incluyendo algunas características que permitían programar
con orientación a objetos. Con la aparición de PHP 5, los desabolladores
tenemos una verdadera plataforma de programación orientada a objetos, gracias a
la potencia de engine Zend 2.0, que permite ejecutar más rápido y más
eficientemente este tipo de programas.
El
nombre Zend se refiere al motor del lenguaje, es decir, el núcleo de PHP. El
termino PHP se refiere al sistema completo tal y como aparece desde afuera.
Zend ocupa la parte de interprete
(analiza el código de entrada de un scripts, lo traduce y lo ejecuta), y
también un poco de la parte de
funcionalidad (implementa la funcionalidad del sistema).
PHP
ocupa la parte de funcionalidad y la de interfaz
(habla con el servidor web, etc.).
Zend
forma realmente el núcleo del lenguaje, mientras que PHP contiene todos los módulos externos (los
cuales se pueden cargar en tiempo de ejecución) e incorporados (los que se
compilan directamente con PHP) que crean las posibilidades destacadas del
lenguaje.
La
programación orientada a objetos utiliza los elementos clase y objeto con punto
de inicio.
¿Por
qué usar PHP OO?
La programación orientada
a objetos (POO) es un término que se utiliza para describir que una aplicación,
API, framework, etc.; está compuesta de múltiples objetos que están conectados
entre sí. Es uno de los paradigmas de programación más importantes en la
actualidad.
En PHP, una función declarada
en una pagina PHP, podrá ser usada inmediatamente después a su declaración.
Como primera aproximación, uno podría plantarse a programar en cada fichero PHP
todas las funciones necesarias que vayan a usarse en el fichero. En proyectos grandes, esto supone un alto
nivel de mantenimiento debido a la complejidad de de seguimiento del código y a
la duplicación del mismo código en distintas paginas. En caso de detectarse un error y el código que lo corrige, o en caso de
querer aplicar una mejora en una función, deberán revisarse todos los scripts
PHP para comprobar si contienen la función que hay que corregir.
PHP permite definir
clases, que poseen variables (también llamadas propiedades) y métodos
(funciones). Estas clases nos permiten una serie de ventajas (optimización y
reutilización de código, estructuración y modelización de problemas y
soluciones, extensibilidad, etc).
Conceptos
El
primer concepto que es necesario aprender es el de clase. Una clase suele
explicarse como una plantilla. Las clases
crean los atributos de las cosas, así como también sus procesos. Por ejemplo,
una clase llamada Perro, va a definir los atributos y procesos básicos de los
perros como:
· Nombre
· Ladrar
· Correr
· Mover
la cola
· Raza
· Color
de pelo
· etc.
Las
clases aportan modularidad. Tanto
los atributos como los procesos (o acciones) que posee una clase, tienen que
tener sentido. Al utilizar nombres relevantes, el código es más simple de
entender y actualizar.
El
siguiente concepto importante es el de objeto.
Un objeto se define como una
instancia de una clase. Ya dijimos que una clase era como una plantilla, y por
ejemplo vimos una clase llamada Perro. Al crear una instancia de la clase Perro
podemos obtener un objeto llamado "Fido". Fido es un perro específico,
mientras que comparte las mismas acciones que otros perros, tiene sus propios
atributos que lo hacen único.
Ya
sabemos que los objetos tienen
atributos y acciones, dentro de la programación orientada a objetos, dichas
acciones se denominan métodos. Los métodos son las habilidades que posee un
objeto; por ejemplo Fido puede ladrar. Cuando se utiliza un método de un
objeto, sólo afecta al objeto del cual se invoca. A pesar que todos los perros
que instanciemos de nuestra clase pueden ladrar, si llamamos al método Ladrar
de Fido, sólo él va a estar ladrando.
Modelando el
mundo
El modelar el mundo real es uno de los
aspectos más poderosos de la POO. Esto es: crear objetos que conocemos de la
vida real a objetos en nuestros sistemas. Ya que vivimos en el mundo real, es
fácil para otros, entender qué es un objeto y qué hace, si lo basamos en un
objeto real.
Un
cliente, un carrito de compras y un producto, pueden ser rápidamente
reconocidos y se entienden muy bien las interacciones que estos tienen entre
sí; ya que los vemos todo el tiempo en nuestras vidas. Entendemos que pueden
haber varios productos en un carrito de compras, que un cliente posee un
nombre, que un producto posee un precio, etc. Y a pesar de esto, el carrito de
compras de nuestro sistema puede tener acciones, que un carrito real no posee. En nuestro sistema el carrito puede decirnos cuál es el precio total de todos
los productos que posee, mientras que un carrito real sólo utiliza sus ruedas
para transportarse (cosa que en nuestro sistema es innecesario).
Una
de las primeras cosas que hay que hacer al desarrollar un sistema, es descubrir
todos (o la mayoría) de los objetos de la vida real que va a poseer nuestro
sistema. Ya sean: empleados, oficinas, documentos, botones, etc. Ellos nos
ayudarán a pensar cómo realizar nuestro proyecto. Una vez que los tenemos
identificados, podemos agruparlos y clasificarlos, para poder trabajar mejor.






0 comentarios:
Publicar un comentario