Curso PHP Advanced and Ajax 2012
Aspectos Generales del Curso 2012
Aspectos Generales Profesor: Ing. Mauricio Merín mauricio_merin@uca.edu.py Duración: 10 clases (3 horas reloj cada clase) Clases Teórico-Prácticas (Presentación en clase y ejercicios) Las clases se desarrollarán en el Laboratorio 1
Aspectos Generales Las clases empezarán a las 14 hs e irán hasta las 17hs Se realizará un recreo de 10 minutos a las 15:20 Las transparencias de clases y ejercicios estarán disponibles en la página del curso http://bbsoftpy.net/cursophpadvanced/ Los instaladores necesarios se alojarán en el disco público de la facultad (N:\\cursophp)
Aspectos Generales Los software utilizados serán: Zend Server Community Edition (incluye Apache/PHP/Interfaz Administrativa) Eclipse PDT Indigo Notepad++ (No recomendable) La última clase se desarrollará el examen final del curso En la modalidad Práctica o Teórico-Práctica El alumno aprueba el curso con una calificación mayor o igual a 70%
Aspectos Generales Se emitirán certificados por asistencia y por aprobación del curso Para obtener certificados por asistencia se deberá tener como mínimo 70% Todos los alumnos pueden rendir el examen final independientemente de sus asistencia
RoadMap de la Carrera Web Development 2012
RoadMap
Programa del Curso PHP Advanced and Ajax 2012
Unidad 0 Unidad 0 Presentación Presentación del curso Roadmap Repaso de aspectos generales
Unidad I Unidad I Introducción a Aspectos Avanzados: Aspectos nuevos introducidos en PHP 5.3 Tipos de cadenas en PHP 5.3 y operadores de concatenación String, Patrones y Expresiones Regulares Arrays Formatter Output Type Juggling Namespaces Clousure Introducción a PECL Introducción a PEAR Introducción a SPL
Unidad II Unidad II Interacción con Base de Datos Datos persistentes y las aplicaciones Web Repositorios de Datos (Archivos, BD, Web Service, etc) Base de Datos Relacionales Base de Datos NoSQL Introducción básica a SQL Conexión de PHP con las Base de Datos Relacionales Interacción con MySQL Interacción con PostgreSQL Interacción con Oracle Interacción con MongoDB (Base de datos NoSQL)
Unidad III Unidad III Orientación a Objetos Introducción a la Orientación a Objetos Conceptos generales de Orientación a Objetos Programación Orientada a Objetos en PHP Declaración de clases Constructores y Destructores Instanciación Métodos y atributos estáticos Especificadores de accesos Atributos y Métodos Namespace de Objetos Herencia Polimorfismo Interfaces Constantes de clase Métodos mágicos Type Hinting
Unidad IV Unidad IV Interacción con Base de Datos utilizando Orientación a Objetos Objeto de conexión a Base de Datos propio PDO PHP Data Object
Unidad V Unidad V Manejo de Excepciones en PHP Definición de Excepción Manejo de Excepciones Lanzar una excepción Extender una excepción Atrapar cierto tipo de excepciones Setear un manejador global de excepciones Trabajar con los CallBacks
Unidad VI Unidad VI Formato de Datos y Tipos Introducción a XML Objeto SimpleXML y Objeto DOM XPATH: relación con SimpleXML y DOM Introducción a los Web Service SOAP JSON Sockets
Unidad VII Unidad VII AJAX Introducción a Ajax Utilidad Ajax y PHP XMLHttpRequest Interacción con Base de Datos Frameworks Javascript con soporte para AJAX
Unidad VIII Unidad VIII Aspectos Finales Herramientas de Desarrollo en PHP Seguridad en PHP Introducción a las extensiones en PHP Implementación de las extensiones en PHP
Unidad IX Unidad IX Introducción a los Frameworks Frameworks Introducción Frameworks PHP Ventajas y desventajas de los frameworks
Repaso General Aspectos Básicos 2012
Modelo Cliente-Servidor
Modelo Cliente-Servidor
Arquitectura Web En la arquitectura Web, se distinguen dos lados claramente diferenciados: Lado Cliente Lado Servidor
Arquitectura Básica de la Web Se pueden resaltar principalmente los siguientes elementos: Browsers (Software) Client Side Servidores Web (Software) Server Side Interpretes o compiladores (software) Server Side Servidores de Base de Datos (Software) Server Side Servidores de Aplicaciones (Software) Server Side Redes de Computadoras (Físico) - Plataforma Recursos Web (Archivo Digital) Server Side Pilares de la Web (protocolos y tecnologías) - Plataforma
Client-Side Lenguajes o tecnologías del lado del cliente HTML/XHTML Javascript DHTML (Dinamic HTML) JAVA (Applets de Java) Visual Basic Script Flash CSS
Server Side Scripting ASP/ASP.NET(*.asp/*.aspx) ColdFusion Markup Language (*.cfm) (TrustLeap G-WAN) C Scripts (*.c) Java via JavaServer Pages (*.jsp) PHP (*.php) Perl(*.pl) SMX (*.smx) Python (*.py) Ruby (*.rb) Lasso (*.lasso)
Interacción Solicitud - Respuesta 2 /w p:/ t t h / o.go w w r. Di http://www.google.com / 1 : IP 5 m. co e l g 3. 17 Recurso WEB7 4.10 4 4.3 19 3 6 HTTP 8 4 HTTP 9
Sitios Web Dinámicos
Pilares Básicos de la Web Desde el punto de vista técnico, los tres pilares básicos sobre los que se sustenta la arquitectura lógica de la Web, los cuales fueron propuestos por Tim Berners-Lee, son: Un esquema de notación uniforme para ubicar los recursos a través de la red: El esquema de notación uniforme fue denominando Uniform Resource Identifier - URI. Por razones históricas, es más comúnmente referenciado como Uniform Resource Locator URL Un lenguaje universal para formatear los documentos de hipertexto: El lenguaje de marcado que permitía la referencia cruzada de documentos a través de los enlaces de hipertexto fue el Hypertext Markup Language HTML Un protocolo para transportar los mensajes a través de la red: El protocolo diseñado para transportar los mensajes especializados a través de la red, el cual es el principal fundamento de la Web, es el Hyper Text Transfer Protocol HTTP
Protocolo sin Estado vs Protocolo con Estado Protocolo sin Estado Por definición, el tiempo de vida de una conexión HTTP constituye un intercambio solicitud-respuesta. Esto implica que no hay manera de mantener información persistente acerca de una sesión y de las sucesivas interacciones entre el cliente y el servidor. Esto significa que cada solicitud se hace independientemente de la otra, y no hay una forma de mantener el estado de una Aplicación entre solicitudes. Cada petición de un cliente a un servidor no es influida por las transacciones anteriores. El servidor trata cada petición como una operación totalmente independiente del resto Es por ello que surgen diferentes mecanismos como las cookies o las sesiones, los cuales permiten mantener el estado de las Aplicaciones Web.
Aplicaciones Web Powel menciona que: Los sistemas basados en Web involucran una mezcla entre publicación impresa y desarrollo de software, entre marketing e informática, entre comunicaciones internas y externas, y entre arte y tecnología
Versiones de PHP PHP 1 (1995) PHP 5.1 (2005) PHP 2 (1997) PHP 5.2.0 (2006) PHP 3 (1998) PHP 5.2.17 (2011) PHP 4.0 (2000) PHP 5.3.0 (2009) PHP 4.1 (2001) PHP 5.3.2 (2010) PHP 4.2 (2002) PHP 5.3.3 (2010) PHP 4.3 (2002) PHP 5.3.4 (2010) PHP 4.4.0 (2005) PHP 5.3.5 (2011) PHP 4.4.9 (2008) PHP 5.3.6 (2011) PHP 5.0 (2004) PHP 5.3.7 (2011) PHP 5.3.8 (2011) PHP 5.4 (2012)
Funcionamiento de PHP En RED
Software que utilizaremos en el curso 2012
Software Utilizados Como IDE Eclipse Helios (Opción 1) Notepad++ (Opción 2) Como Servidor de Aplicaciones Zend Server Community Edition Zend Server incluye Apache PHP (interprete de PHP) Zend Controller (interfaz administrativa) Como motor de base de datos PostgreSQL
Opciones para instalar un entorno PHP Primera Opción Instalación tradicional: Instalar Apache, PHP y algún motor de BD (postgresql, MySQL, Oracle, etc) por separado Segunda Opción Instalar un paquete: Instalar WAMP es un paquete que instala Apache, PHP y MySQL en entorno Windows Es de fácil instalación y tiene se propia estructura de directorios Instalar Zend Server Community Edition (instala MySQL y Zend Framework pero es opcional) Instalar otro paquete de entorno similar
Instalación tradicional Paso 1 Bajar el software: Bajar Apache : http://httpd.apache.org/ (versión actual es 2.4.1) Bajar Interprete de PHP : http://www.php.net/downloads.php (versión actual es 5.4.0) Paso 2 Instalar Apache En windows se despliega un wizard y comienza la instalación En Ubuntu: sudo apt-get install apache2 En RedHat, CentOs: yum install httpd
Instalación Apache en Windows En windows cuando se instala Apache sale la siguiente pantalla En la barra de window indica que apache esta corriendo
Instalación Apache Una vez instalado se podrá ver el servicio de apache, haciendo clic en el se puede reiniciar, parar y encender el servicio Para saber si esta funcionando debe aparecer el signo play en verde y además se podrá probar abriendo el navegador y escribiendo localhost como url. Deberá atender la página inicial de apache
Instalación tradicional Paso 3 Instalar PHP En windows se ejecuta el instalador aparece un wizard y se siguen las instrucciones. En un momento pide especificar el path de configuración del apache. Deberemos elegir el path correspondiente según la instalación anterior. Se continua con la instalación hasta que se concluya. Si es exitosa el instalador avisa de esta situación Paso 4 Probar la instalación de PHP Hacer un script de PHP y colocarlo en el document root del apache (htdocs en windows según path de instalación y /var/www/html en linux dependiendo de la instalación y de la distribución)
Instalación tradicional Paso 4: El script debe poseer el siguiente código
Instalación Zend Server Community Edition ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE
ZS CE - Document Root
ZS CE
php.ini
Eclipse PDT PHP Development Tools 2012
Eclipse
Eclipse
Eclipse
Eclipse
Eclipse
Eclipse
Eclipse Conviene especificar el document root del Apache
Eclipse
Eclipse
Eclipse
Eclipse
Eclipse
Eclipse
Eclipse
Bibliografía
Bibliografía http://articles.sitepoint.com/article/typing-versus-dynamictyping Jansch,I., Guide to Enterprise PHP Development. php architect s. United States of America. 2008. Manual Oficial de PHP Doyle,M. Beginning PHP 5.3. Wrox. United States of America. 2010. http://www.fayerwayer.com/2010/02/facebook-aplica-ritmo-allenguaje-php-con-hiphop/