PHP es la tecnología de código abierto que constituye la base fundamental de la mayoría de sitios y servidores web. En cada nueva versión, PHP demuestra ser un producto fácilmente accesible y que requiere un aprendizaje mínimo. Con PHP 6 conseguirá ir más allá crear un sitio rápidamente y sin complicaciones, puesto que logrará una mayor calidad en sus trabajos en menos tiempo. Con este libro aprenderá los elementos básicos del desarrollo profesional, analizando el lenguaje de programación orientado a objetos (OOP), y conocerá las técnicas de desarrollo más complicadas. Además, podrá poner en práctica todos los nuevos conocimientos y crear una aplicación desde el principio utilizando una estructura de modelo vista controlador (MVC).Introducción Contenido del libro A quién va dirigido este libro Qué necesita para este libro Estructura del libro Parte I: Fundamentos del desarrollo profesional Parte II: Técnicas de desarrollo avanzado Parte III: Estudio de un caso real Parte IV: Llevar a PHP a sus límites Parte V: Apéndices Colaboración Convenciones Código fuente Parte I. Fundamentos del desarrollo profesional 1. Introducción de la Programación orientada a objetos ¿Qué es la Programación orientada a objetos? Ventajas de utilizar OOP Ejemplo del mundo real Conceptos OOP Clases Objetos Herencia Interfaces Encapsulado Cambios de OO en PHP 6 Resumen 2. Lenguaje de modelación unificado (UML) Requerimientos de recopilación de datos Entrevista con el cliente Utilizar diagramas de casos Diagramas de clases Modelar el dominio Relaciones Implementación Diagramas de actividades Diagramas de secuencia Diagramas de estado Diagramas de componentes y de distribución Resumen 3. Trabajar con objetos Crear el administrador de contactos Diagramas UML del administrador de contactos Clase PropertyObject Clases de tipos de contacto Clase DataManager Clases Entity, Individual y Organization Utilizar el sistema Resumen 4. Patrones de diseño Patrón de composición Implementación Consideraciones Patrón de observador Componentes Consideraciones Patrón decorador Implementación Utilizar el decorador Consideraciones Patrón de fachada Patrón constructor Implementación Consideraciones Resumen 5. Colecciones Objetivo de la clase Collection Diseñar la clase Collection Elementos básicos de la clase Collection Método addItem Métodos removeItem y getItem Otros métodos Utilizar la clase Collection Implementar la creación de instancias retardada Devoluciones de llamada Método setLoadCallback en la clase Collection Utilizar la clase Collection Mejorar la clase Collection Resumen 6. Abstracción de bases de datos con PDO PHP y las bases de datos Bases de datos compatibles con PHP PHP y PostgreSQL Recapitulación El problema Clases envolventes Resumen Abstracción de base de datos Qué se necesita Introducción de PDO PDO Trabajar con PDO Clase PDO Ejecutar consultas Clase PDOStatement Instrucciones preparadas Instrucciones de sólo escritura Transacciones y confirmaciones Constantes Controlar errores Técnicas PDO avanzadas Objetos grandes Funciones específicas de la base de datos Conexiones permanentes Procedimientos almacenados Instancia única Limitaciones de PDO Sintaxis de consultas Emulación de características Orígenes de datos distintos de SQL Más allá de PDO Resumen Parte II. Técnicas de desarrollo avanzado 7. Asignación de relaciones del objeto Tipos de clases Clases de utilidad Clases comerciales Detalles de los objetos comerciales El diseño Crear el prototipo Añadir enlace de datos Trabajar con un objeto comercial Confirmar que se cumplen los requerimientos Cómo funciona Limitaciones Una solución más inteligente Creación retardada de instancias Supervisión de propiedades Reutilizar código Clase DataBoundObject Diseño El código Implementación de ejemplo Cómo funciona Ventajas Resumen 8. Programación controlada por eventos Eventos Utilizar OOP para controlar eventos Diseñar una solución controlada por eventos Implementar la solución Implementar seguridad Una pausa para pensar Resumen 9. Registro y depuración Crear un mecanismo de registro Registro de archivo simple Diseño del sistema de archivos de ejemplo Clase Looger Extender la clase Logger Crear un mecanismo de depuración Resumen 10. Escribir y utilizar servicios Web SOAP SOAP y PHP 6 Extensión PHP 6 SOAP Crear un cliente SOAP Tareas subyacentes Control de excepciones en el cliente SOAP Crear un servidor SOAP Crear y registrar funciones Crear el documento WSDL REST REST and PHP 6 Implementar el cliente REST Crear un servidor REST Resumen 11. Comunicación con usuarios Importancia de la comunicación Razones para comunicarse con los usuarios Pensar fuera del explorador Web Tipos de comunicación Elementos que tienen todas las comunicaciones Elementos que no tienen todas las comunicaciones Acerca de los receptores La comunicación como una jerarquía de clase Clase Recipient: Una prueba rápida de pensamiento OOP Clase Communication Enviar mensajes de correo electrónico a los usuarios Crear una versión de prueba El mensaje Utilizar las plantillas de forma inteligente Utilizar MIME Otras subclases de Communication Mensajes de texto SMS Fax Bloqueo de actividad Entrega Claves de dominio y DKIM Resumen 12. Sesiones y autenticación Introducción a las sesiones Cómo funciona HTTP Definición de sesión Perpetuar una sesión Seguridad de la sesión Buenas prácticas para la sesión Implementación de sesiones en PHP Sesiones PHP básicas Limitaciones de las sesiones PHP básicas Crear una clase de Authentication Conectar la administración de sesiones de PHP a una base de datos Introducción de la clase HTTPSession Esquema de base de datos El código: HTTPSession.phpm El código: Probar la clase HTTPSession Cómo funciona la clase HTTPSession Consideraciones sobre el rendimiento Combinar todos los elementos Resumen 13. Arquitectura de la aplicación Introducción de MVC El modelo La vista Los controladores MVC en las aplicaciones Web MVC en PHP La mini caja de herramientas MVC Introducción de la caja de herramientas Utilizar la caja de herramientas PRG Caja de herramientas Creación de plantillas verdaderas Resumen de las plantillas nativas de PHP Crear plantillas verdaderas con Smarty Instalar Smarty Utilizar Smarty Opciones avanzadas de Smarty Cuándo utilizar Smarty o las plantillas tradicionales Modelo Introducción de la prueba de unidad Introducción de PHPUnit ¿Por qué molestarse? Resumen 14. Estructura de desarrollo de aplicaciones PHP Introducción de las estructuras de desarrollo Estructura de la aplicación Separación del código y de la lógica de presentación Validación Reescritura de URL Persistencia de formulario Asignación de relaciones del objeto Clases de utilidad Escenario del caso Base de datos subyacente Una aplicación de ejemplo Ulysses Instalar Ulysses Trabajar con Ulysses Configuración Objetos de negocio Servlet Procesar los datos introducidos por el usuario Persistencia Validación Una comprobación rápida Guardar la entrada Realizar una prueba Un resumen rápido Otros aspirantes Prado Zend Consideraciones de implantación Resumen Parte III. Estudio de un caso real 15. Visión general del proyecto Widget World Panorama de Widget World Capa técnica Capa financiera Capa política El desarrollador ¿Es realmente un problema tecnológico? Solución de desarrollo Significado para el desarrollador Tecnología Resumen 16. Administración del proyecto Hacer los deberes Por qué se produce este proyecto Para qui