Está en la página 1de 23

PROGRAMACIÓN ORIENTADA

A LA WEB I

Tema 2: POO con PHP


PHP y POO
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
POO
Clases. Unidades lógicas que agrupan código y datos.

Una clase es un “molde” con funciones (métodos) y variables (propiedades).

Un objeto es lo que se obtiene al “desmoldar” la clase.


Clases y Objetos
¿Cómo creamos una nueva clase?

class miClase{

// El código de la clase iría aquí

¿Cómo instanciamos una clase?

$miClaseInstanciada = new miClase();


$copia = $myClaseInstancia;
PHP y POO
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
Métodos y propiedades
¿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?

Dentro
$obj = new miClase();
Fuera

$this->miMetodo();
$obj->miMetodo();
• Constructor

• class foo { class foo {


• function construct() function foo()
PHP 5

PHP 4
• { {

• // Inicializar el objeto // Inicializar el objeto


}
• }
• } }

• Destructor
• class foo {
• function destruct()
• {
• // Tareas de limpieza
• }
• }
Métodos y propiedades
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


Métodos y propiedades
Declarando una propiedad

class foo {

public $bar = “bar”;


private $baz = “baz”;

Llamando a una propiedad

$obj = new foo(); $this->bar;


Fuera

Dentro
$obj->bar; $this->baz;
PHP y POO
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
Herencia
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


Herencia
Haciendo que una clase herede de otra

class foo extends bar{


// Código
}

Sobreescribiendo un método de la clase padre


class bar{ class foo extends bar{

protected $a = “”;

public function construct($a) public function construct($a)


{ {
$this->a = $a; $this->a = $a*2;
} }
} }
Herencia
• 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();
}
}
PHP y POO
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
Constantes, métodos y propiedades estáticas
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
}

}
Accediendo a una propiedad estática
Fuera

$value = foo::$bar; $value = self::$bar;

Dentro
Ejecutando un método estático
Fuera

Dentro
$value = foo::barMethod(); $value = self::barMethod();
Constantes, métodos y propiedades estáticas
Definiendo una constante en una clase

class foo{

CONST BAZ = “baz”;

Llamando a una constante

Dentro
Fuera

$value = foo::BAZ; $value = self::BAZ;


PHP y POO
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
Interfaces y clases abstractas
Definiendo una interfaz

interface miInterfaz{

public function metodoFoo();

}
Implementando una interfaz en una clase

MiClase implements miInterfaz{

public function metodoFoo(){

// Implementación del método

}
Interfaces y clases abstractas
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


PHP y POO
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
Excepciones
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());
}
Excepciones
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

También podría gustarte