Programación en PHP/Intermedio/OOP

De Wikilibros, la colección de libros de texto de contenido libre.

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 solo se puede ver la como es la sintaxis para iniciar la creación de un objeto , como se pueden dar cuenta se utiliza la palabra reservada class seguida del nombre de la clase y se abre una llave , de forma de que todo lo que esta dentro de esta llave pertenece a todo este objeto , dentro de estas llaves que abren y cierran van todo lo que es 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 3 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, asi sea dentro de su misma clase como desde otra.

Private: Cuando se le da el nivel de acceso private estamos quitandole la libertad de acceso a las demas que intenten acceder solo puede ser accedida desde su propia clase donde este fue definido.

Protected: Cuando le damos el nivel de acceso protegido sigue restringiendo la libertad de acceso a los demas que no sean de la clase donde se esta declarando o de sus subclases.

ahora veamos un ejemplo de como se colocaria la propiedad dentro del objeto en php.

<?php
class NombreClase {

  public $a;
  private $b;
  protected $c;

}
?>

Métodos de una clase[editar]

Como ya le había nombrado antes los tipos de acceso también se utilizan en los método y son los mismos.

Para entender un poco que es el método de una clase u objeto , seria un ejemplo el de un objeto persona que tiene el método caminar , o sentarse o comer. Método seria todo lo que es capaz de realizar el objeto, en php su sintaxis utiliza la palabra reservada function, ahora veamos un ejemplo:

 <?php
class NombreClase {

  public $a;
  private $b;
  protected $c;

  public function A($a) {
  }

  private function B() {
  }

  protected function C() {
  }

}
 ?>

Como pueden ver en el ejemplo se crearon 3 métodos dentro del objeto los cuales tienen cada uno de estos los distintos tipos de nivel de acceso , los metodos son mas que funciones pero 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.