Programación en PHP/Intermedio/OOP
PHP Orientado A Objeto
[editar]Cuando se trabaja en php orientado a objeto hay que tener en cuenta que se va a trabajar en la creación de un objeto o mejor conocido en php como clases, donde le vamos a dar a este propiedades y métodos que describan al objeto y las acciones que realiza este. Al programar orientado a objeto hay que tener en cuenta que se tiene que pensar todo de forma abstracta hay que abstraer todo lo posible de este objeto para lograr crear un buen objeto.
Creación de una Clase u objeto
[editar]Para crear una clase u objeto utilizando php se hace de la siguiente forma :
<?php
class NombreClase {
}
?>
En el ejemplo anterior se puede ver cómo es la sintaxis básica de una clase, paso previo para iniciar la creación de un objeto: se utiliza la palabra reservada class seguida del nombre de la clase y a continuación se colocan un par de llaves, una de apertura y otra de cierre, de forma que todo lo que está dentro de estas llaves pertenece a esta clase; dentro de estas llaves van todas las propiedades y métodos del objeto.
Propiedades de una clase
[editar]Las propiedades de las clases son los atributos del objeto como por ejemplo: el tamaño de una persona, el peso de una mesa... En php hay tres niveles de acceso tanto para las propiedades como para los métodos, los cuales son:
Public: Cuando le damos este nivel de acceso a un atributo, este puede ser accedido desde cualquier parte, tanto desde dentro de su misma clase como desde cualquier otra.
Private: Cuando se le da el nivel de acceso private estamos quitándole la libertad de acceso a las demás que intenten acceder, solo puede ser accedida desde su propia clase, donde el objeto fue definido.
Protected: Cuando le damos el nivel de acceso protegido sigue restringiendo la libertad de acceso a los demás que no sean de la clase donde se está declarando o de sus subclases.
Ahora veamos un ejemplo que muestra cómo se colocaría la propiedad dentro del objeto en php.
<?php
class NombreClase {
public $a;
private $b;
protected $c;
}
?>
Métodos de una clase
[editar]Los tipos de acceso también se utilizan en los métodos y son los mismos.
Método es aquella acción que es capaz de realizar el objeto. Para entender qué es el método de una clase, y por tanto el método de un objeto perteneciente a esa clase, pongamos el ejemplo de un objeto persona que tiene los métodos caminar, sentarse, comer... PHP utiliza la palabra reservada function para referirse a un método. Veamos un ejemplo:
<?php
class NombreClase {
public $a;
private $b;
protected $c;
public function A($a) {
}
private function B() {
}
protected function C() {
}
}
?>
En el ejemplo se crearon tres métodos dentro del objeto, los cuales tienen cada uno los distintos tipos de nivel de acceso; los métodos son más que funciones, pero son las funciones que realiza dicho objeto.
Constructores
[editar]En la programacion orientada a objetos (siglas POO u OOP en inglés) existe un método especial o mágico llamado método constructor. Este método se encarga de inicializar algunas variables --dentro de la clase se llaman propiedades o atributos-- que serán necesarias a la hora de crear una instancia de la clase o lo que es lo mismo, un objeto. Este método mágico usa la palabra reservada __construct.
<?php
class NombreClase {
public $a;
private $b;
protected $c;
function __construct() {
$this->a = 'x';
$this->b = 'w';
$this->c = 'z';
}
//...código
}
?>
De esta forma al momento de ser creado el objeto se van a inicializar las propiedades de el objeto como en el ejemplo donde en el objeto a la propiedad a se le asigna x , a la propiedad b se le asigna w y a la propiedad c se le asigna z, seguro se preguntan que es esa variable $this esta es lo que nos sirve para referirnos a que es en este objeto.
Al igual que hay un constructor existe un destructor que realiza todo el trabajo opuesto, que seria destruir todas las variables creadas.
Destructor
[editar]El destructor es utilizado para destruir todas las variables creadas en el objeto algo que no se utiliza mucho ya que php ya se encarga de liberar o eliminar todos los recursos utilizados al finalizar de ejecutar un script, sin embargo puede ser utilizado, su palabra reservada es __destruct(), vamos a ver un ejemplo a continuación:
<?php
class NombreClase {
public $a;
private $b;
protected $c;
function __construct() {
$this->a = 'x';
$this->b = 'w';
$this->c = 'z';
}
function __destruct() {
echo "el atributo asignado " .$this->a . " ha sido eliminado por el destructor.";
}
//...código
}
?>
Este llamado al destructor se realiza al momento de finalizar de correr el script.