1
<? Sesion2 PHP OO y MySQL ?>
Hugo FloresHugo Flores
Analista de Sistemashpfloresj.blogspot.com
Curso de PHP
Diciembre 29, 2007
2
Agenda Que es la POO Características de la POO Clases y objetos Atributos y métodos Modificadores de acceso Constructores Sobrecarga de métodos Herencia y Polimorfismo SMDB MySQL operaciones básicas Conexión entre PHP y MySQL Uso de tools para administrar MySQL
3
Que es la POO● “La POO es un paradigma (modelo) de
programación que facilita la creación de software de calidad, utilizando objetos ligados mediante mensajes, trata de amoldarse al modo de pensar del hombre”.
● Por que Orientado a Objetos?– Se parece más al mundo real– Permite representar modelos complejos– Muy apropiada para aplicaciones de negocios– Las empresas ahora sí aceptan la OO– Las nuevas plataformas de desarrollo la han adoptado
(Java / .NET/PHP)
4
Características de la POO
EncapsulamientoEncapsulamiento
HerenciaHerencia
AbstracciónAbstracción
PolimorfismoPolimorfismo
5
Características de la POOAbstracciónAbstracción● Ignorancia Selectiva
– La abstracción nos ayuda a trabajar con cosas complejas
– Se enfoca en lo importante– Ignora lo que no es importante (simplifica)
● Una clase es una abstracción en la que:● Se enfatizan las características relevantes● Se suprimen otras características
● Una clase debe capturar una y solo una abstracción clave
6
Características de la POOEncapsulamientoEncapsulamiento● Principio que establece que los atributos propios de un
objeto no deben ser visibles desde otros objetos– Deben ser declarados como privados
● Permite abstraer al resto del mundo de la complejidad de la implementación interna
● Permite exponer el estado del objeto sólo a través del comportamiento que le hayamos definido mediante miembros públicos
● ¿Por qué es útil?– Punto de Control/Validación– Mejor respuesta ante los Cambios
7
Características de la POOHerenciaHerencia• Es una relación entre clases en la
cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch)
• Cada clase que hereda de otra posee:
- Los atributos de la clase base además de los propios
- Soporta todos o algunos de los métodos de la clase base
• Una subclase hereda de una clase base (PHP soporta herencia simple)
+Avanzar()+Detenerse()
-pasajeros
Transporte
Automóvil Avión
Clase BaseClase Base
Clases Derivadas oClases Derivadas o
subclasessubclases
8
Características de la POOPolimorfismoPolimorfismo● Es la propiedad que tienen los objetos de
permitir invocar genéricamente un comportamiento (método) cuya implementación será delegada al objeto correspondiente recién en tiempo de ejecución
● El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es así
9
Características de la POOPolimorfismo ejemploPolimorfismo ejemplo
● La definición del método reside en la clase base● La implementación del método reside en la clase
derivada● La invocación es resuelta al momento de ejecución
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
10
Polimorfismo seudocódigoPolimorfismo seudocódigo
Características de la POO
11
● Objeto -> “Un objeto es un concepto, abstracción o cosa con un significado y límites claros en el problema en cuestión” (Rumbaugh).
● Clase -> Es una abstracción que:– Enfatiza las características relevantes
(Propiedades y Comportamiento)– Suprime otras características (simplificación)
● Un objeto es una instancia de una clase. (variable cuyo tipo de dato es una clase)
Clases y objetos
12
Clases y objetos
PHP: las clases son declaradas mediante class
Crear un objeto
13
Atributos y métodos● Una clase, tiene un puntero especial al que podemos
referenciar como $this. Si nuestra clase tiene un atributo llamado $atributo, podemos hacer referencia a este desde nuestra clase (métodos) de la siguiente forma $this->atributo
● Los métodos en PHP se declaran anteponiendo la
palabra clave function y no devuelven algún tipo de datos específico.
14
Modificadores de acceso● PHP5 incorpora nuevos modificadores que permiten
controlar la visibilidad de los atributos y métodos y que se añaden delante de las declaraciones.
public
private
protected
Por defecto, acceso desde dentro y fuera dela clase.
Acceso solo desde dentro de la clase. Nose heredan, accedidos por los getters y setters
Acceso solo desde dentro de la clase y siPermite herencia en las subclases.
15
Modificadores de acceso
¿Cuál es el resultado?
16
● Constructor: métodos dentro de la clase que son llamados automáticamente cuando se crea una instancia de dicha clase.
● Sintaxis
Constructores
class claseX{ public function __construct(){...}//Const. por default public function __construct( $param ){...}}
17
● Ejercicio: Probar la implementación de la siguiente clase
Constructores
¿Cuál es el resultado?Probar esta clase
18
Sobrecarga de métodos
SobrecargaSobrecarga: : varios métodos con el mismo nombre varios métodos con el mismo nombre pero diferente “firma”.pero diferente “firma”.
¿Algún ejemplo?¿Algún ejemplo?
public function HacerDeposito( $importe) {}
public function HacerDeposito( $importe, $acreditar){}
19
Herencia y Polimorfismo
HerenciaHerencia● Declaración de clases y derivación
class subclase extends superclase{
//Cuerpo de la clase }
20
● Ejercicio: Implemantar
Herencia y Polimorfismo
21
● Ejercicio: Implemantar
Herencia y Polimorfismo
22
● Ejercicio: Implemantar
Herencia y Polimorfismo
23
Herencia y Polimorfismo
PolimorfismoPolimorfismo
24
SMDB MySQL operaciones básicas
● En este apartado comprenderemos como realizar operaciones básicas con MySQL como es insertar, actualizar, leer y eliminar registros de una tabla.
● SQL de la bd: sistema
CREATE TABLE `usuario` (`idUsuario` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,`nombre` VARCHAR( 15 ) NOT NULL ,`clave` VARCHAR( 15 ) NOT NULL );
25
SMDB MySQL operaciones básicas
Funciones de MySQLFunciones de MySQL
26
Conexión entre PHP y MySQL● Operación consultar
27
Conexión entre PHP y MySQL● Operación insertar, actualizar y eliminar se hará en
clases y con el uso de la POO para simplificar el trabajo repetitivo.
● Para administrar la bd mysql propondremos la utilización de dos herramientas, Navicat y PhpMyAdmin
28
¿Que se verá en la sesión3?
● Veremos como crear dos clases de persistencia de base de datos, que nos ayudarán a reutilizar nuestro código en las conexiones con la base de datos MySQL a las que llamaremos DBManager y RecordSet.
● Desarrollo de una aplicación web con las operaciones báscias CRUD (Create, Retrieve, Update y Delete) a la que llamaremos wbmusic.
29
https://masterlinegroup.blogspot.com
Gracias por su atención