Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. -...

23
Introducción a la Programación web en PHP Daniel Correa Botero

Transcript of Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. -...

Page 1: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Introducción a la Programación web en PHP

Daniel Correa Botero

Page 2: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

- Sistema operativo: Windows o cualquier otro X.- Un servidor web: Apache.- Un gestor de base de datos: Mysql.- Un lenguaje: Php.

Para esto utilizaremos wampserver o xampp

Nota: un requisito adicional es el uso de Smarty para

manejar la capa visual.

Requisitos para programar en este curso

Page 3: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Gratuito.

Cualquier servidor barato de 30-40 US año corre php sin problemas.

Permite programación orientada a objetos.

Al integrarlo con html indexa la información muy fácil y rápido en buscadores.

Miles de librerías, módulos, tutoriales en la comunidad web y en internet.

¿Por qué usar PHP?

Page 4: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Porque es gratuito y porque la mayoría de los servidores lo traen incorporado. Y no mas.

ORACLE es la mejor opción pero es muy costosa.

¿Por qué usar MySql?

Page 5: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Son divisiones que se le dan al código, para hacerlo mucho mas entendible y sostenible a través del tiempo, esto garantiza un código reutilizable y mayor eficiencia en la programación.

¿Cuántas capas usar?, ¿Cómo dividir el código?, ¿Qué incluir en cada capa?, ¿Cómo aprovechar el uso de estas capas?.

¿Que es la separación por capas?

Page 6: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Smarty es una herramienta clave para poder hacer la separación por capas, simplemente permite al programador separar el código php del html mediante el uso de una serie de etiquetas smarty.

Ventajas: - Restringe las operaciones que se pueden realizar en una vista.- Separación del código de presentación.- Tener organizados los templates en un solo sitio - Permite que un diseñador y un programador puedan trabajar al mismo tiempo en archivos diferentes y sin verse afectados entre si.

¿Que es Smarty?

Page 7: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

No es un lenguaje, no es una tecnología, es simplemente una forma de programar donde se usan clases, métodos, atributos, herencia, polimorfismo, encapsulamiento.

Se transforma el mundo real en forma de objetos.

Permiten al programador tener un código mas acorde con la realidad y mas sencillo de entender; ejemplo: persona tiene cedula, nombre y apellido.

¿Que es programación orientada a objetos?

Page 8: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Cada quien programa “como se le da la gana” y muchas veces tienden a hacer del código un “vomito”.

No hay una serie de lineamientos ni bases que permitan rehusar fácilmente el código de otro programador en nuestros trabajos. Muchas veces ni siquiera podemos rehusar nuestro propio código.

La seguridad web pasa a un segundo plano y en realidad debería ser una prioridad.

Sin bases ni lineamientos el trabajo en equipo se vuelve muy complicado y al final una sola persona termina desarrollando todo el producto.

Problemas actuales con la programación Web

Page 9: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

No actualizan a los últimos avances en desarrollo de software.

Acompañamiento muy pobre a los clientes.

Muchas compañías desconocen totalmente la parte de seguridad web.

Problemas en las Compañías Colombianas

Page 10: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Muchos trabajos de grado o desarrollos son desechados al poco tiempo de ser entregados.

Falta credibilidad en la escuela de sistemas en cuanto al desarrollo de aplicaciones y sitios web.

Faltan materias o cursos en la parte de seguridad de web.

Problemática en el Campus universitario

Page 11: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Es un esquema (un esqueleto, un patrón) para el desarrollo y/o la implementación de una aplicación.

Ventajas:- Mayor seguridad.

- Acceso a tutoriales y documentación sobre como crear aplicaciones.

- El programador no necesita plantearse una estructura global de la aplicación, sino que el framework le proporciona un esqueleto que hay que "rellenar".

¿Que es un Framework ?

Page 12: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Es un framework basado en el patrón de arquitectura G (que a su vez esta basado en el mvc).

Características:- Uso de POO.- Uso de ORM (object-to-relational-mapping).- Árbol de carpetas simplificado.- Documentación detallada.- Muy liviano (Solo 360 kb).- Implementación de Smarty.

Framework G

Page 13: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Arquitectura G

Page 14: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Es una versión muy muy básica de G (casi como programar desde 0) que contiene:

- Una plantilla por defecto- Una clase ORM- Una clase objeto estándar- Un gestor de base de datos básico.- 2 archivos de configuración básicos.

G light

Page 15: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Ejemplo Smarty Index.php

Page 16: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Index.tpl

Page 17: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Salida HTML generada

Page 18: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

http://www.tejedoresdelweb.com/w/PHP_Nociones_b%C3%A1sicas

http://php.net/manual/es/language.basic-syntax.php

http://es.scribd.com/doc/32773/PHP-Basico

http://www.php.net/manual/es/

Nota: estudiar las variables globales GET, POST y SESSION, los switches, como definir arreglos y objetos, como definir las clases y sus métodos.

Sintaxis básica Php

Page 19: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Wamp: http://www.wampserver.com/en/#download-wrapper Eclipse o Netbeans: http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr http://netbeans.org/features/php/ G Light: http://www.danielgara.com/dcps/

Notas: para wamp recordar bajar Visual C++ 2010 SP1 Redistributable Package x86

or x64 un paquete que aparece en el mismo link de descarga de wamp yrecordar en caso de usar skype: siempre abrir primero wamp y luegoskype.

- wampserver es muy escandaloso con los warnings o alertas, por lo cuales muy importante hacer lo siguiente, dar clic en el icono de wampserveren la barra de inicio; luego pararse en la carpeta PHP y dar clic en php.ini

Esto abrirá un archivo en bloc de notas, deben buscar la líneaerror_reporting = E_ALL y sustituirla por error_reporting = E_ALL & ~E_NOTICE.

Instalación de programas

Page 20: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Una vez configurado wampserver o xampp, descomprimimos el archivoque descargamos desde la web: glight.rar

Pasos para wampserver:1) Copiamos la carpeta glight dentro del directorio C://wamp/www/2) Si la ruta de carpetas global no es C:/wamp/www/glight/ debido a que se

instalo en otro disco duro o con otro nombre, entonces debemos entrar a glight/configs/include.php y modificar la constante C_FULL_PATH por la ruta correspondiente.

Pasos para Xampp:1) Copiamos la carpeta glight dentro de: Aplicaciones ->Xampp -> htdocs2) Selecciona la carpeta templates_c (que se encuentra en la ruta

glight/templates_c) y le damos 'cmd + i’ o click derecho, obtener información (cmd + I) y donde dice compartir y permisos se debe poner a todos los usuarios: leer y escribir

3) Debemos entrar a glight/configs/include.php y modificar la constante C_FULL_PATH por la ruta de carpetas global.

Instalación de programas

Page 21: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

Finalmente usando NetBeans o Eclipse creamos un nuevo proyecto php y seleccionamos la carpeta glight como fuente del proyecto y desde ahí podremos modificar el código fuente de la aplicación.

Ingresamos desde el navegador a http://localhost/glight/index.php y deberíamos ver la aplicación corriendo.

Instalación de programas

Page 23: Daniel Correa Botero. - Sistema operativo: Windows o cualquier otro X. - Un servidor web: Apache. - Un gestor de base de datos: Mysql. - Un lenguaje:

GRACIAS