Sei sulla pagina 1di 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/

Potrebbero piacerti anche