Php Profesional guia
-
Author
moises-cachay -
Category
Documents
-
view
226 -
download
2
Embed Size (px)
Transcript of Php Profesional guia
-
8/18/2019 Php Profesional guia
1/43
-
8/18/2019 Php Profesional guia
2/43
Dedicatoria
Esta obra la dedico de manera especial a mi hija Sofía Fernanda.
-
8/18/2019 Php Profesional guia
3/43
Acerca del Autor
Eric Gustavo Coronel Castillo es Ingeniero Electrónico de la Facultad de Electrónica de la Universidad Nacionalde Ingeniería, desde fines de los 80’s se dedica a la Informática & Sistemas, especialmente en los temas deDesarrollo y Base de Datos, en la actualidad es uno de los profesionales mas reconocido de nuestro mediodebido a su amplia experiencia.
Como Desarrollador y Consultor de Sistemas ha brindado sus servicios a instituciones públicas y privadas comola Universidad Nacional de Ingeniería, Policía Nacional del Perú, Prodeco Asociados S.A., ConstructoraRacarrumy SA, Infecom EIRL, Casas & Cosas S.A., GrapPeru SAC, AlfaVia, Instituto Peruano del Deporte, IPAEy a muchas pequeñas y microempresas.
Como Docente cuenta con más de 15 años de experiencia en el dictado de cursos de desarrollo orientados alprocesamiento de datos, en la elaboración de manuales técnicos, y en la difusión de tecnologías emergentes. Actualmente es docente en la Facultad de Ingeniería de Sistemas de la Universidad Nacional de Ingeniería en suunidad de capacitación – SistemasUNI y en el Instituto Superior San Ignacio de Loyola. También ha prestado susservicios como docente a la Universidad “Alas Peruanas”, Universidad Particular “Antenor Orrego”, UniversidadNacional de Trujillo, SENCICO, GrapPerú, programa PECI del Instituto San Ignacio de Loyola, Universidad
Federico Villarreal, Universidad César Vallejo y otros.
Como Conferencista es invitado periódicamente a exponer seminarios de difusión tecnológica en las principalesciudades del país, como la Universidad Nacional Mayor de San Marcos, Universidad Nacional de Ingeniería,Universidad Inca Gracilazo de la Vega, Universidad Nacional de Trujillo, Universidad Nacional "San Antonio Abad" del Cuzco, Universidad “Los Angeles” de Chimbote, GrapPeru, y otros.
En Octubre del 2000 sale a luz su primera publicación, “Diseño de Aplicaciones Cliente-Servidor con Visual Basic6.0 & SQL Server 7.0” con el cual se hace conocido tanto a nivel local y nacional; en Enero del 2001 publica susegundo libro “Diseño de Aplicaciones Cliente-Servidor con Power Builder 7.0 y SQL Server 7.0”, con el querecibe el reconocimiento de varios países tales como Bolivia, Ecuador, Colombia, y otros.
En el 2005 es invitado por la Empresa Editora MACRO, y en Septiembre del mismo año sale a luz su librotitulado “ Desarrollo de Aplicaciones con PHP y MySQL”, luego en Marzo del 2006 publica el libro "Lenguajede Programación Java2 Versión 5" , en el 2009 publica su libro Desarrollando Soluciones con Java, en laactualidad forma parte del staff de escritores de esta editorial.
-
8/18/2019 Php Profesional guia
4/43
Agradecimientos
Hacer una nueva versión de mi libro de PHP ha resultado una experiencia muy interesante,me ha permitido conocer mucho más de PHP y toda su filosofía de programación Orientada
a Objetos, pero sobre todo ingresar al mundo de la aplicación de los Patrones de Diseño,
pienso que todo profesional que se dedica a crear soluciones con PHP debe no sólo
conocer, sino también aplicar correctamente los patrones de diseño, ya que son soluciones
simples y elegantes, y sobre todo probadas sobre problemas comunes de la programación.
En mi labor como docente, empecé ha desarrollar patrones de diseño como DAO y MVC, la
pregunta natural de mis alumno con respectos a estos temas siempre es: ¿Qué bibliografía
me recomienda?, por supuesto que hay mucha, pero existe el inconveniente primero del
lenguaje, ya que la mayoría esta en ingles, y si esta en español el problema esta en los
ejemplos, son insuficientes o no son muy claros, espero que mi libro ayude a entender los
conceptos y su aplicación en soluciones empresariales.
El resultado de un libro de este tipo es sin duda una tarea muy difícil, pero mi labor como
docente me facilita dar a conocer mis ideas y recibir críticas, ya que es en las aulas donde
primero las expongo y recibo la opinión de mis alumnos. Otra fuente muy importante son los
comentarios de personas que han leído mis libros anteriores, ellos también han contribuido a
enriquecer esta obra.
Por eso, esta obra es también de todas las personas que han participado desde el primer
momento que empecé a diagramarla, son muchas las personas con las que converse y delas que recibí sus comentarios, pero debo agradecer de manera especial a mis amigos de
siempre y colegas por sus aportes y tiempo dedicado:
Sergio Matsukawa Maeda: Como siempre, Sergio está dispuesto a colaborar en mis
publicaciones, sus aportes son muy precisos.
Ricardo Marcelo Villalobos: Como siempre, Ricardo es el crítico mas agudo de mis
libros, sus aportes sirvieron para hacer varios cambios, tanto en el enfoque,
desarrollo de los temas, como en los ejemplos. Aprovecho para felicitar a Ricardo por
su primogénito.
Julio Flores Manco: Julio como siempre bastante colaborador, sus sugerencias
fueron bastante valiosas.
Hugo Valencia Morales: Los aportes de Hugo siempre son bienvenidos, también es
muy preciso en sus comentarios. Sigo esperando a que se anime a escribir algún
libro, sin duda sería un aporte muy valioso.
-
8/18/2019 Php Profesional guia
5/43
PHP Profesional
Empresa Editora Macro 2
Jorge Guerra Guerra: Jorge es una persona que sabe mucho de programación, sus
aportes son bastante interesantes y precisos, sigo esperando su libro de Java.
Franciso Javier Wong Cabanillas: Aunque mi amigo Javier no se dedica al área de
las TI, su aporte esta en el área pedagógica, él es Doctor en Educación, y siempre
estamos conversando de como abordar estos temas, después de cada tertulia
terminamos renovados y con nuevos objetivos en este delicado campo de la
educación.
Un agradecimiento muy especial a mi familia por apoyarme en todo momento, su respaldo y
motivación fueron un pilar muy importante para poder concluir esta obra.
A usted amigo lector, espero me haga llegar sus comentarios y sugerencias a mi correo
electrónico [email protected], ya que todos ellos servirán para mejorar mis siguientes
publicaciones.
Finalmente, reiterando mi compromiso de seguir colaborando con el desarrollo de la
computación e informática con mis publicaciones.
Eric Gustavo Coronel Castillo
http://gcoronelc.blogspot.com
-
8/18/2019 Php Profesional guia
6/43
Agradecimiento
3 Empresa Editora Macro
-
8/18/2019 Php Profesional guia
7/43
Prólogo
Ser un desarrollador competente hoy en día, implica en primer lugar tener losconceptos claros sobre la Programación Orientada a Objetos (POO), ya que es labase de los lenguajes de programación.
Otro aspecto que sin duda cada día se convierte en un estándar de tododesarrollador es el conocimiento y correcta aplicación de los patrones de diseño, sibien éste libro no es precisamente de patrones, si se aplica en los ejemplos, sobretodo en los aplicación EurekaBank, donde usted encontrará como aplicar el patrónDAO y MVC.
PHP es uno de los lenguajes de programación más utilizado en el desarrollo deaplicaciones comerciales que tengan un requerimiento de funcionamiento de
24x7x365, y con la ventaja de poder implementarlas en cualquier plataforma.
En este contexto, es necesario contar con un texto que sirva de guía para crearSoluciones Empresariales aplicando POO, PHP Data Object, AJAX y patrones dediseño DAO y MVC.
Esta obra abarca estos temas de manera muy objetiva, donde el lector podrácomprender los conceptos ayudado mediante diagramas UML y luegoimplementados en PHP.
El libro esta organizado en 3 partes y 19 capítulos, en cada uno de los capítulos sedescriben y explican los conceptos del tema planteado y se ilustra con ejemplos muy
prácticos y de inmediata aplicación en un contexto real.
Parte 1: Fundamentos del Lenguaje
Capitulo 01: Introducción al Desarrollo de Software
En este capitulo se desarrolla una visión general sobre el desarrollo de software.
Capitulo 02: Software a Utilizar
En este capitulo usted conocerá de donde obtener el software utilizado para lacreación del libro.
Capitulo 03: Comenzando con PHP
En este capítulo se desarrolla los fundamentos de PHP.
Capitulo 04: Variables Externas
En este capitulo se desarrolla como trabajar con formularios.
-
8/18/2019 Php Profesional guia
8/43
PHP Profesional
Empresa Editora Macro 2
Capitulo 05: Estructuras de Control
Tema muy importante para controlar el flujo de los procesos.
Capitulo 06: Arreglos
Tema muy importante para el manejo de colecciones de datos, como por ejemplo,un conjunto de registros que provienen de una tabla.
Capitulo 07: Funciones Definidas por el Usuario
El uso de librerías de funciones permite la reutilización de código en diferentespartes de una solución.
Capitulo 08: Sesiones
El uso de sesiones permite comunicar datos de una pagina a otra y mantener
información del usuario que ha iniciado sesión.
Capitulo 09: PHP y MySQL
En este capitulo vemos como trabajar con MySQL desde PHP con la libreríasclasicas.
Parte 2: Programación Orientada a Objetos
Capitulo 10: Clases y Objetos
En este capítulo se desarrolla los primeros conceptos que el desarrollador debeconocer sobre la POO.
Capitulo 11: Constructores y Destruc tores
En este capitulo encontrará los conceptos de constructores y destructores, y sobretodo su aplicación práctica.
Capitulo 12: Relación Entre Clases
Tema fundamental para entender los diagramas UML.
Capitulo 13: Interfaces y Polimorfismo
La aplicación del polimorfismo permite tener soluciones muy simples y elegantes aproblemas complejos.
Capitulo 14: Excepciones
El manejo de errores con el uso de Excepciones resulta ser muy simple y efectivo.
-
8/18/2019 Php Profesional guia
9/43
Prologo
3 Empresa Editora Macro
Parte 3: PHP Data Object
Capitulo 15: PHP Data Object
Si queremos tener un estándar para acceder a cualquier fuente de datos debemosutilizar PHP Data Object.
Capitulo 16: PDO Consultas
Las consultas a la fuente de datos es la operación que más realiza los usuarios. Eneste capitulo aprenderá hacer consultas ejecutando directamente la sentenciaSELECT y utilizando procedimientos almacenados.
Capitulo 17: PDO Transacciones
Una transacción es una operación muy delicada, es por eso que debemos prestarmucha atención en su programación, veremos como programarlas desde PHP conPDO y con procedimientos almacenados.
Capitulo 18: AJAX
Sin duda alguna que actualmente no se puede pensar en una aplicación web sinaJAX.
Capitulo 18: Aplicación EurekaBank
Finalmente, para ver todo lo desarrollado en el libro tenemos una aplicacióndenominada EurekaBank.
Eric Gustavo Coronel CastilloLima – Perú, Mayo del 2010
-
8/18/2019 Php Profesional guia
10/43
Introducción
PHP es uno de los lenguajes de programación que más personas en el mundo loutilizan, tanto en el ambiente académico, como para el desarrollo de aplicacionesempresariales.
PHP es un Lenguaje Orientado a Objetos, entre sus principales característicaspodemos mencionar:
Multiplataforma, por que PHP corre sobre cualquier sistema operativo. Orientado a Objetos
A esto tenemos que agregarle una gran cantidad de librerías y recursos paradesarrollar todo tipo de aplicaciones, desde las más sencillas, como registrar un
registro en una base de datos, y las más avanzadas, como componentes WebServices, etc.
La madures que esta alcanzando PHP a lo largo del tiempo, lo hacen el lenguajepreferido por muchas empresas que realizan desarrollo serio, y en nuestro medioson cada vez más las empresas que lo utilizan.
Para hacer Desarrollo Empresarial se aplica PHP Data Object, POO, Patrones deDiseño y AJAX, todos estos temas son abordados en este libro desde un enfoquepráctico, con los conceptos muy precisos.
Continuando con mis libros en el tema de PHP este es una renovación de mi libro
Desarrollo de Aplicaciones con PHP y MySQL, en una siguiente publicaciónabordando el tema de Patrones de Diseño con mas profundidad y los Frameworksde de desarrollo como Drupal, Joomla, etc.
-
8/18/2019 Php Profesional guia
11/43
Indice
Parte I: Fundamentos de PHP
Capitulo 01: Introducción al Desarrollo de Software
1 Por que usar una Metodología de Software 2 Rational Unified Process (RUP) 3 Como Aplicar UML
3.1 Requerimientos 3.2
Diagramas UML
3.3
Diagrama Caso de Uso
3.4
Documentación de Caso de Uso
3.5
Diagrama de clases
3.5.1
Modelo de datos 3.5.2
Modelo de sistemas
3.6
Diagrama de Secuencia
3.7 Diagrama de Estado 3.8
Diagrama de Actividad
3.9
Diagrama de Componentes
3.10 Diagrama de Despliegue 4
Trabajando con Patrones de Diseño de Software
4.1
Singleton
4.1.1 Contexto 4.1.2 Problema 4.1.3
Solución
4.2
MVC (Model View Controller)
4.2.1 Contexto 4.2.2
Problema
4.2.3 Solución 4.3
DTO (Data Transfer Object)
4.3.1
Contexto
4.3.2 Problema 4.3.3
Solución
4.4
DAO (Data Access Object)
4.4.1 Contexto 4.4.2 Problema 4.4.3
Solución
Capitulo 02: Software a Utilizar
1 Sistema Operativo 2 Java JDK 3 NetBeans 4 WampServer
Capitulo 03: Comenzando con PHP
-
8/18/2019 Php Profesional guia
12/43
PHP Profesional
Empresa Editora Macro 2
1 Insertando Código PHP 1.1 Caso 1 1.2
Caso 2
1.3
Caso 3
1.4 Caso 4
2
Instrucciones Básicas 2.1
Separación de Instrucciones
2.2
Combinando PHP y HTML
2.3 Comentarios 2.4
Variables
3
Tipos de Datos
3.1 Enteros 3.2 Números de Punto Flotante 3.3
Cadenas
3.4 Averiguar el Tipo de una Variable 3.5 Valor Lógico (Boolean) 3.6
Forzado de tipos
4
Impresión en el Navegador 4.1 Instrucción: echo
4.2
Función: print()
4.3
Función: printf()
5 Constantes 6
Expresiones y Operadores
6.1 Operadores Aritméticos 6.2 Operadores de Asignación 6.3
Operadores de Comparación
6.4
Operador de Ejecución
6.5 Operadores de Incremento/Decremento 6.6
Operadores Lógicos
6.7
Operadores de Cadena 6.7.1 Operadores de Concatenación
6.7.2
Operador de Concatenación y Asignación
Capitulo 04: Variables Externas
1 Formularios HTML (GET y POST) 2 Directiva REGISTER_GLOBALS 3 Arreglos Globales HTTP
3.1
Arreglo $_POST
3.2 Arreglo $_GET 4
Programas Recursivos
5
Cookies HTTP
Capitulo 05: Estructuras de Control
1 Introducción 2 Estructuras Condicionales
2.1 Condicional Simple: if 2.2
Condicional Doble: if – else
2.3 Condicional Múltiple: if – elseif – else
-
8/18/2019 Php Profesional guia
13/43
Indice
3 Empresa Editora Macro
2.4 Selectiva Múltiple: switch 3 Estructuras Repetitivas
3.1 Bucle: while 3.2
Bucle: do – while
3.3
Bucle: for
3.4 Bucle: foreach
3.5
Instrucciones: break y continue
Capitulo 06: Arreglos
1
¿Qué es un Arreglo?
2
Arreglos Unidimensionales
3 Arreglos Multidimensionales 4 Arreglos Asociativos
Capitulo 07: Funciones Definidas por el Usuario
1
Creación de Funciones
2
Parámetros de las funciones
2.1 Parámetros por Valor 2.2
Pasar Parámetros por Referencia
2.3 Parámetros por defecto 2.4 Número Variable de Parámetros
3
Devolviendo valores
4 Incluir Archivos 4.1 Funciones: require() e include() 4.2 Funciones: require_once() e include_once()
5
Uso de Librerías
Capitulo 08: Sesiones
1
¿Qué son las sesiones?
2 Manejo de Sesiones 2.1
Función: sesión_start()
2.2 Función: session_id() 2.3
Arreglo: $_SESSION
2.4
Función: session_unset()
2.5 Función: session_destroy() 3 Ejemplo Aplicativo
Capitulo 09: PHP y MySQL
1
Modelo de Datos a Utilizar
1.1
Modelo Físico
1.2
Creación de la Base de Datos
1.3
Creación de la Tabla: cargo
1.4 Creación de la Tabla: ubicacion 1.5
Creación de la Tabla: departamento
1.6
Creación de la Tabla: empleado
1.7 Creación de la Tabla: control 1.8 Cargar datos a la tabla: cargo
-
8/18/2019 Php Profesional guia
14/43
PHP Profesional
Empresa Editora Macro 4
1.9 Cargar datos a la tabla: ubicacion 1.10
Cargar datos a la tabla: departamento
1.11
Cargar datos a la tabla: empleado
1.12 Cargar datos a la tabla: control 2 Acceso a la Base de Datos
2.1 Función: mysql_connect()
2.2
Función: mysql_close() 2.3
Función: mysql_select_db()
3 Archivos de Trabajo 3.1 Hoja de Estilos 3.2
Librería de Funciones
4
Manejo de Resultados
4.1 Función: mysql_query() 4.2 Función: mysql_num_rows() 4.3
Función: mysql_result()
4.4 Función: mysql_fetch_row() 4.5 Función: mysql_data_seek() 4.6
Función: mysql_fetch_assoc()
5
Paginación 6 Manejo de Transacciones
6.1
Control de Errores
6.1.1 Función: mysql_errno() 6.1.2
Función: mysql_error()
6.2
Transacciones
6.2.1 Iniciar una Transacción 6.2.2 Confirmar Transacción 6.2.3
Cancelar Transacción
Parte II: Programación Orientada a Objetos
Capitulo 10: Clases, Campos y Métodos
1 Definición de una Clase 1.1
Definición de una Clase
1.2 Representación UML de una Clase 1.3
Creación de Objetos
1.4
Asignación de Objetos
2 Trabajando con Campos 2.1
Definición
2.2
Ocultando los Datos
3 Trabajando con Métodos 3.1
Definición
4
Proyectos Resueltos 4.1
Encontrar el Interés Compuesto
4.1.1
Requerimientos del Software
4.1.2
Abstracción
4.1.3
Diagrama de Secuencia
4.1.4
Diagrama de Clases
4.1.5
Estructura del Proyecto en NetBeans
4.1.6 Codificación de Clase Banco 4.1.7 Codificación de la Interfaz de Usuario IUBanco
-
8/18/2019 Php Profesional guia
15/43
Indice
5 Empresa Editora Macro
4.1.8 Codificación del Programa de Inicio 4.1.9
Ejecución del Proyecto
4.2
Los Genios
4.2.1 Requerimientos del Software 4.2.2 Abstracción 4.2.3
Diagrama de clases
4.2.4
Estructura del Proyecto en NetBeans 4.2.5 Codificación de la Clase Genio
4.2.6
Codificación de la Interfaz de Usuario IUGenio
4.2.7 Ejecución del Proyecto 5
Proyectos Propuestos
5.1
Encontrar el Promedio de un Alumno
5.2 Encontrar el Importe de una Venta
Capitulo 11: Constructores y Destruc tores
1
Constructores
1.1
Definición e Implementación
1.2
Sobrecarga del Constructor 2 Destructores
3
Alcance de Instancia y Alcance de Clase
3.1
Introducción
3.1.1 Alcance de Instancia 3.1.2 Alcance de Clase
3.2
Implementación
3.3 Acceso a los Miembros Declarados en una Clase 3.3.1
Alcance de Instancia
3.3.2 Alcance de Clase 4 Constantes de Clase 5
Proyectos Resueltos
5.1
Cuatro Operaciones 5.1.1 Requerimiento de Software
5.1.2
Abstracción
5.1.3
Diagrama de Clases
5.1.4 Estructura del Proyecto en NetBeans 5.1.5 Codificación de la clase Matematica 5.1.6
Codificación de la Interfaz de Usuario IUMatematica
5.1.7 Ejecución del Proyecto 6 Proyectos Propuestos
6.1
Librería de Matemáticas
6.2
Tipo de Cambio
Capitulo 12: Relación entre Clases
1 Introducción 2 Dependencia 3 Generalización
3.1 Definición 3.2
Sobre-Escritura
3.3
Clase Abstracta y Clase Concreta
3.4 Polimorfismo
-
8/18/2019 Php Profesional guia
16/43
PHP Profesional
Empresa Editora Macro 6
3.5 Clases y Métodos Finales 3.6
Resumen
4
Asociación
4.1
Asociación Binaria
4.1.1
Nombre de la asociación (association name)
4.1.2 Nombre de rol (rolename)
4.1.3
Multiplicidad (multiplicity) 4.1.4
Ordenación (ordering)
4.1.5 Modificabilidad (change ability) 4.1.6 Navegabilidad (navigability) 4.1.7
Visibilidad (visibility)
4.2
Agregación y Composición
4.3 Asociación n-aria 5
Proyectos Resueltos
5.1
El Buen Sabor
5.1.1 Requerimiento de Software 5.1.2 Abstracción 5.1.3
Diagrama de Clases
5.1.4
Estructura del Proyecto en NetBeans 5.1.5 Codificación
5.1.6
Ejecución del Proyecto
5.2
Electronica Store
5.2.1 Requerimiento de Software 5.2.2
Abstracción
5.2.3
Estructura del Proyecto en NetBeans
5.2.4 Codificación 5.2.5 Ejecución del Proyecto
Capitulo 13: Interfaces y Polimorfismo
1
¿Qué es una Interfaz?
2 Uso de Interfaces 2.1
Definición de una Interfaz
2.2
Implementación de una Interfaz
2.3 Constantes e Interfaces 2.4
Las Interfaces se Pueden Extender
3 Polimorfismo 3.1 Definición 3.2
Implementación Mediante Herencia
3.3
Implementación Mediante Interfaces
4 Proyecto: Perú Training 4.1
Requerimiento de Software
4.2
Abstracción
4.3
Estructura del Proyecto en NetBeans
4.4
Codificación
4.5
Ejecución del Proyecto
Capitulo 14: Excepciones
1 Tipos de Errores 1.1 Errores de Sintaxis
-
8/18/2019 Php Profesional guia
17/43
Indice
7 Empresa Editora Macro
1.2 Errores de Lógica 1.3
Errores de Ejecución
2
¿Qué es una Excepción?
3 Gestión de Excepciones 3.1
Palabras Claves
3.2 Esquema General
3.3
Generar Excepciones 3.4
Propagación de Excepciones
4 Creación de un Log de Errores 5 Proyecto Ejemplo
5.1 Requerimiento de Software 5.2
Abstracción
5.3 Estructura del Proyecto en NetBeans 5.4 Codificación
5.4.1
Capa: View
5.4.2
Capa: Controller
5.4.3 Capa: Model 5.4.4
Capa: DAO
5.5
Ejecución del Proyecto 5.5.1 Proceso de Logueo
5.5.2
Interfaz de Usuario Principal
5.5.3
Consultar el Estado de una Cuenta
5.5.4 Consultar Movimiento de una Cuenta
Parte III: PHP Data Object
Capitulo 15: PHP Data Object
1 Introducción 2 Instalación y Configuración
3
Clases de la Extensión PDO 3.1 La Clase PDO
3.1.1
Estructura de la Clase
3.1.2
Métodos
3.2 La Clase PDOStatement 3.2.1 Estructura de la Clase 3.2.2
Métodos
3.3 La Clase PDOException 3.3.1
Estructura de la Clase
4 Conexión con la Base de Datos 4.1
Conexión
4.2
Estableciendo Atributos de la Conexión
4.2.1
Atributos PDO
4.2.2
Atributos de la Base de Datos
Capitulo 16: PDO consultas
1 Consultas Sin Parámetros 1.1
Ejecución Directa
1.2 Ejecución con Procedimiento Almacenado 2 Consultas con Parámetros
-
8/18/2019 Php Profesional guia
18/43
PHP Profesional
Empresa Editora Macro 8
2.1 Sentencias Preparadas 2.2
Procedimientos Almacenados
Capitulo 17: PDO Transacciones
1
Definiciones
1.1
Transacción 1.2
Propiedades de una Transacción
1.3 Control de Transacciones 1.3.1 Transacciones Controladas Desde el Cliente 1.3.2
Transacciones de Base de Datos.
1.3.3
Transacciones Distribuidas
2 Transacciones Controladas Desde el Cliente 3
Transacciones de Base de Datos
Capitulo 18: AJAX
1
Introducción
2
¿Qué es AJAX? 3
El Objeto XMLHttpRequest
4
Propiedades del Objeto XMLHTTPRequest
5 Métodos del Objeto XMLHTTPRequest 6 Ejemplos
6.1
Ejemplo 01
6.2
Ejemplo 02
6.3 Ejemplo 03 6.4 Ejemplo 04 6.5
Ejemplo 05
7 Conclusiones
Capitulo 19: Aplicación EurekaBank
1
Caso a Desarrollar
2 Estructura de la Aplicación 3 AJAX 4 Clases de Propósito General
4.1
Clase: Util
4.2 Clase: Session 5 Acceso a la Base de Datos 6 Acceso al Sistema 7 Programación de Procesos
7.1
Procedimientos Almacenados
7.2
La Capa DAO
7.3
La Capa Model
7.4 El Controlador 7.5
La Vista
7.5.1 Apertura de Cuenta 7.5.2 Depósito 7.5.3
Retiro
7.5.4
Transferencia
7.5.5 Consulta 7.5.6
Programa: showRpta.php
-
8/18/2019 Php Profesional guia
19/43
Indice
9 Empresa Editora Macro
Apendice 01: Especi ficaciones del Proyecto EurekaBank
1 Requerimiento de Software 2
Estándares Utilizados
2.1
Nombre de las Tablas
2.2
Nombre de las Columnas 2.3 Nombre de las Restricciones
2.3.1
Primary Key
2.3.2 Foreign Key 2.3.3
Check
2.3.4 Unique 2.4 Nombres de Índices
3
Diseño de la Base de Datos
3.1
8.3.1. Tablas Generales
3.1.1 Tabla: Moneda 3.1.2 Tabla: CargoMantenimiento 3.1.3
Tabla: CargoMovimiento
3.1.4
Tabla: InteresMensual
3.1.5 TipoMovimiento 3.1.6
Tabla: Contador
3.1.7 Tabla: Parámetro 3.2 Sucursales
3.2.1
Tabla: Sucursal
3.2.2
Tabla: Empleado
3.2.3 Tabla: Asignado 3.3
Cuentas
3.3.1
Tabla: Cliente
3.3.2
Tabla: Cuenta
3.3.3
Tabla: Movimiento
3.4
Esquema Completo
4 Creación de la Base de Datos
-
8/18/2019 Php Profesional guia
20/43
En est
clase,
donde
Los pu
1 D
2 Tr
3 Tr
4 P
5 P
capítulo d
tributo y o
e conoce
tos a trata
finición de
abajando c
abajando c
oyectos R
oyectos Pr
esarrollo l
eración u
omo clase,
son:
una Clase
on Campo
on Método
sueltos
opuestos
s primero
ando nota
campo y
lase
concepto
ión UML; l
étodo.
, Ca
de la PO
uego su i
pos
. Veremo
plementac
Mét
los conc
ión utilizan
dos
ptos de
o PHP,
-
8/18/2019 Php Profesional guia
21/43
PHP Profesional
Empresa Editora Macro 2
1 Definición de una Clase
1.1 Defin ición de una Clase
Una clase define un tipo de objeto en particular.
Por ejemplo, en un sistema de ventas la clase Factura define a todas las facturas que la
empresa emite.
Su sintaxis es:
[ModificadorClase] class NombreClase {
// Campos
// Métodos
}
El ModificadorClase puede tomar los valores que se resumen en el siguiente cuadro:
Palabra Clave Descripción
abstract Define una clase como abstracta, quiere decir que no se podrán
crear instancias de la clase defina como abstracta.
final Si una clase se define como final, entonces la clase no podrá serextendida, quiere decir que no se podrán crear subclases desde
una clase final.
Ejemplo 1
class Factura {
// Campos
private $numero;private $importe;
// Métodos
public function grabar( . . . ) {
. . .
. . .
-
8/18/2019 Php Profesional guia
22/43
3
}
} // Fa
1.2
Para t
Langua
Figura
1.3
El oper
asigne
Para uti
Sintaxi
priv
$no
En la p
segund
Sintaxi
priv
En este
instrucc
tura
epresen
ner una r
ge), tal co
1 Repre
reación
dor new
emoria p
lizar el ope
s 1
te $nomb
breDeVar
rimera inst
a instrucci
s 2
te $nomb
caso tant
ión.
tación
epresentac
o se ilustr
entación U
de Obje
e utiliza p
ra el objet
rador new
eDeVariab
iable = ne
ucción se
n.
eDeVariab
la creació
ML de u
ión gráfica
en la Figu
ML de una
tos
ra crear un
.
tenemos d
le;
Nombre
define la v
le = new N
de la vari
C
na Clas
de una
ra 1.
clase.
objeto de
os sintaxis.
eClase();
riable que
ombreDeC
ble y la cr
pítulo 10:
Em
lase se u
un tipo de
apuntará
lase();
ación del
Clases, C
presa Edit
tiliza UML
clase espe
un objet
bjeto se r
ampos y
ora Macro
(Unified
ífica, es d
que se cr
alizan en l
étodos
odeling
cir, que
ea en la
misma
-
8/18/2019 Php Profesional guia
23/43
PHP P
Empre
Figura
1.4
Cuand
cuando
memori
Figura
rofesional
a Editora
2 Instan
signaci
creamos
asignamo
a donde es
3 Asigna
Macro
iación de u
ón de O
n objeto in
objetos,
tán definid
ción de obj
na clase (
bjetos
ternament
lo que real
s los objet
etos.
reación de
existe un
mente est
os, como s
un objeto).
puntero al
mos asig
e explica e
que no ten
ando son
la Figura
4
emos acce
las direcci
3.
so, pero
ones de
-
8/18/2019 Php Profesional guia
24/43
Capítulo 10: Clases, Campos y Métodos
5 Empresa Editora Macro
2 Trabajando con Campos
2.1 Definición
Los campos definen los datos de un objeto; cuando definimos un campo debemos declararlo
y establecer su visibilidad.
La visibilidad determina desde que parte del código se puede acceder al campo.
Sintaxis:
[TipoAcceso] [ModificadorCampo] $nombreCampo [= ValorInicial];
El TipoAcceso puede tomar los valores que se resume en el siguiente cuadro:
Palabra Clave Descripción UML
public Indica que el campo es de acceso público. El acceso se
realiza a través de una instancia del objeto.
+
protected Indica que solo se puede acceder al campo desde métodos
de la misma clase y clases derivadas (subclases)
#
private Indica que solo se puede acceder al campo desde métodos
de la misma clase.
-
El ModificadorCampo puede tomar los valores que se resumen en el siguiente cuadro:
Palabra Clave Descripción
static El campo pertenece a la clase, no a los objetos creados a partir de
ella.
El ValorInicial permite inicializar la variable con un valor.
De acuerdo a la forma en que se especifica un atributo, objetos de otras clases tienendistintas posibilidades de accederlos, tal como se resume en el siguiente cuadro:
Acceso Desde pr ivate protected publ ic
La propia c lase Si Si Si
Subclase No Si Si
-
8/18/2019 Php Profesional guia
25/43
PHP Profesional
Empresa Editora Macro 6
2.2 Ocultando los Datos
Uno de los fundamentos de la programación orientada a objetos es que el usuario solo debe
tener acceso a los datos que le son de su interés, y del modo que le corresponde, por
ejemplo sólo lectura, sólo escritura, ó ambos.
Para conseguir esto se debe declarar los atributos como privados, y se debe implementar
métodos para acceder a ellos. Existe un estándar para definir estos métodos, por ejemplo, si
el campo es $nombre los métodos son:
- setNombre() Este método permite asignar un valor al campo.
- getNombre() Este método permite leer el valor del campo.
Como puede apreciar existen dos prefijos, el prefijo set que se utiliza para asignar un valor
al campo y el prefijo get para leer el valor del campo; de esta manera podemos seleccionarsi se implementa el método set , get , ó ambos, y restringir el nivel de acceso a los datos.
Otra posibilidad que nos da la implementación de estos métodos es de poder agregar
funcionalidad que puede servir para verificar, por ejemplo, si el dato que se está signando es
correcto ó no.
Ejemplo 2
En este ejemplo se ilustra el uso de los métodos set y get .
Arch ivo: C:\PHP100\cap10\Factura.php
-
8/18/2019 Php Profesional guia
26/43
Capítulo 10: Clases, Campos y Métodos
7 Empresa Editora Macro
Como puede apreciar en el código, el método setNumero() se utiliza para asignar un valor
al campo $numero, mientras que el método getNumero() se utiliza para leer su valor.
Es posible agregar lógica en cualquiera de los dos métodos, o en ambos si el caso lo
amerita.
-
8/18/2019 Php Profesional guia
27/43
PHP Profesional
Empresa Editora Macro 8
3 Trabajando con Métodos
3.1 Definición
Los métodos definen el comportamiento de un objeto de una clase concreta y tienen las
siguientes características:
- Agrupan las responsabilidades del objeto (competencias).
- Describen sus acciones.
Las acciones realizadas por un objeto son consecuencia directa de un estímulo externo (un
mensaje enviado desde otro objeto) y dependen del estado del objeto.
El estado y comportamiento de un objeto están relacionados. Por ejemplo, un avión no
puede aterrizar (acción) sino está en vuelo (estado).
Sintaxis:
[TipoAcceso] [ModificadorMétodo]
function NombreMétodo ( [ ListaDeParámetros ] ) {
// Cuerpo de método
[ return expresión; ]
}
El TipoAcceso puede tomar los valores que se resumen en el siguiente cuadro:
Palabra Clave Descripción UML
public Indica que el método es de acceso público. El acceso se
realiza a través de una instancia del objeto.
+
protected Indica que solo se puede acceder al método desde
métodos de la misma clase y clases derivadas (subclases)
#
private Indica que solo se puede acceder al método desde
métodos de la misma clase.
-
sin especificar Por defecto se asume que el nivel de acceso es público.
El ModificadorMétodo puede tomar los valores que se resumen en el siguiente cuadro:
-
8/18/2019 Php Profesional guia
28/43
Capítulo 10: Clases, Campos y Métodos
9 Empresa Editora Macro
Palabra Clave Descripción
static El método pertenece a la clase, no a los objetos creados a partir
de ella.
final El método es definido como método definitivo, esto quiere decir
que no se puede redefinir en una subclase.
abstract Determina que el método no se implementa en la clase, su
implementación será en las clases heredadas o subclases.
Los parámetros son opcionales, pero si son necesarios se deben especificar siguiendo las
reglas estudiadas para los parámetros de las funciones de usuario.
Sólo para el caso en que el parámetro sea un objeto se debe especificar el tipo de objeto
(Clase), esto se conoce como Type Hinting, se utiliza la siguiente sintaxis:
nombreMétodo( NombreClase $parámetro, ... )
Los parámetros son variables que reciben valores de los argumentos que se le pasan al
método cuando éste es invocado.
Los métodos que necesitan retornan un valor a la instrucción que realiza la llamada deben
utilizar la instrucción return ; a continuación tenemos su sintaxis:
return expresión;
Donde expresión representa el valor que retorna el método.
-
8/18/2019 Php Profesional guia
29/43
PHP P
Empre
4 Pr
4.1 E
4.1.1
Una ins
deben
compu
La fórm
Donde:
C
i
n
M
4.1.2
A conti
Caso 0
En este
tanto s
clase u
El méto
los cam
Caso 0
En est
recibe l
rofesional
a Editora
oyecto
ncontra
Requeri
titución fin
agar sus
sto, capital
ula que de
: Ca
: Tas
: Nú
: Imp
bstracc
uación ten
1
caso los a
puede ac
objeto.
do calcula
pos capital
2
caso ten
s datos p
Macro
s Resu
r el Inter
ientos d
nciera ne
lientes por
lizable men
e aplicars
ital
a de interé
ero de pe
orte acumu
ión
emos algu
tributos so
eder de m
rImporte()
, interés y
mos un s
ra hacer el
ltos
és Com
el Softw
esita de u
los présta
sualmente.
es:
M
por perio
iodos
lado en el
as alternat
públicos (
nera direc
hace el cál
eriodo.
lo método
cálculo y r
uesto
re
programa
os que re
C 1( +=
o, por eje
úmero de
ivas de ab
isibilidad
a desde c
culo en fun
que tiene
torna el re
que le pe
aliza, se s
ni)
plo puede
periodos
traer el pr
ublica) por
alquier otr
ción al valo
tres pará
sultado cor
mita enco
be que se
ser mensu
blema.
lo
r de
etros, a tr
respondien
10
trar el imp
trata de u
al
vés de lo
te.
orte que
interés
cuales
-
8/18/2019 Php Profesional guia
30/43
11
Caso 0
En este
accede
Para o
getImp
campo
4.1.3
4.1.4
En este
represe
3
caso, los
a ellos a tr
tener el im
orte(), el c
respectiv
Diagram
Diagram
caso tene
ntamos de
tributos so
avés de los
porte se de
lculo se re
mente.
de Sec
de Clas
mos un pro
la siguient
n privados
métodos s
be utilizar
aliza en ba
encia
es
grama PH
manera:
C
se
et y get .
l método
e a los
que hará
pítulo 10:
Em
uso de la
Clases, C
presa Edit
lase Banc
ampos y
ora Macro
, y gráfica
étodos
ente lo
-
8/18/2019 Php Profesional guia
31/43
PHP P
Empre
4.1.5
Como s
tenemo
hoja de
clase B
IUBanc
En la ra
index.p
proyect
redirec
4.1.6
Arch iv
-
8/18/2019 Php Profesional guia
32/43
Capítulo 10: Clases, Campos y Métodos
13 Empresa Editora Macro
public function setCapital($capital) {
$this->capital = $capital;
}
public function getInteres() {
return $this->interes;
}
public function setInteres($interes) {
$this->interes = $interes;
}
public function getPeriodos() {
return $this->periodos;
}
public function setPeriodos($periodos) {
$this->periodos = $periodos;
}
public function getImporte(){
$importe = $this->getCapital() *
pow(1 + $this->getInteres(), $this->getPeriodos());
return round($importe,2);
}
}
?>
4.1.7 Codificación de la Interfaz de Usuario IUBanco
Arch ivo: C:\PHP100\cap10\banco\v iew\IUBanco.php
-
8/18/2019 Php Profesional guia
33/43
PHP Profesional
Empresa Editora Macro 14
Cálculo Interés Compuesto
Datos
Capital Inicial
Interés Mensual
Cantidad de Meses
Resultado
Capital Inicial
Interés Mensual
Cantidad de Meses
-
8/18/2019 Php Profesional guia
34/43
15
dy>
>
Codifica
: C:\PHP1
header("lo
Ejecució
ejecutam
e ingresar
o:
>Importe
>
-
8/18/2019 Php Profesional guia
35/43
PHP P
Empre
4.2 L
4.2.1
El cole
alumno
aprendi
El cole
primero
felicitar
4.2.2
La soludescrib
ge
ge
pro
4.2.3
En est
carpeta
de la si
rofesional
a Editora
os Geni
Requeri
io "Los G
; está utili
zaje.
io requier
s grados a
al alumno
bstracc
ción plantn a contin
Méto
erarNume
eraOpera
cesar()
Diagram
caso tene
view, est
uiente ma
Macro
s
ientos d
nios" est
ando prog
en estos
rendan la
uando ing
ión
ada consiuación:
do
ro()
or()
de clas
mos un pr
programa
nera:
el Softw
haciendo
ramas de c
momentos
cuatro op
ese la res
dera una
Genera
Genera
Proces
s
grama PH
hará uso
re
una reform
omputador
un progra
raciones e
uesta corr
lase de n
un número
en forma a
los datos
P de nom
e la clase
a en los pr
a para que
a en PHP
n forma de
cta.
mbre Gen
Descrip
en forma
leatoria un
retorna el
re IUGeni
Genio, y g
ocesos de
los mismo
para que
adivinanz
io con tre
ción
leatoria en
operador.
resultado
.php que
ráficament
16
aprendizaj
alumnos
us alumno
, el progra
s métodos
tre 1 y 20.
n un arreg
se encuen
lo repres
de sus
irijan su
s de los
a debe
que se
lo.
ra en la
ntamos
-
8/18/2019 Php Profesional guia
36/43
17
4.2.4
Como
tenemo
de estil
y en la
En la r
éste es
caso
IUGeni
4.2.5
Arch iv
-
8/18/2019 Php Profesional guia
37/43
PHP Profesional
Empresa Editora Macro 18
switch ($num) {
case 1:
$ope = "+";
break;
case 2:
$ope = "-";
break;case 3:
$ope = "*";
break;
case 4:
$ope = "/";
break;
}
return $ope;
}
public function procesar( $num1, $num2, $ope, $rptaUsua){
switch ($ope) {
case "+":
$rptaSist = $num1 + $num2;
break;
case "-":
$rptaSist = $num1 - $num2;
break;
case "*":
$rptaSist = $num1 * $num2;
break;
case "/":
$rptaSist = $num1 / $num2;
break;
}
if( $rptaSist == $rptaUsua ){
$msg = "Felicitaciones, respuesta correcta.";
}else{
$msg = "Respuesta incorrecta.";
}
$lista[] = array("Número 1",$num1);
$lista[] = array("Número 2",$num2);
$lista[] = array("Operador",$ope);
$lista[] = array("Rpta. Sistema",$rptaSist);
$lista[] = array("Rpta. Usuario",$rptaUsua);
$lista[] = array("Mensaje",$msg);
return $lista;}
}
?>
-
8/18/2019 Php Profesional guia
38/43
Capítulo 10: Clases, Campos y Métodos
19 Empresa Editora Macro
4.2.6 Codificación de la Interfaz de Usuario IUGenio
Arch ivo: C:\PHP100\cap10\LosGenios\view\IUGenio.php
Untitled Document
function boton_generar(){
document.location.href = "IUGenio.php?proceso=formulario";
}
-
8/18/2019 Php Profesional guia
39/43
PHP Profesional
Empresa Editora Macro 20
LOS GENIOS
-
8/18/2019 Php Profesional guia
40/43
21
<
<
dy>
>
Ejecució
ejecutam
r clic en el
se ilustra
nueva inte
Generar un
Ingresar la
botón Proc
} ?>
n del Pro
s el proyec
botón Gen
a continua
rfaz el usu
a nueva o
respuesta
esar .
yecto
to inicialm
erar Oper
ión:
rio tiene d
eración.
de la ope
C
nte tenem
ción obte
s alternati
ración pla
pítulo 10:
Em
s la siguie
emos una
as:
teada y la
Clases, C
presa Edit
te interfaz
operación
procesa
ampos y
ora Macro
:
en forma a
aciendo cl
étodos
leatoria,
ic en el
-
8/18/2019 Php Profesional guia
41/43
PHP P
Empre
Supong
El men
del usu
rofesional
a Editora
amos que
aje depen
rio, para e
Macro
eligió la se
de del res
ste caso n
unda opci
ltado de c
son igual
n, el result
omparar la
s por lo ta
ado se mu
respuesta
to el mens
stra de la
del sistem
aje refleja t
22
iguiente m
a con la r
al situación
anera:
spuesta
.
-
8/18/2019 Php Profesional guia
42/43
Capítulo 10: Clases, Campos y Métodos
23 Empresa Editora Macro
5 Proyectos Propuestos
5.1 Encontrar el Promedio de un Alumno
El administrador de cursos de la institución educativa EduTech necesita un programa para
calcular el promedio de un alumno, se debe tomar en cuenta lo siguiente:
3. Son cuatro notas de práctica, de donde se obtiene un promedio de prácticas (PP), se
promedian las tres mejores notas.
4. Se tiene también un examen parcial (EP) y un examen final (EF).
5. El promedio final (PF) se obtiene aplicando la siguiente fórmula:
40.0*30.0*30.0* EF EPPPPF ++=
Se pide plantear la solución e implementarla aplicando los conceptos de POO.
5.2 Encontrar el Importe de una Venta
El dueño de una tienda necesita un programa para encontrar el importe de una venta, se
debe tomar en cuenta lo siguiente:
6. El precio de venta ya incluye el IGV.
7. Cada venta es un solo tipo de artículo.
8. El cliente puede comprar varias unidades del artículo.
9. En función a la cantidad de unidades que el cliente está comprando, el vendedor
puede hacerle un descuento sobre el precio de venta que resulta de una negociación
en el acto de la venta con el cliente, este descuento en ningún caso puede ser
superior al 10% del precio de venta.
Se pide plantear la solución e implementarla aplicando los conceptos de POO.
-
8/18/2019 Php Profesional guia
43/43
PHP Profesional
Página en Blanco