Iniciación PHP 5. Programación Orientada a Objetos

8,406 views

Published on

Iniciación PHP 5. Programación Orientada a Objetos

  1. 1. Curso de Introducción a PHP 5 Tema 3: PHP 5 y POO* *POO = Programación Orientada a Objetos 1. Clases y Objetos 2. Métodos y propiedades 3. Herencia 4. Constantes, métodos y variables estáticas 5. Interfaces y clases abstractas 6. Excepciones
  2. 2. Curso de Introducción a PHP 5 Tema 3: PHP 5 y POO* *POO = Programación Orientada a Objetos 1. Clases y Objetos 2. Métodos y propiedades 3. Herencia 4. Constantes, métodos y variables estáticas 5. Interfaces y clases abstractas 6. Excepciones
  3. 3. Curso de Introducción a PHP 5 3.0. POO en un suspiro Tema 3. PHP 5 y POO Clases. Unidades lógicas que agrupan código y datos. Un clase es un “molde” con funciones (métodos) y variables (propiedades). Un objeto es lo que se obtiene al “desmoldar” la clase.
  4. 4. Curso de Introducción a PHP 5 3.1. Clases y Objetos Tema 3. PHP 5 y POO ¿Cómo creamos una nueva clases? class miClase{ // El código de la clase iría aquí } ¿Cómo instanciamos una clase? $miClaseInstanciada = new miClase(); $copia = $myClaseInstancia; Apuntan al mismo objeto (diferencia con PHP 4)
  5. 5. Curso de Introducción a PHP 5 Tema 3: PHP 5 y POO* *POO = Programación Orientada a Objetos 1. Clases y Objetos 2. Métodos y propiedades 3. Herencia 4. Constantes, métodos y variables estáticas 5. Interfaces y clases abstractas 6. Excepciones
  6. 6. Curso de Introducción a PHP 5 3.2. Métodos y propiedades Tema 3. PHP 5 y POO ¿Cómo declaramos un método en una clase? class miClase{ function miMetodo(){ echo 'Ejecutado miMetodo'; } } ¿Cómo ejecutamos un método en una clase? $this->miMetodo(); $obj = new miClase(); $obj->miMetodo(); Fuera Dentro
  7. 7. Curso de Introducción a PHP 5 3.2. Métodos y propiedades Tema 3. PHP 5 y POO Constructores class foo { function __construct() { // Inicializar el objeto } } Destructores PHP5 class foo { function foo() { // Inicializar el objeto } } PHP4 class foo { function __destruct() { // Tareas de limpieza } } Cuidado No se puede controlar cuando se ejecuta
  8. 8. Curso de Introducción a PHP 5 3.2. Métodos y propiedades Tema 3. PHP 5 y POO Visibilidad class foo { [final] visibility function bar(){} } public. Se puede acceder desde cualquier ámbito (en caso de omisión) protected. Sólo puede ser accedido por la propia clase y sus descendientes private. Sólo puede ser accedido por la propia clase final. No puede ser sobreescrito por sus descendientes
  9. 9. Curso de Introducción a PHP 5 3.2. Métodos y propiedades Tema 3. PHP 5 y POO Declarando una propiedad class foo { public $bar = “bar”; private $baz = “baz”; } Llamando a una propiedad $this->bar; $this->baz; $obj = new foo(); $obj->bar; Fuera Dentro
  10. 10. Curso de Introducción a PHP 5 Tema 3: PHP 5 y POO* *POO = Programación Orientada a Objetos 1. Clases y Objetos 2. Métodos y propiedades 3. Herencia 4. Constantes, métodos y variables estáticas 5. Interfaces y clases abstractas 6. Excepciones
  11. 11. Curso de Introducción a PHP 5 3.3. Herencia Tema 3. PHP 5 y POO La herencia es una de las claves de la POO Permite extender unas clases de otras. Lo cual implica - Utilizar métodos y propiedades de las clases padre - Añadir nuevos métodos - Añadir nuevas propiedades - Sobreescribir métodos y propiedades de las clases padre La herencia junto con las interfaces permiten el polimorfismo de las clases
  12. 12. Curso de Introducción a PHP 5 3.3. Herencia Tema 3. PHP 5 y POO Haciendo que una clase herede de otra class foo extends bar{ // Código } Sobreescribiendo un método de la clase padre class bar{ protected $a = “”; public function __construct($a) { $this->a = $a; } } class foo extends bar{ public function __construct($a) { $this->a = $a*2; } }
  13. 13. Curso de Introducción a PHP 5 3.3. Herencia Tema 3. PHP 5 y POO Reutilizando un método de la clase padre class foo extends bar{ public function reset() { return $this->__construct(); } } Sobreescribiendo y reutilizando un método de la clase padre class foo extends bar{ protected $b = “”; public function __construct() { $this->b = 10; return parent::__construct(); } }
  14. 14. Curso de Introducción a PHP 5 Tema 3: PHP 5 y POO* *POO = Programación Orientada a Objetos 1. Clases y Objetos 2. Métodos y propiedades 3. Herencia 4. Constantes, métodos y variables estáticas 5. Interfaces y clases abstractas 6. Excepciones
  15. 15. Curso de Introducción a PHP 5 3.4. Constantes, métodos y propiedades estáticas Tema 3. PHP 5 y POO Declarando una propiedad estática class foo { static public $bar = “bar”; } Declarando un método estático class foo { static public function barMethod(){ //Hacer algo } }
  16. 16. Curso de Introducción a PHP 5 3.4. Constantes, métodos y propiedades estáticas Tema 3. PHP 5 y POO Accediendo a una propiedad estática Ejecutando un método estático Fuera Dentro $value = self::$bar;$value = foo::$bar; Fuera Dentro $value = self::barMethod();$value = foo::barMethod();
  17. 17. Curso de Introducción a PHP 5 3.4. Constantes, métodos y propiedades estáticas Tema 3. PHP 5 y POO Definiendo una constante en una clase Llamando a una constante Fuera Dentro $value = self::BAZ;$value = foo::BAZ; class foo{ CONST BAZ = “baz”; } Una constante no puede cambiar su valor mientras que un método estático sí
  18. 18. Curso de Introducción a PHP 5 Tema 3: PHP 5 y POO* *POO = Programación Orientada a Objetos 1. Clases y Objetos 2. Métodos y propiedades 3. Herencia 4. Constantes, métodos y variables estáticas 5. Interfaces y clases abstractas 6. Excepciones
  19. 19. Curso de Introducción a PHP 5 3.5. Interfaces y clases abstractas Tema 3. PHP 5 y POO Definiendo una interfaz Implementando una interfaz en una clase interface miInterfaz{ public function metodoFoo(); } MiClase implements miInterfaz{ public function metodoFoo(){ // Implementación del método } }
  20. 20. Curso de Introducción a PHP 5 3.5. Interfaces y clases abstractas Tema 3. PHP 5 y POO Definiendo una clase abstracta class MiClaseAbstracta{ public function metodoFoo(){ // Implementación del método } abstract public function metodoBar(); } Las clases abstractas no se pueden instanciar Deben tener al menos un método abstracto
  21. 21. Curso de Introducción a PHP 5 Tema 3: PHP 5 y POO* *POO = Programación Orientada a Objetos 1. Clases y Objetos 2. Métodos y propiedades 3. Herencia 4. Constantes, métodos y variables estáticas 5. Interfaces y clases abstractas 6. Excepciones
  22. 22. Curso de Introducción a PHP 5 3.6. Excepciones Tema 3. PHP 5 y POO Objeto especial que hereda de la clase Exception Su misión es recopilar e informar errores El constructor acepta dos parámetros, mensaje de error y código de error. ¿Cómo se lanza un error? throw new Exception(“Se ha lanzado una excepción”); ¿Cómo se recoge una excepción? try{ // código que puede lanzar una excepción }catch($e Exception){ // gestionamos las posible excepción die($e->getMessage()); }
  23. 23. Curso de Introducción a PHP 5 3.6. Excepciones Tema 3. PHP 5 y POO Extender la clase excepción: 1. Añadir nuevas funcionalidades 2. Mejorar el manejo de errores Algunos métodos públicos de Exception ● getMessage() Devuelve el mensaje que se le pasó al constructor ● getCode() Devuelve el código que se le pasó al constructor ● getFile() Devuelve el archivo donde se lanzó la excepción ● getLine() Devuelve la línea donde se lanzó la excepción

×