Curso PHP orientado a objetos – Introducción
Aunque PHP nació como un lenguaje orientado a la programación procedimental, con el tiempo se fue adaptando a las necesidades de los desarrolladores y comenzó a añadir características propias de los lenguajes orientados a objetos.
Esta es la primera entrada de un mini curso de varias entregas en el que trataremos de explicaros cómo usar los mecanismos propios de la orientación a objetos en este lenguaje tan popular del lado del servidor.
Clases, atributos y operaciones
Simplificando mucho, una clase es la representación software de un elemento de la vida real. Si para un determinado problema, que es el que vamos a utilizar, nos importan los usuarios, tendremos la clase “usuario”. La representación software serán los datos y el comportamiento del mismo que nos importe de cara a nuestro sistema. Imaginemos un sencillo sistema de gestión de usuarios que almacene los siguientes datos:
- Identificador: Un entero que identifique de manera unívoca al usuario.
- Nombre: Cadena con el nombre del usuario.
- Apellidos: Cadena con los apellidos del usuario.
- Código postal: Entero que almacena el código postal del domicilio del usuario.
Por lo tanto, tendrá los atributos: identificador, nombre, apellidos y código postal. Ésta será la parte estática de la clase, la parte de información que nos interesa almacenar del elemento de la vida real: “el usuario”, en nuestro problema. La parte dinámica serán las operaciones de la clase y que son necesarias para la resolución del problema.
Éstas son los métodos y cuando acceden directamente a los atributos, también suelen llamarse propiedades. Si suponemos que no tenemos acceso a los atributos porque los declaramos como privados (ya daremos más detalles sobre la visibilidad en las clases), en nuestro caso serían:
- getIdentificador(): devuelve el identificador
- setIdentificador(nuevoIdentificador): establece un nuevo identificador
Y así para todos los atributos. En la próxima entrega hablaremos de cómo implementar en la práctica, estos primeros conceptos que acabamos de presentar.