manual php

Upload: mario-espinoza

Post on 12-Jul-2015

274 views

Category:

Documents


0 download

TRANSCRIPT

PHP Crash Course Revisin: 2.1 Fecha compilacin:Eduardo Saavedra A.

27 de noviembre de 2008

1

ndice1. Introduccin 1.1. Un poco de Historia . . 1.2. Objetivos . . . . . . . 1.3. Agradecimientos . . . 1.4. Herramientas a Utilizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 5 6 7 8 12 13 15 18 21 22 22 22 23 23 26 27 27 29 29 29 30 30 31 32 33 34 35 35 37 38 38 39 40 40 43 43 47

2. Instalacin Apache - PHP - MySQL 2.1. Windows . . . . . . . . . . . . . . . . . . 2.1.1. Probando la instalacin de Apache . 2.1.2. Probando la instalacin de MySQL 2.2. Linux . . . . . . . . . . . . . . . . . . . . 2.2.1. Probando la instalacin de Apache . 3. Utilizando Apache 4. Utilizando MySQL 4.1. Clientes WEB . . . . . . . . . . . 4.2. Clientes de Escritorio . . . . . . . 4.3. Uso de MySQL Administrator . . 4.3.1. Creacion de base de datos 4.3.2. Insercin de Datos . . . . 4.3.3. Generacin de consultas . 4.3.4. Creacin de vistas . . . . 5. Utilizando PHP 5.1. Variables . . . . . . . . . . . . 5.2. Arreglos . . . . . . . . . . . . 5.2.1. Declaracin Formal 5.2.2. Funciones de arreglos . 5.3. Sentencias de Control . . . . . 5.4. Funciones . . . . . . . . . . . 5.5. Entorno de desarrollo . . . . . 5.5.1. Easy Eclipse PHP . . . 5.6. Primera aplicacin en PHP . . 5.6.1. Pasos . . . . . . . . . 5.6.2. Funcionamiento . . . . 5.7. Segunda Aplicacin en PHP . 5.7.1. Pasos . . . . . . . . . 5.7.2. Funcionamiento . . . . 5.8. Tercera aplicacin en PHP . . 5.8.1. Pasos . . . . . . . . . 5.9. Cuarta aplicacin en PHP . . . 5.9.1. Pasos . . . . . . . . . 5.10. Quinta aplicacin en PHP . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . 2

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

NDICE

NDICE

5.10.1. Base de datos . . . . . . . . . . 5.10.2. Pasos de programacin . . . . . 5.11. Sexta aplicacin en PHP (cont. Quinta) . 5.11.1. Base de datos . . . . . . . . . . 5.11.2. Pasos de programacin . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

47 50 59 60 61

Manual PHP

3

Eduardo Saavedra A.

1

INTRODUCCIN

1.

Introduccin

La creciente demanda de las aplicaciones Web requiere de la atencin de todo profesional relacionado con las tecnologas de la informacin. Sin duda alguna, PHP no es la herramienta absoluta ni la mejor para seguir buenas prcticas de la Ingeniera de Software, sin embargo, esta da los conocimientos fundamentales para la comprensin general del Software del tipo Web. Actualmente existen muchas opciones para satisfacer necesidades de aplicaciones online. Algunas como JSP, Ruby on Rails, ASP, etc, siguen evolucionando para subyugar el problema que posee PHP inherentemente... Su tendencia al desorden, gran acoplamiento de cdigo y su poca cohesin. Por supuesto PHP no se queda atrs, en su ltimas versiones se trata de potenciar al mximo su orientacin a objetos, uso de clases y mtodos. Las versiones estables actuales de PHP en sus dos ramas son la 5 y 4. Las diferencias de las 2 versiones son mejoras en torno a su orientacin a objetos, Web-Service (SOAP), mayor soporte para distintos SGBD, etc. Existen adems varios frameworks para PHP, entre los ms utilizados y cotizados por eliminar los problemas sealados estn los frameworks de MVC. Entre los mas conocidos se tienen:

symphony: http://www.symfony-project.org CakePHP: http://www.cakephp.org PHP on Trax: http://www.phpontrax.com

Con ellos se pueden mejorar tiempos de desarrollo para crear grandes aplicaciones pudiendo realizar integracin rpida y eciente. Todo el contenido del presente manual se fundamenta en herramientas de libre uso tales como, Apache, XAMPP, PHP, MySQL, SQL Server Express, entre otras.

1.1.

Un poco de Historia

PHP fue originalmente diseado en Perl, en base a la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador dans-canadiense Rasmus Lerdorf en el ao 1994 para mostrar su Manual PHP 4 Eduardo Saavedra A.

1.2

Objetivos

1

INTRODUCCIN

curriculum vitae y guardar ciertos datos, como la cantidad de trco que su pgina web reciba. El 8 de junio de 1995 fue publicado "Personal Home Page Tools"despus de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.

1.2.

ObjetivosEl presente manual tiene como propsito:

El dar a conocer la herramienta de programacin Web PHP, su sintaxis y metodologa de programacin. Dar a conocer herramientas de desarrollo. Entregar informacin de instalacin de los servicios para Levantar un servidor capaz de entender PHP. Mostrar la interconcetividad con distintos motores de base de datos. Desarrollar un pequeo software de ejemplo.

1.3.

Agradecimientos

Primero que todo, debo agradecer a mi mentor en el uso formal de PHP, Hernn Roa R. Gracias a l pude conocer conceptos mas acabados sobre este entretenido y verstil lenguaje de programacin. Inclusive durante este tutorial se ocupar la metodologa de programacin que l me mostr. Bueno, en general a todos... ;) Y, por supuesto, se agradecer al que pueda aportar con ms conocimiento para enriquecer el presente documento.A Pd. Viva LTEX:).

Manual PHP

5

Eduardo Saavedra A.

1.4

Herramientas a Utilizar

1

INTRODUCCIN

1.4.

Herramientas a UtilizarXAMPP: Descargar XAMPP MySQL Adminstrator: Descargar MySQL Administrator Easy Eclipse: Descargar Easy Eclipse

Manual PHP

6

Eduardo Saavedra A.

2

INSTALACIN APACHE - PHP - MYSQL

2.

Instalacin Apache - PHP - MySQL

Esta seccin tratar la instalacin de un servidor capaz de interpretar lenguaje PHP y ser mostrado a los usuarios como pgina web. Existen varios Packs para realizar una instalacin mucho mas amigable y rpida. La versin extendida de la instalacin de cada modulo por separado, no se tratar en el presente (por ahora). As que para este paso se requerir el pack que ofrece Apache Friends (www.apachefriends.org) llamado XAMPP. Est para versiones Windows y Linux. Versin utilizada: 1.6.8

Manual PHP

7

Eduardo Saavedra A.

2.1

Windows

2

INSTALACIN APACHE - PHP - MYSQL

2.1.

WindowsPara comenzar... doble click en el cono de instalacin de XAMPP

Figura 1: Icono

Esta ser la pantalla inicial, donde se dar a elegir el idioma a utilizar:

Otra pantalla de bienvenida, solo next:

Manual PHP

8

Eduardo Saavedra A.

2.1

Windows

2

INSTALACIN APACHE - PHP - MYSQL

Se escoge la ruta de instalacin, generalmente C:, pero puede ser cualquiera (ojal un disco que no sea el de la instalacin de windows..)

En el orden respectivo pregunta:

Manual PHP

9

Eduardo Saavedra A.

2.1

Windows

2

INSTALACIN APACHE - PHP - MYSQL

Crear acceso directo en escritorio y luego en el menu de inicio Instalar como servicio Apache Instalar como servicio MySQL Instalar como servicio FileZilla Se recomienda no dejarlos habilitados, para as, solo levantar los servicios cuando se requiere.

Comienza la instalacin:

Manual PHP

10

Eduardo Saavedra A.

2.1

Windows

2

INSTALACIN APACHE - PHP - MYSQL

Finaliza la instalacin:

Seleccionar S para ver el panel:

Este panel es el principal de XAMPP, aqu se pueden iniciar los servicios, detenerlos o reiniciarlos. PHP se encuentra incluido como mdulo de PHP, as que si se quiere utilizar PHP solo basta con iniciar Apache.

Manual PHP

11

Eduardo Saavedra A.

2.1

Windows

2

INSTALACIN APACHE - PHP - MYSQL

2.1.1.

Probando la instalacin de Apache

Luego de haber instalado XAMPP, inicie el servicio APACHE tal y como se muestra en la gura 8. Si se muestra lo siguiente:

Figura 2: Panel de Control XAMPP y Servicios

Manual PHP

12

Eduardo Saavedra A.

2.1

Windows

2

INSTALACIN APACHE - PHP - MYSQL

Quiere decir que se inicio el servicio correctamente. Y para corroborar esto, proceda a abrir su navegador web (como Mozilla, Internet Explorer, Chrome, Opera, etc) e ingrese la siguiente direccin: http://127.0.0.1

Si todo ha ido correctamente se debera desplegar la siguiente pgina:

Esta ltima pgina esta creada en PHP, por lo tanto ya est listo el servidor con PHP ;).

2.1.2.

Probando la instalacin de MySQL

Anlogamente para probar si MySQL esta efectivamente activo se debe hacer click sobre el botn start de MySQL en el panel de control de XAMPP. Manual PHP 13 Eduardo Saavedra A.

2.1

Windows

2

INSTALACIN APACHE - PHP - MYSQL

Si todo va bien, en un momento debera aparecer en palabras marcadas con verde Running, igual que Apache:

Ahora, para probar si MySQL funciona completamente, ingresar a la siguiente url: http://127.0.0.1/phpmyadmin. Si se ingresa correctamente, se podr ver el panel de control de la base de datos con el cliente phpmyadmin.

Manual PHP

14

Eduardo Saavedra A.

2.2

Linux

2

INSTALACIN APACHE - PHP - MYSQL

2.2.

LinuxAunque no lo parezca la instalacin de XAMPP en Linux es sumamente sencilla. Con el archivo tar.gz a su disposicin, deben ejecutar el siguiente comando:

tar xvfz

En general se instala bajo el directorio /opt, por lo tanto, de forma particular sera:

sudo tar xvfz xampp-linux-1.6.8a.tar.gz -C /opt

Manual PHP

15

Eduardo Saavedra A.

2.2

Linux

2

INSTALACIN APACHE - PHP - MYSQL

Este comando Descomprimir en la ruta dada los archivos binarios del XAMPP junto con sus directorios bsicos. (Ojo, deben estar como usuario privilegiado root). Luego deben dar permisos sobre el directorio al usuario que esten utilizando en unix:

sudo chown usuario -R /opt/lampp

Manual PHP

16

Eduardo Saavedra A.

2.2

Linux

2

INSTALACIN APACHE - PHP - MYSQL

Este comando debe ser ejecutado como root. Con esto listo, pueden proceder a iniciar los servicios de apache y mysql. Para esto ejecuten el comando:

sudo /opt/lampp/lampp start

Esto levantar los servicios de XAMPP (debe ser como root).

Manual PHP

17

Eduardo Saavedra A.

2.2

Linux

2

INSTALACIN APACHE - PHP - MYSQL

2.2.1.

Probando la instalacin de Apache

Para corroborar de que todo est funcionando, visiten con su navegador la direccion 127.0.0.1 o bien ejecuten el comando:

nmap localhost

Manual PHP

18

Eduardo Saavedra A.

2.2

Linux

2

INSTALACIN APACHE - PHP - MYSQL

Este comando(nmap) permite ver que puertos estn abiertos, y que servicios estn corriendo sobre l. Si no tienen el programa nmap, es 100 % recomendado bajarlo

Para versiones de linux derivadas de debian: apt-get install nmap Para versiones de linux derivadas de Red Hat: yum install nmap

Al igual que en windows, el directorio de trabajo de Apache es el htdocs (/opt/lampp/htdocs).

Manual PHP

19

Eduardo Saavedra A.

2.2

Linux

2

INSTALACIN APACHE - PHP - MYSQL

Con esto se concluye la instalacin sobre Linux :).

Manual PHP

20

Eduardo Saavedra A.

3

UTILIZANDO APACHE

3.

Utilizando Apache

Para utilizar Apache con PHP en la distribucin de XAMPP denida anteriormente es necesario hacer uso de la carpeta htdocs del directorio raz de XAMPP. Esta carpeta es la que queda a publica vision de los clientes que se conecten al servicio. Este Apache por defecto detecta los archivos index. por defecto como propietarios de directorio, es decir, que si un usuario ingresa al sitio web http://127.0.0.1/aplicacion lo que el usuario ver ser la fuente del archivo index. Si no existe un index, inmediatamente se ver la estructura de directorios de la carpeta en cuestin. Luego la idea es que en el index, existan las referencias o links respectivos para visitar los dems fuentes de los directorios del sitio.

Manual PHP

21

Eduardo Saavedra A.

4

UTILIZANDO MYSQL

4.

Utilizando MySQLPara utilizar la instalacin de MySQL de XAMPP, existen varias alternativas mediante clientes:

Utilizar phpMyAdmin (Cliente Web). Utilizar MySQL Administrator (Cliente Instalable). Utilizar Sql Lite (Cliente Web).

Es recomendable para operaciones complejas utilizar los clientes de Escritorio, y para operaciones mas sencillas y triviales los clientes WEB. De todas maneras, las operaciones realizables en el SGBD mediante estos 2 tipos son deben ser idnticas. Por ejemplo entre las operaciones bsicas podemos encontrar:

Creacin de bases de datos. Insercin de datos. Borrado de elementos. Generadores de BackUps. Visin de modelos.

4.1.

Clientes WEBLa desventaja de los clientes Web es que utilizan recursos de los servidores para poder funcionar. Son un poco menos verstiles en cuanto a usabilidad

4.2.

Clientes de Escritorio

MySQL Administrator es una aplicacin diseada por los mismos creadores de MySQL, es bastante poderosa para el manejo de bases de datos MySQL. Manual PHP 22 Eduardo Saavedra A.

4.3

Uso de MySQL Administrator

4

UTILIZANDO MYSQL

Recomiendo esta aplicacin para realizar gestiones sobre bases de datos mas complejas.

4.3.4.3.1.

Uso de MySQL AdministratorCreacion de base de datos

Habiendo creado un modelo E-R, y luego un modelo fsico mediante una herramienta CASE como Power Designer, se procede a exportar la base de datos a un script DDL de MySQL. Para cargar este script con la estructura de la base da datos es necesario realizar los siguientes pasos:

1. Abrir MySQL Administrator:

2. Despus ingresar a la base de datos, utilizando el usuario y contrasea correspondiente.

3. Luego seleccionar el item Restore

Manual PHP

23

Eduardo Saavedra A.

4.3

Uso de MySQL Administrator

4

UTILIZANDO MYSQL

Se puede ver que solo est habilitada la seccin de abrir archivo. Generalmente el archivo puede tener errores de comptabilidad de cdigo, esto es por que el DDL se gener con una aplicacin externa y no con el mismo MySQL Adminstrator. Para evitar posibles errrores, basta con marcar la opcin de Ignore Errors (Omitir Errores). 4. Cargar el archivo DDL.

5. (Opcional) Si se ve la pestaa de Restore content presionando el botn de analizar contenido, podran verse las tablas a generar de la base de datos.

Manual PHP

24

Eduardo Saavedra A.

4.3

Uso de MySQL Administrator

4

UTILIZANDO MYSQL

6. Al Presionar Start Restore debera aparecer una ventana de progreso del archivo:

Figura 3: Bases de datos: Catlogos

7. Finalmente para ver si la base de datos fue creada se puede revisar en la seccin de catlogos la existencia de sta. (cabe destacar que un Schema es el equivalente a una base de datos en MySQL).

Manual PHP

25

Eduardo Saavedra A.

4.3

Uso de MySQL Administrator

4

UTILIZANDO MYSQL

4.3.2.

Insercin de Datos

Para insertar datos sobre las tablas es bastante cmodo. Esto se puede realizar mediante los siguientes pasos:

1. Acceder a los catlogos (ver gura: 3) 2. Dentro del Esquema de la base de datos presionar ver las propiedades de una tabla con el botn derecho del mouse y acceder a la opcin Editar Tabla.

3. Luego se puede escribir segn los tipos de datos designados a las columnas por medio del botn edit en la parte inferior central de la pantalla de edicin.

Manual PHP

26

Eduardo Saavedra A.

4.3

Uso de MySQL Administrator

4

UTILIZANDO MYSQL

4.3.3.

Generacin de consultas

Para confeccionar consultas pueden dirigirse a la ventana de edicin de datos, en ella se encuentra una miniconsola en la parte superior. En el extremo inferior derecho hay comandos y funciones de ayuda de MySQL.

4.3.4.

Creacin de vistas

Es posible hacer vistas mediante la misma ventana de edicin de datos, para ello, basta realizar un Query (que funcione!) y en la barra de menu superior acceder a QueryCreate View From Select. Manual PHP 27 Eduardo Saavedra A.

4.3

Uso de MySQL Administrator

4

UTILIZANDO MYSQL

Manual PHP

28

Eduardo Saavedra A.

5

UTILIZANDO PHP

5.

Utilizando PHPPHP tiene una gran semejanza al lenguaje C y C++.

5.1.

Variables

En PHP el uso de Tipos de variable es casi inexistente. Por ejemplo si se desea denir una variable que contenga un numero basta con: $numero=9; Para denir un String: $string=Hola; Para denir un char: $char=a; Con esto podemos concluir que PHP detecta de forma inteligente los tipos de variable evitando as deniciones. repetitivas o innecesarias. El signo de peso($) es OBLIGATORIO para denir cualquier tipo de variable!. Si no se utiliza, el compilador pensar que se trata de utilizar una funcin o procedimiento.

5.2.

Arreglos

Por supuesto, como todo lenguaje, es necesario el manejo de arreglos. En PHP existen variadas funciones asociados a ellos, adems, su declaracin inicial puede ser muy variada. Los arreglos pueden contener cualquier tipo de variable, es decir que, un arreglo puede contener, arreglos, strings, enteros, otantes, etc. Como se puede apreciar PHP es un lenguaje muy muy permisivo en cuanto al uso de los tipo de variable, esto es un elemento bueno, pero a veces puede ser adverso cuando se es desordenado.

Manual PHP

29

Eduardo Saavedra A.

5.2

Arreglos

5

UTILIZANDO PHP

5.2.1.

Declaracin Formal

La declaracin formal de un arreglo vaco en PHP es la siguiente: $nombreArreglo = array(); Si deseamos iniciarlo con datos: $nombreArreglo = array(dato1, dato2, dato3); Para recorrer un arreglo se puede hacer mediante una sentencia de control (como for o while) y el uso de una variable auxiliar de indice. Por ejemplo si se necesita el tercer elemento del arreglo anterior: echo El tercer elemento es!.$nombre[2]; (La palabra echo es para imprimir en pantalla)

5.2.2.

Funciones de arreglos

Existen muchas funciones para el tratamiento de arreglos, entre algunas podemos encontrar:

array_push(arreglo, valor_a_ingresar) : void Esta funcin ingresa un elemento al nal del arreglo array_pop(arreglo) : elemento Esta funcin saca el primer elemento del arreglo y lo retorna. in_array(valor, arreglo) : boolean Esta funcin retorna True si se encuentra valor en arreglo, en otro caso False. count(arreglo) : int Esta funcin retorna la cantidad de elementos del arreglo. shufe(arreglo) : void Esta funcin desordena de forma aleatoria los elementos del arreglo

Manual PHP

30

Eduardo Saavedra A.

5.3

Sentencias de Control

5

UTILIZANDO PHP

5.3.

Sentencias de ControlComo en todo lenguaje existen (entre otros):

If y Else

Switch y Case

While

For

Manual PHP

31

Eduardo Saavedra A.

5.4

Funciones

5

UTILIZANDO PHP

5.4.

FuncionesLas funciones se denen sin tipo, simplemente se confeccionan de la siguiente forma: nombre_de_funcion($parametro1, $parametro2,...,$parametroN){ }

Si se utiliza la palabra clave return dentro de una funcin, esta se quiebra (break) y retorna lo que se necesite (idealmente una funcin debe retornar un solo tipo de variable...)

Manual PHP

32

Eduardo Saavedra A.

5.5

Entorno de desarrollo

5

UTILIZANDO PHP

5.5.

Entorno de desarrollo

Existen variadas alternativas, incluso programas tan bsicos como notepad podran ser tiles, sin embargo la idea es agilizar y saber que es lo que efectivamente se esta haciendo. Por lo tanto para programar en PHP se recomienda:

DreamWeaver: http://www.adobe.com NetBeans: http://php.netbeans.org Eclipse: http://www.easyeclipse.org

Cada uno tiene sus cualidades, sin embargo por capricho del autor, se utilizar Eclipse. La versin de Eclipse a usar es la Easy Eclipse, sta es la misma versin que viene incorporada con la distribucin Fedora Core de Linux. Esta sumamente integrada con PHP y con los servicios debases de datos y Apache. No as Netbeans u otros.

Manual PHP

33

Eduardo Saavedra A.

5.5

Entorno de desarrollo

5

UTILIZANDO PHP

5.5.1.

Easy Eclipse PHP

La instalacin es bastante sencilla, solamente se debe recordar donde se asignar el worskpase de eclipse. Es recomendable, de que si se est trabajando con PHP, dejar el directorio htdocs como la carpeta de trabajo de Eclipse.

Figura 4: Easy Eclipse en detalle

Manual PHP

34

Eduardo Saavedra A.

5.6

Primera aplicacin en PHP

5

UTILIZANDO PHP

5.6.

Primera aplicacin en PHPComo es de esperar la primera aplicacin ser... Hola Mundo!

Bien, la forma de trabajar de PHP es que cada vez que un cliente solicite una pgina al servidor, ste debe compilar e interpretar el cdigo fuente de lo solicitado, mostrando al usuario el resultado nal. La idea, es que el usuario NUNCA deba ver el cdigo fuente de una aplicacin PHP.

5.6.1.

Pasos

1. En Eclipse creamos un nuevo proyecto PHP con nombre primerApp.

(a) Nuevo proyecto

(b) Asignacin de nombre

Figura 5: Creacin de un proyecto 2. Dentro de este proyecto, crear un nuevo fuente PHP llamado index.php

Manual PHP

35

Eduardo Saavedra A.

5.6

Primera aplicacin en PHP

5

UTILIZANDO PHP

(a) Nuevo archivo fuente

(b) Asignacin de nombre

Figura 6: Creacin de un archivo 3. En el archivo index.php, escribir las siguientes sentencias:1 2 3 4 5

Esto har que se imprima, como salida en cdigo HTML, el texto Hola Mundo. La funcin echo es til para estos nes, adems es posible realizar concatenaciones de string constantes (como la del ejemplo) y variable. 4. Luego, guardar el proyecto. 5. Para probar si funciona, hay que cerciorar de que Apache est activo (ver gura: 2) 6. En caso de que Apache est efectivamente andando, ir al navegador web e ingresar al sitio http://127.0.0.1/primerApp 7. Se debera ver una pgina con el siguiente contenido:

Manual PHP

36

Eduardo Saavedra A.

5.6

Primera aplicacin en PHP

5

UTILIZANDO PHP

5.6.2.

Funcionamiento

Manual PHP

37

Eduardo Saavedra A.

5.7

Segunda Aplicacin en PHP

5

UTILIZANDO PHP

5.7.

Segunda Aplicacin en PHPLa segunda aplicacin a programar ser una que utilice funciones para procesar ciertos datos:

5.7.1.

Pasos

1. En Eclipse creamos un nuevo proyecto PHP con nombre secondApp. 2. Dentro de este proyecto, crear un nuevo fuente PHP llamado funciones.php 3. En el archivo funciones.php, escribir las siguientes sentencias:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Con esto, hemos creado dos funciones que hacen exactamente lo mismo (era para mostrar los 2 tpicos formatos utilizados en condiciones). Para llamar a estas funciones desde otro archivo fuente php, se utilizan alguna de las siguientes funciones: include(archivo) require(archivo) require_once(archivo) Cada uno con distintas caractersticas, los ms utilizados son el requiere_once e include. 4. Luego, guardar el archivo. 5. Ahora, crear otro archivo llamado index.php 6. En ste escribir el siguiente cdigo:

Manual PHP

38

Eduardo Saavedra A.

5.7

Segunda Aplicacin en PHP

5

UTILIZANDO PHP

1 2 3 4 5 6 7 8 9 10 11 12

Notar que en la lnea 3 se hizo referencia al archivo que contena las funciones!, todo mediante un requiere_once. Finalmente segn el valor que tome la variable valor de la lnea 4 se imprimir en pantalla Es par o No es Par 7. Para probar si funciona, hay que cerciorar de que Apache est activo (ver 2) 8. En caso de que Apache est efectivamente andando, ir al navegador web e ingresar al sitio http://127.0.0.1/secondApp 9. Se debera ver una pgina con el siguiente contenido:

5.7.2.

Funcionamiento

Manual PHP

39

Eduardo Saavedra A.

5.8

Tercera aplicacin en PHP

5

UTILIZANDO PHP

5.8.

Tercera aplicacin en PHPEn la tercera aplicacin se ver el uso de ciclos y arreglos.

Adems se har referencia al uso de headers y footers, algo sumamente bsico en la creacin de sitios Web dinmicos.

5.8.1.

Pasos

1. En Eclipse creamos un nuevo proyecto PHP con nombre thirdApp. 2. Dentro de este proyecto, creamos 2 carpetas, api y cong respectivamente 3. Dentro de la carpeta cong crear 2 archivos php, uno llamado footer.php y otro header.php 4. Dentro de la carpeta api crear el archivo commonLib.php 5. Crear en la raz del proyecto el index.php

Figura 7: Estructura de archivos nal

6. Luego en el archivo header.php dejaremos el siguiente cdigo:1 2 3 4 5 6 7 8

Manual PHP

40

Eduardo Saavedra A.

5.8

Tercera aplicacin en PHP

5

UTILIZANDO PHP

Esto imprimir en HTML los tags de inicio de un sitio Web. 7. En el archivo footer.php dejaremos el siguiente cdigo:1 2 3 4 5 6 7 8

Esto imprimir en HTML los tags de n de un sitio Web. La idea de usar un footer y un header es que ellos sern llamados en todas las pginas diseadas, por lo tanto se ahorra la sobreescritura de cdigo. 8. En el archivo commonLib.php se dejar:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Con esto deniremos una funcin que crear una tabla HTML en que cada la contendr un elemento del arreglo pasado por parmetro. 9. Finalmente en el archivo index.php se escribir:1 2 3 4 5 6 7 8 9 10

Esto dene un arreglo llamado datos (lnea 7), y luego se llamar a la funcin CREATE_TABLE de la commonLib que fue referenciada en la linea 3. Note como se llaman a las funciones desde la commonLib y el cdigo HTML del header y footer, estos dos ltimos en las lneas 4 y 11 respectivamente.

Manual PHP

42

Eduardo Saavedra A.

5.9

Cuarta aplicacin en PHP

5

UTILIZANDO PHP

5.9.

Cuarta aplicacin en PHP

La cuarta aplicacin tendr como propsito generar una aplicacin un poco ms compleja utilizando clases, al mas puro estilo Java. El propsito ser utilizar esta bsica clase para mostrar su funcionamiento respectivo a los constructores, mtodos y usos de atributos.

5.9.1.

Pasos

1. Utilizar los archivos (header, footer y commonLib) de la aplicacin 3 junto con sus directorios respectivos (api, cong) 2. Crear el directorio class en el proyecto, y dentro de este crear el archivo fuente userClass.php. 3. La estructura de directorios dene quedar de la siguiente forma.

Figura 8: Estructura de archivos nal

4. En la clase userClass deniremos 3 variables, y 5 mtodos incluyendo a su constructor.1 2 3 4 5 6 7

Siempre las clases en PHP se inician mediante la palabra clave class (lnea 2) seguida del nombre identicador de la clase. Luego dentro de la clase se pueden crear variables pblicas o privadas (lneas 4, 5 y 6). Como en todo lenguaje de programacin de alto nivel, las variables privadas solo pueden ser accedidas desde el mismo objeto instanciado, y por otro lado, las variables publicas, pueden ser utilizadas por cualquier objeto instanciado o rutina fuera del objeto original. Seguido de las variables, encontramos el constructor, ntese que el constructor es una funcin que lleva EL MISMO NOMBRE que la identicadora de la clase. (lnea 8). Las siguientes funciones (lneas 8, 13, 17, 21, 25) son simples getters y setters de las variables a utilizar, por supuesto, las variables pblicas no requieren de forma obligatoria estas funciones, ellas se crearon solo a modo de ejemplo. Cabe destacar el uso del puntero $this su uso es idntico a java. La idea es siempre llamar a las variables de la clase mediante este puntero para evitar inconsistencias y saber que es lo que esta ocurriendo de forma rpida y efectiva. 5. El archivo index.php contendr el siguiente script:1 2 3 4 5 6 7 8 9 10 11 12 13 14

Nuevamente en las primeras lneas se llaman a las inclusiones de los archivos fuentes externos con funciones. En la lnea 3 se hace referencia al archivo de la clase userClass, cuando se tienen clases en archivos distintos se deben llamar de esa forma. En las lneas 8, 9 y 10 se crean 3 objetos USER, su parmetro de construccin es un nmero identicador. En la lnea 12 se crea un arreglo. De la lnea 14 a 16 se realizan push de los objetos al arreglo. (era posible hacerlo mediante un simple array($dato1, $dato2, $dato3), sin embargo se quera mostrar el uso de la funcin array_push). Luego se comienzan a utilizar las funciones (mtodos) de los objetos (set_name y set_phone respectivamente) En la lnea 28 se realiza un for para llamar iterativamente a los mtodos get de los objetos instanciados inicialmente. Finalmente se cierra el archivo con la inclusin del footer y del script.

Manual PHP

45

Eduardo Saavedra A.

5.9

Cuarta aplicacin en PHP

5

UTILIZANDO PHP

El resultado que se debera mostrar es:

Manual PHP

46

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

5.10.

Quinta aplicacin en PHP

En esta aplicacin se realizar un programa que se comunique con una base de datos MySQL. Para ello se proveer de una clase PHP que establece la comunicacin con la base de datos previo a una conguracin bastante rutinaria. La base de datos a utilizar se adjuntara al presente manual, por medio de un Dump hecho con MySQL Administrator. sta aplicacin ser un poco mas compleja que las anteriores, por ello se pide por favor leer esto con calma y entender a cabalidad de lo que se esta exponiendo.

5.10.1.

Base de datos

Se utilizar un ejemplo simple de 3 tablas, consistente en msicos y cuando ellos utilizan instrumentos.

1. Nuestro modelo de datos es el siguiente:

Figura 9: Modelo Conceptual BD

2. EL modelo fsico representativo de la situacin:

Manual PHP

47

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

Figura 10: Modelo Fsico BD

3. Como el diseo fue hecho en Power Designer, basta con generar la base de datos por medio del men Generate Database (recordar que antes se debe dar el nombre a la base de datos en la seccin del modelo fsico! [diapositiva de Ayudanta 3]) 4. Luego se ingresar a MySQL Administrator y se realizar un restore del script generado (ver seccin 4.3.1 y 4.3.2)

Manual PHP

48

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

5. Ahora se insertarn datos con el segundo script adjunto (insert_Musicos.sql). 6. Si todo est en orden, la base de datos debera estar creada y con algunos datos:

Ya con todo preparado se puede comenzar a programar una aplicacin ;).

Manual PHP

49

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

5.10.2.

Pasos de programacin

Primero se debe dejar claro que lo que se presentar a continuacin es una forma relativamente ordenada de programar en PHP. Es posible, por ejemplo, dejar todo el cdigo fuente en un solo archivo, incluyendo clases, HTML, funciones, cabeceras, SQLs, etc. Pero lo nico que se logra con esto, es dejar un cdigo inmantenible e inentendible...

1. Primero dejaremos la estructura de directorios de la siguiente forma:

2. Al igual que en los 2 ejercicios anteriores se usarn los archivos: footer.php en la carpeta cong header.php en la carpeta cong commonLib.php en la carpeta api 3. Luego crear el archivo fuente congSystem.php dentro de la carpeta cong, ste contendr todos los datos de conguracin esttica de nuestra aplicacin, como servidor . 4. Ahora deje el archivo adjunto connectDbClass.php en la carpeta class, esta clase ser la encargada de mediar entre la base de datos y los archivos fuentes de la pgina. 5. Finalmente crear el archivo index.php en la raz del proyecto. 6. La estructura de directorios y archivos quedar de la siguiente forma:

Manual PHP

50

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

7. Ingresar el siguiente cdigo en el archivo congSystem.php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Entonces lnea a lnea el cdigo representa: 2 : Con el comando unset se Resetean los valores de la variable CFG. 4 : dbtype: es un string que contendr el tipo de base de datos a utilizar, la clase connectDbClass soporta: SQL Server 2000, MySQL y postgres. 5 : dbhost: es un string conteniendo la IP del servidor de base de datos, en general este estar en su propio equipo, por lo tanto la direccin 127.0.0.1 referenciar a la base de datos. 6 : dbname: es un string que contiene el nombre de la base de datos a utilizar, para nuestro caso ella sera MUSICA.

Manual PHP

51

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

7 : dbuser: es un string que contiene el nombre de usuario de la base de datos, el usuario root es el principal administrador, en rigor es una mala prctica utilizarlo, pero de todas maneras cumplir su cometido. 8 : dbpass: es un string que contiene el password del usuario dado anteriormente. 11 : host: contendr la ip o DNS del servidor apache, en nuestro caso, nuestro propio equipo 127.0.0.1 12 : pname: es un string que contiene el nombre del proyecto (para este caso fthApp). 13 : wwwroot: este string contendr la ruta por medio de DNS o ip del proyecto. 14 : dirroot: este string contendr la ruta INTERNA del proyecto. 15 : owner: ser la string contendr del creador del proyecto. 16 : charSet: contendr el tipo de caracteres a utilizar en el sitio web. 18-21 : Estas deniciones podrn ser tiles para ahorrar cdigo HTML.

Manual PHP

52

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

8. Crearemos ahora 2 clases, una para los msicos y otra para los instrumentos. Cabe destacar, que los diagramas E-R son muy similares en notacin y nalidad a los diagramas de clases. Los archivos a crear quedarn en la carpeta class, y sern musicianClass.php y instrumentClass.php. 9. Para la clase musician crearemos 2 simples mtodos: a) Para mostrar TODOS los msicos en la base de datos. b) Para mostrar un msico en particular. Asumiendo que se tienen conocimientos de usos de clases en PHP (ver seccin 5.9). Se crearn los 2 mtodos:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Bien, la clase, como constructor tomar un ID (Lnea 7) y adems tomar las caractersticas de conexin a base de datos (por medio de la clase connecDbClass, Lnea 8). Luego en el mtodo getAllMusicians, primero tomaremos los valores del archivo de conguracin (congSystem.php) referenciado por la variable $CFG, luego se incluir el archivo musicianQueryLib.php y el mtodo retornar el resultado de una query guardada en el archivo musicianQueryLib.php. La instruccin REC_SET que se ve en la Lnea 15 y 21 corresponde a un mtodo de la clase CONNECTDB (del archivo connectDbClass.php), este mtodo lo que hace es, por medio de un SQL, es retornar en forma de una matriz de arreglos el resultado. 10. Para seguir con la secuencia lgica crearemos el archivo musicianQueryLib.php dentro de la carpeta api. En ella dejaremos TODOS los SQLs necesarios para trabajar con la base de datos, entonces inicialmente tendremos 2, uno para cada mtodo de la clase Musician: Manual PHP 53 Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

a) SHOW_ALL_MUSICIANS b) SHOW_MUSICIANS Entonces, el archivo quedar:1 2 3 4 5 6 7 8 9

Este archivo mantendr las variables de la estructura $QUERY_INFO, ellos son simples strings con los queries requeridos por la clase Musician. Como han de notar, son los tpicos SQLs que podramos encontrar en cualquier sistema WEB (para un orden visual, se dejaron separadas las lneas por medio de comillas y puntos, lo tpico es separar, las sentencias SELECT, FROM, INNER JOIN, ORDER BY, GROUP BY, etc). El segundo Querie tiene como particularidad que contiene una variable llamada $this->MusicianID, esta variable es simplemente uno de los atributos que tiene la clase musician que se deni en su constructor. Con ella podremos condicionar la bsqueda a un msico en particular. 11. Ahora en el archivo index.php del directorio raz dejaremos el siguiente cdigo:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Las 6 primeras lneas representan las inclusiones a realizar en de los archivos, no se olviden de incluir el congSystem! y las clases. Luego en la lnea 8 instanciamos un objeto musician. En la lnea 9 llamamos al mtodo para obtener los datos de los usuarios y los almacenamos en la variable $matriz_datos. De la lnea 11 a 18 utilizamos el clsico recorrido matricial de las-columnas. Luego incluimos el footer. Manual PHP 54 Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

12. Para ir recapitulando las ultimas acciones veremos la estructura de archivos y directorios:

La funcin de cada directorio sera: Api: Mantendr todas las funciones y variables que pueden ser utilizadas por muchos archivos PHP, adems se dejarn los archivos de Queries hacia la base de datos. Class: Mantendr todas las clases que se utilizarn en el desarrollo de una aplicacin, para este caso tendremos la clase musician e instrument. Hasta el momento solo hemos editado la clase musician que tendr mtodos de retorno de datos de msicos. Cong: Mantendr los archivos que siempre se llamaran en casi todo archivo PHP, en esta carpeta estn los archivos de conguracin bsicos para la interactividad entre bases de datos y Apache. Se tienen adems los header y footer de los sitios.

Manual PHP

55

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

Y a modo de diagramas, la interaccin de los archivos con la base de datos y el navegador WEB quedara representada por lo siguiente:

Como se han de dar cuenta, los archivos de clases, conguracin y apis, NUNCA estn en contacto directo con el servidor Apache para ser mostrado al usuario. Esto conlleva una serie de ventajas, entre ellas estn las de seguridad y estandarizacin de desarrollo de aplicaciones. 13. Luego de este intermedio, veamos los resultados que retorna el index.php... Primero una foto de los datos de la base de datos en la tabla Msicos:

Manual PHP

56

Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

Y el resultado de la direccin http://127.0.0.1/fthApp que se v mediante Mozilla:

Parece que funciona :) Ahora simplemente editaremos el index.php para mostrar un msico con un ID en particular... Manual PHP 57 Eduardo Saavedra A.

5.10

Quinta aplicacin en PHP

5

UTILIZANDO PHP

Mostremos el msico con ID 7, entonces alteramos el index.php agregando las siguientes lneas despus de los encabezados y antes del instanciamiento de la clase musico:1 2 3 4 5 6

$Musico = new Musician(7); $musico7 = array_pop($Musico->getMusicianById()); echo "El Msico 7 es:".RTN; for($i=0; $j