SlideShare a Scribd company logo
1 of 23
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
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
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.
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)
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
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
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
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
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
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
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
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;
}
}
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();
}
}
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
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
}
}
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();
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í
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
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
}
}
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
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
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());
}
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

More Related Content

What's hot

desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqlJuan Timoteo Cori
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosRightster
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
201595533 maestrosdelweb-curso-django-1-pdf
201595533 maestrosdelweb-curso-django-1-pdf201595533 maestrosdelweb-curso-django-1-pdf
201595533 maestrosdelweb-curso-django-1-pdfGalvi Yanez
 
00 introducción a Python
00 introducción a Python00 introducción a Python
00 introducción a PythonJuan Rodríguez
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónRightster
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2César Hernández
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpJulio Cesar Salas
 

What's hot (20)

desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. Ejercicios
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
201595533 maestrosdelweb-curso-django-1-pdf
201595533 maestrosdelweb-curso-django-1-pdf201595533 maestrosdelweb-curso-django-1-pdf
201595533 maestrosdelweb-curso-django-1-pdf
 
2 7 ficheros_php
2 7 ficheros_php2 7 ficheros_php
2 7 ficheros_php
 
Presentación appy/pod
Presentación appy/podPresentación appy/pod
Presentación appy/pod
 
00 introducción a Python
00 introducción a Python00 introducción a Python
00 introducción a Python
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Manual PHP 7
Manual PHP 7Manual PHP 7
Manual PHP 7
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-php
 

Viewers also liked

Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebRightster
 
Curso php dia1
Curso php dia1Curso php dia1
Curso php dia1cognos_uie
 
Estructurabasicaphp 130216112853-phpapp01
Estructurabasicaphp 130216112853-phpapp01Estructurabasicaphp 130216112853-phpapp01
Estructurabasicaphp 130216112853-phpapp01gama ortega
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sqlyanetzis
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaHRS1993
 
Programacion
ProgramacionProgramacion
Programacionjunino765
 
Características de un buen programa
Características de un buen programaCaracterísticas de un buen programa
Características de un buen programaKarla Green
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMiguel Angel Nieto
 
Presentación Framework CodeIgniter
Presentación Framework CodeIgniter Presentación Framework CodeIgniter
Presentación Framework CodeIgniter ADWE Team
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBJavier Condori Flores
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantesMichelle Torres
 

Viewers also liked (20)

Iniciación PHP 5. Programación Web
Iniciación PHP 5. Programación WebIniciación PHP 5. Programación Web
Iniciación PHP 5. Programación Web
 
Programación en PHP
Programación en PHPProgramación en PHP
Programación en PHP
 
Curso php dia1
Curso php dia1Curso php dia1
Curso php dia1
 
Estructurabasicaphp 130216112853-phpapp01
Estructurabasicaphp 130216112853-phpapp01Estructurabasicaphp 130216112853-phpapp01
Estructurabasicaphp 130216112853-phpapp01
 
Curso Básico PHP
Curso Básico PHPCurso Básico PHP
Curso Básico PHP
 
Aplicaciones web con php y my sql
Aplicaciones web con php y my sqlAplicaciones web con php y my sql
Aplicaciones web con php y my sql
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacion
ProgramacionProgramacion
Programacion
 
Framework
FrameworkFramework
Framework
 
Características de un buen programa
Características de un buen programaCaracterísticas de un buen programa
Características de un buen programa
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
MVC
MVCMVC
MVC
 
Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!
 
Presentación Framework CodeIgniter
Presentación Framework CodeIgniter Presentación Framework CodeIgniter
Presentación Framework CodeIgniter
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEB
 
ALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWAREALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWARE
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantes
 

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

Intro Programación Orientada a Objetos
Intro Programación Orientada a ObjetosIntro Programación Orientada a Objetos
Intro Programación Orientada a ObjetosPablo Sepulveda P.
 
Sesion2 Php Oo Y Mysql
Sesion2 Php Oo Y MysqlSesion2 Php Oo Y Mysql
Sesion2 Php Oo Y MysqlHugo Flores
 
Introducción a PHP 5.4
Introducción a PHP 5.4Introducción a PHP 5.4
Introducción a PHP 5.4El Taller Web
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en phpRobert Moreira
 
2 POO Presentación
2 POO Presentación2 POO Presentación
2 POO Presentaciónguest7b7e934
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2Raul Fraile
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC lissette_torrealba
 
04 Clases Y Objetos
04   Clases Y Objetos04   Clases Y Objetos
04 Clases Y ObjetosNetwork Sens
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++Karime Hernández
 
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial   6 Polimorfismo, AbstraccióN E InterfacesCurso Java Inicial   6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial 6 Polimorfismo, AbstraccióN E InterfacesEmilio Aviles Avila
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En JavaEmilio Aviles Avila
 

Similar to Iniciación PHP 5. Programación Orientada a Objetos (20)

Intro Programación Orientada a Objetos
Intro Programación Orientada a ObjetosIntro Programación Orientada a Objetos
Intro Programación Orientada a Objetos
 
Adentrándonos a PHP 5
Adentrándonos a PHP 5Adentrándonos a PHP 5
Adentrándonos a PHP 5
 
Sesion2 Php Oo Y Mysql
Sesion2 Php Oo Y MysqlSesion2 Php Oo Y Mysql
Sesion2 Php Oo Y Mysql
 
Introducción a PHP 5.4
Introducción a PHP 5.4Introducción a PHP 5.4
Introducción a PHP 5.4
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
 
Guia poo php
Guia poo phpGuia poo php
Guia poo php
 
2 POO Presentación
2 POO Presentación2 POO Presentación
2 POO Presentación
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC Guía PHP Orientado a Objeto con MVC
Guía PHP Orientado a Objeto con MVC
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
08 Herencia
08   Herencia08   Herencia
08 Herencia
 
Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
04 Clases Y Objetos
04   Clases Y Objetos04   Clases Y Objetos
04 Clases Y Objetos
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial   6 Polimorfismo, AbstraccióN E InterfacesCurso Java Inicial   6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
10 - Slides-Java sesion.pptx
10 - Slides-Java sesion.pptx10 - Slides-Java sesion.pptx
10 - Slides-Java sesion.pptx
 
POO
POOPOO
POO
 
Introduccio al Java
Introduccio al JavaIntroduccio al Java
Introduccio al Java
 

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

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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