Download - Php Profesional guia

Transcript
Page 1: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 1/43

Page 2: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 2/43

Dedicatoria

Esta obra la dedico de manera especial a mi hija Sofía Fernanda.

Page 3: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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.

Page 4: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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.

Page 5: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

 [email protected]

http://gcoronelc.blogspot.com

Page 6: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 6/43

 Agradecimiento

3 Empresa Editora Macro 

Page 7: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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 la

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

Page 8: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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.

Page 9: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

Page 10: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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.

Page 11: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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 

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

Page 12: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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 

Instrucciones Básicas 2.1

 

Separación de Instrucciones 

2.2 

Combinando PHP y HTML 

2.3  Comentarios 

2.4 

Variables 

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 

Impresión en el Navegador  4.1  Instrucción: echo 

4.2 

Función: print() 

4.3 

Función: printf() 

5  Constantes 

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 

Programas Recursivos 

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 

Page 13: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

¿Qué es un Arreglo? 

Arreglos Unidimensionales 

3  Arreglos Multidimensionales 

4  Arreglos Asociativos 

Capitulo 07: Funciones Definidas por el Usuario

Creación de Funciones 

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 

Devolviendo valores 

4  Incluir Archivos 

4.1  Funciones: require() e include() 

4.2  Funciones: require_once() e include_once() 

Uso de Librerías 

Capitulo 08: Sesiones

¿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

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 

Page 14: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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 

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() 

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 

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 

Page 15: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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 

Proyectos Propuestos 

5.1 

Encontrar el Promedio de un Alumno 

5.2  Encontrar el Importe de una Venta 

Capitulo 11: Constructores y Destruc tores

Constructores 

1.1 

Definición e Implementación 

1.2 

Sobrecarga del Constructor  2  Destructores 

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 

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 

Page 16: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 16/43

PHP Profesional

Empresa Editora Macro  6

3.5  Clases y Métodos Finales 

3.6 

Resumen 

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 

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

¿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 

Page 17: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 17/43

Indice

7 Empresa Editora Macro 

1.2  Errores de Lógica 

1.3 

Errores de Ejecución 

¿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 

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 

Page 18: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 18/43

PHP Profesional

Empresa Editora Macro  8

2.1  Sentencias Preparadas 

2.2 

Procedimientos Almacenados 

Capitulo 17: PDO Transacciones

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 

Transacciones de Base de Datos 

Capitulo 18: AJAX

Introducción 

¿Qué es AJAX? 3

 

El Objeto XMLHttpRequest 

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

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 

Page 19: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 19/43

Indice

9 Empresa Editora Macro 

 Apendice 01: Especi ficaciones del Proyecto EurekaBank

1  Requerimiento de Software 

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 

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 

Page 20: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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,

Page 21: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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( . . . ) {

. . .

. . .

Page 22: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

Page 23: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

Page 24: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

Page 25: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

<?php

class Factura {

 // Campos

private $numero;

 // Métodos set y get

public function getNumero() {return $this->numero;

}

public function setNumero($numero) {

$this->numero = $numero;

}

}

?>

Page 26: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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.

Page 27: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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:

Page 28: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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.

Page 29: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

Page 30: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

Page 31: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

 

<?php

class B

 

 // C

 

priv

  priv  priv

 

 // M

 

publ

  re

  }

rofesional

a Editora

Estructu

e puede a

s tres carp

estilos, en

anco, y en

o.php.

íz del proy

hp , éste e

o, y en est

ionamient

Codifica

: C:\PHP1

nco {

mpos

te $capital

te $interete $period

todos

ic function

turn $this

Macro 

a del Pr 

reciar en e

tas, en la

la carpeta

la carpeta

cto tenem

 el que ini

 caso es h

 al progra

ión de C

00\cap10\

l = 0.0;

= 0.0;os = 0.0;

getCapital

>capital;

yecto e

l grafico de

arpeta css

model ubic

iew  el pro

s el progr 

ia la ejecu

acer un

a IUBanc

lase Ban

anco\mod

) {

NetBea

 la derech

 tenemos l

amos la

grama

ma

ión del

.php.

co

el\Banco.

s

,

a

hp

12

Page 32: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

<?php

require_once '../model/Banco.php';

$formulario = TRUE;

if( isset( $_POST["procesar"] ) ) {

$formulario = FALSE;

$banco = new Banco();

$banco->setCapital($_POST["capital"]);

$banco->setInteres($_POST["interes"]);$banco->setPeriodos($_POST["meses"]);

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

Page 33: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 33/43

PHP Profesional

Empresa Editora Macro  14

<link rel="stylesheet" type="text/css" href="../css/perudev.css"/>

<title></title>

</head>

<body>

<h1>Cálculo Interés Compuesto</h1>

<?php if( $formulario) { ?>

<div id="datos"><h2>Datos</h2>

<form name="form1" method="post" action="IUBanco.php">

<table width="286">

<tr>

<td width="129">Capital Inicial</td>

<td width="145">

<input name="capital" type="text" class="fieldEdit"

id="capital" size="10" maxlength="10">

</td>

</tr>

<tr>

<td>Interés Mensual</td>

<td>

<input name="interes" type="text" class="fieldEdit"

id="interes" size="10" maxlength="5">

</td>

</tr>

<tr>

<td>Cantidad de Meses</td>

<td>

<input name="meses" type="text" class="fieldEdit"

id="meses" size="10" maxlength="5">

</td>

</tr>

</table>

<input name="procesar" type="submit" class="button"

id="procesar" value="Procesar">

</form>

</div>

<?php } else { ?>

<div id="resultado">

<h2>Resultado</h2>

<table width="300">

<tr>

<td width="136">Capital Inicial</td>

<td width="152"><?php echo($banco->getCapital()) ?></td>

</tr><tr>

<td>Interés Mensual</td>

<td><?php echo($banco->getInteres()) ?></td>

</tr>

<tr>

<td>Cantidad de Meses</td>

<td><?php echo($banco->getPeriodos()) ?></td>

</tr>

Page 34: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 34/43

 

15

<  <

  </b

</html

 

4.1.8

 Arch iv

 

<?php

4.1.9

Cuand

Luego

resulta

  <tr>

<td

  <td

  </tr>

</table>

<p><a h

 /div>?php } ?>

dy>

>

Codifica

: C:\PHP1

header("lo

Ejecució

 ejecutam

e ingresar

o:

>Importe

><?php ec

 

ref="IUBa

ión del

00\cap10\

ation: vie

n del Pro

s el proyec

datos de p

otal</td>

ho($banco

co.php">

rogram

anco\inde

 /IUBanco.

yecto

to tenemo

rueba y ha

C

 

->getImpo

tro Cálcul

 de Inici

x.php

php") ?>

la siguient

er clic en

pítulo 10:

Em

rte()) ?><

</a></p

 

e interfaz:

l botón Pr 

Clases, C

presa Edit

 /td>

cesar  obt

ampos y

ora Macro

 

nemos el

étodos

iguiente

Page 35: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

Page 36: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

 

<?php

class G 

publ

  $

  re

  }

publ

  $

Estructu

e puede

s tres carp

s, en la c

arpeta vie

íz del pro

 el que ini

s hacer

.php.

Codifica

: C:\PHP1

enio {

ic function

um = ran

turn $num

ic function

um = ran

a del Pr 

apreciar e

tas, en la

rpeta mod

w el progr 

ecto tene

ia la ejecu

un redire

ión de l

00\cap10\

generarNu

(1, 20);

;

generarOp

(1,4);

yecto e

  el grafic

carpeta cs

el ubicamo

ma IUGeni

os el prog

ción del pr 

ccionamien

 Clase G

osGenios

mero(){

erador(){

C

 NetBea

  de la d

 tenemos

s la clase

o.php.

rama inde

oyecto, y

to al pr 

enio

model\Ge

pítulo 10:

Em

s

recha,

la hoja

enio,

x.php,

n este

grama

nio.php

Clases, C

presa Edit

ampos y

ora Macro

étodos

Page 37: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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;}

}

?>

Page 38: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

<?php

require_once '../model/Genio.php';

$proceso = null;

if( isset( $_REQUEST["proceso"] ) ){

$proceso = $_REQUEST["proceso"];

}

if( $proceso == "formulario" ) {

$obj = new Genio();

$num1 = $obj->generarNumero();

$num2 = $obj->generarNumero();

$ope = $obj->generarOperador();

}

if( $proceso == "resultado" ) {

$num1 = $_REQUEST["num1"];

$num2 = $_REQUEST["num2"];

$ope = $_REQUEST["ope"];

$rptaUsua = $_REQUEST["rpta"];

$obj = new Genio();

$lista = $obj->procesar($num1, $num2, $ope, $rptaUsua);

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link rel="stylesheet" type="text/css" href="../css/perudev.css"/>

<title>Untitled Document</title>

<style type="text/css">

<!--

.style3 {

font-size: 24px;

text-align: center;

}-->

</style>

<script>

function boton_generar(){

document.location.href = "IUGenio.php?proceso=formulario";

}

</script>

</head>

Page 39: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 39/43

PHP Profesional

Empresa Editora Macro  20

<body>

<h1>LOS GENIOS</h1>

<p>

<input name="generar" type="button" class="button" id="generar"

value="Generar Operaci&oacute;n" onclick="boton_generar()"/>

</p>

<?php if($proceso == "formulario") { ?>

<div id="formulario">

<table width="298" border="1">

<tr>

<td width="92"><div align="center" class="style3">

<?php echo($num1) ?>

</div></td>

<td width="92"><div align="center" class="style3">

<?php echo($ope) ?>

</div></td>

<td width="92"><div align="center" class="style3">

<?php echo($num2) ?>

</div></td>

</tr>

</table>

<form id="form1" name="form1" method="post" action="IUGenio.php">

<input type="hidden" name="proceso" value="resultado" />

<input type="hidden" name="num1" value="<?php echo($num1) ?>" />

<input type="hidden" name="num2" value="<?php echo($num2) ?>" />

<input type="hidden" name="ope" value="<?php echo($ope) ?>" />

<table width="300">

<tr>

<td>Rpta.</td>

<td>

<input name="rpta" type="text" class="fieldEdit"

id="rpta" size="5" maxlength="5" />

</td>

<td>

<input name="procesar" type="submit" class="button"

id="procesar" value="Procesar" />

</td>

</tr>

</table>

</form>

</div>

<?php } ?>

<?php if( $proceso == "resultado" ) { ?>

<div id="resultado">

<table width="435">

<?php foreach( $lista as $rec) { ?>

<tr>

<td width="113"><?php echo($rec[0]) ?></td>

<td width="310"><?php echo($rec[1]) ?></td>

Page 40: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 40/43

 

21

<

  <

  </b

</html 

4.2.7

Cuand

 Al hace

tal com

En esta

1.

2.

</tr>

<?php

</table>

 /div>

?php } ?>

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

Page 41: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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

.

Page 42: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/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.

Page 43: Php Profesional guia

8/18/2019 Php Profesional guia

http://slidepdf.com/reader/full/php-profesional-guia 43/43

PHP Profesional

Página en Blanco