Php Profesional guia

of 43 /43
8/18/2019 Php Profesional guia http://slidepdf.com/reader/full/php-profesional-guia 1/43

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

     [email protected]

    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 

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

    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

    ¿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 

  • 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 

    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 

  • 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

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

    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

    ¿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 

    ¿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 

  • 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

    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

    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 

  • 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 

    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