Está en la página 1de 22

PRADO

PRESENTADO A:
Ing. Libardo Pantoja

PRESENTADO POR:
Edwar Alejandro Giraldo

UNIVERSIDAD DEL CAUCA


INGENIERIA DE SISTEMAS
POPAYAN-CAUCA

TUTORIAL PRADO
ELABORACION DE UN CRUD

PRADO es una capa de programacin (framework) basada en componentes y programacin


dirigida por eventos, para desarrollo de aplicaciones Web en PHP 5. Las siglas PRADO significan en
espaol Desarrollo Rpido de Aplicaciones con Programacin Orientada a Objetos en PHP
(PHP Rapid Application Development Object-oriented).
El principal objetivo de PRADO es utilizar al mximo la reutilizacin en la programacin Web. Por
reusabilidad, queremos decir no solamente reutilizar el cdigo propio, si no el de otros
programadores de una manera fcil. Lo ltimo dicho es ms importante, ya que evita el esfuerzo
de reinventar nuevamente la rueda y adems posibilita disminuir notablemente los tiempos de
desarrollos. La introduccin al concepto de componentes tiene este propsito.
Para alcanzar el propsito mencionado, PRADO estipula un protocolo para escribir y usar
componentes para construir una aplicacin Web. Un componente es una pieza de programa que
es autocontenido y puede ser reutilizado con una mnima personalizacin del mismo. Nuevos
componentes pueden ser creados por una simple composicin de componentes existentes.
Para facilitar la interaccin con componentes, PRADO implementa el paradigma de la
programacin dirigida por eventos (event-driven) que permite la delegacin de comportamientos
extensibles a los componentes. Las actividades de los usuarios finales, tales como hacer clic en un
botn de un formulario, son capturados como eventos en el lado del servidor (server events).
Mtodos o funciones deben ser enlazadas a dichos eventos de tal manera que cuando los eventos
sucedan, estos son invocados automticamente para responder a dicho evento. Comparado con la
programacin Web tradicional en la cual los desarrolladores tienen que tratar directamente con
las variables de arreglo POST y GET, la programacin dirigida por eventos ayuda a los
desarrolladores enfocarse mejor en las necesidades lgicas y reducir significativamente el cdigo
de bajo nivel repetitivo (low-level repetitive coding).
En resumen, desarrollar aplicaciones Web con PRADO principalmente involucra instantneamente
tipos de componentes predesarrollados, configurarlos mediante sus propiedades, responder a sus
eventos escribiendo funciones manipuladoras de los mismos, y agrupndolos dentro de pginas
para la aplicacin. Es muy similar al Kit de herramientas RAD de Borland Delphi y Microsoft Visual
Basic, que son utilizadas para desarrollar aplicaciones (Interfaces Graficas de Usuarios, GUI) de
escritorio.

Caractersticas
La siguiente lista es un pequeo resumen de las caractersticas principales de PRADO,

Reutilizacin - Los cdigos que se rigen por el protocolo basado en componentes de


PRADO son altamente reutilizables. Esto beneficia a los equipos de desarrollo a largo
plazo, ya que pueden reutilizar sus trabajos anteriores e integrar otras partes de trabajo
con facilidad.
Programacin dirigida por eventos - Las actividades del usuario final, tales como como
hacer clic en un botn de enviar, son capturadas como eventos del servidor permitiendo
que los desarrolladores tengan un mejor enfoque en interacciones del usuario.
Integracin de equipo - La capa de presentacin y la capa lgica son almacenados por
separado. Las aplicaciones en PRADO pueden ser armadas por temas.
Controles web Potentes - PRADO viene con un conjunto de poderosos componentes que
se ocupan de interfaces de usuario Web. Altamente interactivo, se puede crear pginas
web con unas pocas lneas de cdigo. Por ejemplo, utilizando el componente DataGrid, se
puede crear rpidamente una pgina que presenta una tabla de datos que permite la
paginacin, la clasificacin, editar y eliminar filas de los datos.
Fuerte soporte de bases de datos - Desde la versin 3.1, PRADO ha sido equipada con total
soporte de bases de datos, escrita en forma nativa y, por tanto, encaja con el resto del
framework PRADO. De acuerdo a la complejidad de los objetos de negocio, se puede optar
por utilizar la PDO simple, basada en el acceso a los datos, o el ampliamente conocido
Active Record, o el mapa completo de los objetos del negocio SqlMap.
Soporte de AJAX sin fisuras - Uso de AJAX en PRADO nunca ha sido ms fcil con su
innovador Controles Activos (Active Controls) introducidos desde la versin 3.1. Puede
escribir una aplicacin AJAX sin escribir una sola lnea de cdigo javascript. De hecho, que
la utilizacin de los Controles Activos, no es muy diferente a la utilizacin de componentes
no-AJAX.
Soporte de I18N y L10N - PRADO incluye soporte completo para crear aplicaciones con
mltiples idiomas y la localizacin.
Compatibilidad XHTML - Las pginas Web generadas por PRADO son compatibles con
XHTML.
Albergar trabajos ya existentes - PRADO es un framework genrico, con especial atencin
a la capa de presentacin. No excluye a desarrolladores que hacen uso de la mayora de
las actuales bibliotecas de clase o juegos (kits) de herramientas. Por ejemplo, uno puede
usar ADOdb o Creole para tratar con base de datos en su aplicacin PRADO.
Otras caractersticas - Potente manipulacin de errores /excepciones y registro de
mensajes (message logging); cache genrico y memoria cach de salida selectiva; manejo
de errores personalizable y localizable; extensible autentificacin y autorizacin;
prevencin de medidas de seguridad tales como cross-site script (XSS) , proteccin de
cookies, etc.

Modelo Vista Controlador


La mayora de frameworks de PHP principalmente se centra en separar la presentacin y la lgica y
promueve el patrn de diseo MVC (modelo-vista-controlador). PRADO logra el mismo objetivo,
naturalmente, al exigir que la lgica se almacene en las clases y la presentacin en las plantillas.
PRADO hace mucho ms en otros aspectos distintos de MVC. Se llena de mucho espacio en blanco
en la programacin web en PHP, con su paradigma de programacin basada en componentes, la
riqueza de su conjunto de controles Web, su potente soporte de bases de datos, su flexible
manejo de errores y registro de mensajes, y muchos otros.
Instalacin
Lo primero que debemos hacer es ir a la pgina principal de Prado http://www.pradosoft.com y
descargar la ltima versin disponible en la pestaa Download, una vez bajada a tu computador,
se mostrara como un archivo .zip, este se descomprime en la carpeta htdocs de xampp, a la
carpeta que resulta de la descompresin del .zip, por razones de facilidad le cambiamos el nombre
a prado.
Ahora debemos agregar una nueva variable al path, para hacer esto damos click al men inicio, y
le damos click derecho a equipo, y seleccionamos propiedades, nos saldr la siguiente ventana.

Seleccionamos Configuracin avanzada del sistema, aparecer una ventana, donde damos click a
variables de entorno

En la lista de variables del sistema buscamos la variable path y le damos a editar y agregamos lo
que esta subrayado

Creacin de un nuevo proyecto


Para crear una estructura de trabajo en prado, abrimos una consola de Windows y vamos hasta el
directorio donde queremos guardar el proyecto. Para poder correr nuestro proyecto en nuestro
servidor local en este caso xampp, debemos guardarlo en la carpeta htdocs.

Una vez estamos ubicados en el directorio ejecutamos la siguiente lnea en la consola de Windows

Remplazamos nombre_proyecto por el nombre que le queremos dar al proyecto para este
ejemplo ser libreria
Si la lnea esta bien escrita aparecern los siguientes mensajes

Ya tenemos el esqueleto de nuestro proyecto, este es la estructura que tiene

Ahora tenemos un esqueleto de la aplicacin PRADO accesible a travs de la URL


http://localhost/demo/index.php que nos lleva a una pgina Web que muestra en ingles
"Bienvenido a PRADO".

Revisemos el esqueleto del proyecto


Definimos como la carpeta principal a "nombre_proyecto" con el nombre del proyecto que
estamos realizando, de esta se desprenden carpetas hijas: "assets", "protected".
"assets", guarda todos los archivos privados que deseas hacer pblicos por instruccin en
el cdigo fuente de tu aplicacin, de manera que sern visibles por todos desde el navegador.
"protected", es el directorio principal de tu aplicacin, principalmente se utiliza para guardar
scripts privados e informacin que no ser visible para los usuarios finales.
"runtime", no te preocupes por este directorio nunca, pues jams le pondrs una mano encima
pero no por ello debes dejar de saber en que consiste, "runtime" conserva toda la informacin
generada a la hora de correr la aplicacin, data cacheada, estado, etc. Es fundamental que este
directorio
pueda
ser
escrito
por
Apache.
"pages", como su nombre lo indica mantiene todas los .pages y .php que generaras una vez vayas
escribiendo tu aplicacin.
Adems de la estructura creara los archivos cuya funciones se explican a continuacin:
"index.php", este es el script inicial de Prado y es requerido por todas las aplicaciones escritas
usando el Framework de la misma manera es el nico script que es visible por los usuarios finales y
a travs de l se accesan las otras pginas.

"Home.page", es la plantilla que por defecto es devuelta al navegador cuando no hacemos una
peticin especifica, en los archivos .page colocaremos el cdigo HTML en conjunto con los
controles con los que necesitamos interactuar.
"Home.php", es la pgina con las instrucciones que ejecutaremos dependiendo a las llamadas de
los eventos de los controles que coloquemos en los .page, contiene la clase para dicha
pagina as mismo contiene el mtodo que dar respuesta a cualquier evento llamado por los
objetos antes mencionados.
application.xml, contiene la configuracin de la aplicacin. Su principal objetivo es personalizar
de una forma configurable la instancia de aplicacin creado en el script de entrada.

EL CRUD
Ya sabemos como crear un proyecto y conocemos la estructura de este, ahora vamos hacer
nuestro proyecto, este consistir en un crud de libros.
Base de datos
Para nuestro crud de libro vamos a utilizar una base de datos que va tener el siguiente modelo

Xampp ya nos provee de un motor de base de datos llamado MySql, podemos acceder a el
escribiendo en el navegador http://localhost/phpmyadmin/, aqu podremos crear nuestra base de
datos, para nuestro ejemplo la llamamos libreria y ejecutamos el siguiente script.

drop table if exists LIBRO;


drop table if exists EDITORIAL;
create table EDITORIAL
(
CODIGO_EDITORIAL int not null AUTO_INCREMENT,
NOMBRE
varchar(20),
PAIS
varchar(20),
primary key (CODIGO_EDITORIAL)
);
create table LIBRO
(
CODIGO_EDITORIAL

int,

ISBN
int not null,
TITULO
varchar(50),
ANIO
int,
RESUMEN
varchar(1000),
primary key (ISBN)
);
alter table LIBRO add constraint FK_RELATIONSHIP_1 foreign key (CODIGO_EDITORIAL)
references EDITORIAL (CODIGO_EDITORIAL) on delete cascade on update cascade;

INSERT INTO `editorial` (`nombre`, `pais`) VALUES('Norma', 'Colombia');


INSERT INTO `editorial` (`nombre`, `pais`) VALUES('Amat', 'China');
INSERT INTO `editorial` (`nombre`, `pais`) VALUES('Rino', 'Mexico');
INSERT INTO `editorial` (`nombre`, `pais`) VALUES('Planeta', 'Colombia');
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(15246,'Enemigos',2012,'la historia definitiva del FBI.',1);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(123565,'Perseguidos por el paraiso',2013,'Por que la
sociedad contemporanea requiere de las drogas? Hacia donde nos dirigimos: al cielo o al infierno? El uso de las drogas crea la
expectativa de superar la desdicha y propiciar una felicidad casi paradisiaca.',1);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(132255,'Una vacante imprevista',2000,'Con su plaza
adoquinada y su antiquisima abadia, Pagford Parece un tipico pueblecito ingles, un lugar idilico en el que la vida transcurre con placida
tranquilidad.',1);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(632589,'Pasaporte a la reinvencion',2012,'Un libro sobre
la busqueda de uno mismo, la brevedad de la vida y la necesidad de corregir cuando entramos en caminos que no son los propios. Un
relato que facilita al lector la identificacion con la protagonista y con lo que le sucede',2);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(154789,'101 cosas que ya sabes, pero siempre
olvidas',2010,' Este libro trata de esas cosas verdaderamente importantes que todos nosotros ya hemos aprendido, pero por alguna
misteriosa razon seguimos olvidando.',2);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(623015,'Pensar como Einstein',2007,'puede aprender los
trucos y tecnicas utilizadas por Albert Einstein y otras grandes mentes para resolver problemas desconcertantes',2);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(000036,'Limpiando Millones',2008,'',3);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(625896,'Las Cartas William Campbell Douglass',2008,'',3);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(666322,'Por que fracasan los paises',2012,'Por que una
nacion es rica y la otra, pobre?',4);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(753264,'Por que le pasan cosas malas a la gente
buena?',2011,'Un libro lleno de testimonios, conocimientos, gozo y esperanza, que ha ayudado a entender , sanar y cambiar la vida me
muchas personas , como tambien se sus familias.',4);
INSERT INTO `libro`(`isbn`,`titulo`,`anio`,`resumen`,`codigo_editorial`)VALUES(36589,'La noche en que Frankenstein leyo el
Quijote',2012,'Que libro perseguia el KGB? Que novela oculto Hitler? Quien penso en el orden alfabetico para organizar los libros? Que
autor burlo al indice de libros prohibidos de la Inquisicion? Estos y otros enigmas literarios encuentran respuesta en las paginas de La
noche en que Frankenstein leyo el Quijote',4);

Estableciendo conexin con la Base de Datos


Para utilizar la base de datos que acabamos de crear, primero tenemos que establecer una
conexin con ella.
Vamos a utilizar Data Access Objects (DAO) para abstraer los mecanismos de acceso a datos. Si en
el futuro se decide utilizar un DBMS diferente (por ejemplo, PostgreSQL, Oracle, etc.) para
almacenar nuestros datos, slo tenemos que cambiar el nombre de la fuente de base de datos y
podemos mantener nuestro cdigo PHP intacto.

Modificamos nuestro archivo de configuracin de la aplicacin protected/ application.xml


mediante la insercin de las siguientes lneas, que le dice a Active Record cmo conectarse a la
base de datos recin creada:
<modules>
<module id="db" class="System.Data.TDataSourceConfig">
<database ConnectionString= "mysql:host=localhost;dbname=libreria" username="root"
password="" />
</module>
<module class="System.Data.ActiveRecord.TActiveRecordConfig" ConnectionID="db" />
</modules>

La configuracin anterior muestra que estamos aadiendo dos mdulos a nuestra aplicacin. El
TDataSourceConfig
mdulo
est
configurado
con
la
cadena
de
conexin
"mysql:host=localhost;dbname=libreria" username="root" password="" que apunta a nuestra
base de datos. Esta conexin es utilizada por el TActiveRecordConfig mdulo que es requerido por
Active Record.
Creacin de clases de Active Record
Tenemos que crear dos Active Record clases, LibroRecord y EditorialRecord , para representar los
registros de datos de los Libro y la Editoriales respectivamente. Clases de Active Record que se
extienden desde la base de la clase ActiveRecord , y debe definir los nombres de propiedades que
coinciden con los nombres de los campos de la tabla correspondiente.
Para organizar mejor nuestros directorios, creamos una nueva carpeta Clases en el directorio
protected de nuestro proyecto, para almacenar los archivos de clase. Tambin modificar nuestra
configuracin de la aplicacin mediante la insercin de las siguientes lneas. Es equivalente a
agregar el directorio protected/Clases al include_path de PHP, lo que nos permite utilizar las
clases.
<paths>
<using namespace="Application.Clases.*" />
</paths>

En lugar de escribir las clases de forma manual, vamos a utilizar la herramienta de lnea de
comandos PRADO, para generar las clases.
Para hacer uso de el Active record abrimos la consola de Windows y vamos al directorio del
proyecto y ejecutamos la siguiente lnea de comando
Php C:\xampp\htdocs\prado\framework\prado-cli shell.

Como vemos en la imagen aparece un men, aqu ejecutamos las siguiente lnea de comando
generate libro Application.Clases.LibroRecord y generate editorial Application.Clases.EditorialRecord
Si fueron ejecutadas bien las lneas anteriores deben aparecer los siguientes mensajes

Ahora vamos a nuestro proyecto y vemos que estn creadas nuestras clases

En el archivo LibroRecord.php vemos las siguientes lneas de cdigo

Aadimos las siguientes lneas de cdigo

Una vez establecida la conexin y creadas las clases records, el objetivo es gestionar los datos de la
base de datos, para ello se debe crear una estructura similar a esta

Donde se debern crear tanto las paginas .page como las .php de cada uno de los mtodos del
crud.
Esto es lo que llevara cada pgina:
listarLibros.page

listarLibros.php

Nuevo.page

Nuevo.php

Modificar.page

Modificar.php

Eliminar.page

Eliminar.php

MasterPage
Este proyecto fue realizado utilizando un masterpage, ahora vamos a ver el proceso para incluirla
un nuestro proyecto
1. Descargue una plantilla de este link http://www.mediafire.com/?cn0ucep7h8e7eg7 donde
se guarda un .rar llamado template
Este archivo contiene los siguientes archivos

2. Ahora vamos a crear dos capetas la primera es img que la creamos en el directorio raz del
proyecto, aqu copiamos el contenido de la carpeta img del .rar y la otra es templates que
la creamos en la carpeta protected en esta copiamos el archivo Masterpage.tpl, la
estructura del proyecto queda as

Donde la carpeta templates almacenar la informacin de la plantilla descargada, a la cual


le llamaremos MasterPage.

3. Ahora creamos el archivo Masterpage.php en la carpeta templates y colocamos lo


siguiente

4. En aplicacin.xml se copian las siguientes lneas de cdigo, para hacer el llamado a la


carpeta templates y a la carpeta clases que contendr las clases de las tablas de la base de
datos.

5. En la carpeta pages se crean los siguientes archivos:


Home.page este archivo se modifica con la siguiente informacion:

Home.php

6. Esta es la vista final de la pagina

Referencias

http://www.pradosoft.com/demos/quickstart/index.php?page=GettingStarted.AboutPrad
o&notheme=true&lang=es
http://www.pradosoft.com/demos/quickstart/
http://www.pradosoft.com/demos/blog-tutorial/
http://www.pradosoft.com/documentation/
http://www.xisc.com/
http://pradolabs.blogspot.com/

También podría gustarte