prado ori
Post on 05-Sep-2015
216 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
TUTORIAL FRAMEWORK PRADO
DAVID ANDRES QUINTANA GUZMN
UNIVERSIDAD DEL CAUCA
FACULTAD DE INGENIERIA ELECTRONICA Y DE TELECOMUNICACIONES
PROGRAMA INGENIERIA DE SISTEMAS
POPAYN, 31 DE MARZO DE 2014
-
INTRODUCCION
En este documento realizaremos un CRUD para detallar ms a fondo el framework PRADO.
Qu es un framework?
La palabra inglesa framework define, en trminos generales, un conjunto estandarizado de conceptos,
prcticas y criterios para enfocar un tipo de problemtica particular, que sirve como referencia para
enfrentar y resolver nuevos problemas de ndole similar.
Para aplicaciones web nos estamos refiriendo a una estructura software compuesta de componentes
personalizables e intercambiables para el desarrollo de una aplicacin. En otras palabras, un framework
se puede considerar como una aplicacin genrica incompleta y configurable a la que podemos aadirle
las ltimas piezas para construir una aplicacin concreta.
Qu es PRADO?
Son las siglas de PHP Rapid Application Development Object-oriented en espaol Desarrollo Rpido de Aplicaciones con Programacin Orientada a Objetos en PHP.
Es una capa de programacin (framework) abierta, orientada a objetos, basada en componentes y programacin dirigida por eventos, para desarrollos de aplicaciones Web en PHP 5. El principal objetivo de PRADO es utilizar al mximo la reutilizacin en la programacin Web, es decir, reusar el cdigo propio o el de otros programadores, lo que nos llevara a un tiempo menor de desarrollo.
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 auto contenido y puede ser reutilizado con una mnima personalizacin del mismo.
Para facilitar la interaccin con componentes, PRADO implementa el paradigma de la programacin dirigida por eventos (ayuda a los desarrolladores enfocarse mejor en las necesidades lgicas y reducir significativamente el cdigo de bajo nivel repetitivo) que permite la delegacin de comportamientos extensibles a los componentes.
En resumen, desarrollar aplicaciones Web con PRADO principalmente involucra instantneamente tipos de componentes pre desarrollados, 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:
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. Pginas web altamente interactivas se puede crear con unas pocas lneas de cdigo.
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: El uso de AJAX en PRADO nunca ha sido ms fcil con su innovador Controles Activos (Active Controls). Puede escribir una aplicacin AJAX sin escribir una sola lnea de cdigo javascript. De hecho, 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.
Otras caractersticas: Potente manipulacin de errores /excepciones y registro de mensajes; cache genrico y memoria cach de salida selectiva; manejo de errores personalizable y localizable; extensible autentificacin y autorizacin; prevencin de medidas de seguridad, proteccin de cookies, etc.
Requerimientos:
PHP 5.3.3 o mayor
Debes tener un ambiente de desarrollo PHP, un servidor y un motor de base de datos, en este
caso se va a usar XAMPP porque nos presta los 3 servicios.
-
TUTORIAL
Instalacin de XAMPP
Este software puede ser descargado gratuitamente en http://www.apachefriends.org/index.html , para
facilidad de manejo lo instalaremos en C:
Ahora debemos agregar una nueva variable path, para esto hacemos lo siguientes pasos:
Inicio>equipo (click derecho)>propiedades
Ahora hacemos click en Configuraciones avanzadas del sistema, y obtendremos un menu, en este men
seleccionaremos la pestaa Opciones Avanzadas y luego Variables de entorno
Ahora en la lista de variables buscamos el variable path y la vamos a modificar aadindole
C:\xampp\php\, esto lo hacemos de la siguiente manera
-
Instalacin del Framework
El instalador est disponible en http://www.pradosoft.com/download/ , aqu podemos encontrar todas
las versiones de este framework, en este caso, vamos a trabajar con la versin 3.2.1.
Al terminar la descarga tendremos un archivo .zip, este archivo lo debemos llevar a C:\xampp\htdocs y
aqu lo descomprimimos, para mayor facilidad de manejo, a la carpeta que resultante la renombraremos
prado, teniendo como resultado lo siguiente:
Y as hemos terminado la instalacin del framework.
Creacin de un Nuevo Proyecto
La creacin de un nuevo espacio de trabajo en PRADO se hace por medio de la consola, debemos
ubicarnos en el lugar donde queremos guardar nuestro proyecto, en nuestro caso para correr nuestra
aplicacin en el servidor local brindado por XAMPP, debemos gurdalo en la carpeta htdocs.
-
Para la creacin de nuestro proyecto usamos la siguiente lnea
En este caso biblioteca ser el nombre de nuestro proyecto, el resultado de este comando ser:
Como resultado tendremos lo siguiente:
-
Dentro de la carpeta del proyecto encontraras dos carpetas (assets y protected), y el index.php, aqu una
breve descripcin de los componentes generados:
Index.php: cdigo de entrada para la aplicacin en Prado. Este fichero es necesario para todas las
aplicaciones.
Assets: almacena archivos privados publicados.
Protected: aqu se almacenarn los archivos que sern usados.
Runtime: se almacena la informacin runtime de la aplicacin, as como su estado, este directorio debe
tener acceso de escritura por el servidor web.
Pages: aqu se almacenan todas las pginas de Prado.
Home.page: Plantilla de la pgina. La misma describe la posicin de los componentes.
Application.xml: contiene la configuracin de la aplicacin, su objetivo es personalizar de una forma
configurable la instancia de aplicacin creada en el script de entrada.
Aqu ya tenemos nuestro proyecto creado, para verificar esto puedes abrir la aplicacin desde tu
navegador preferido, si todo sali bien este sera tu resultado
Creacin del CRUD
Lo primero que debemos hacer es iniciar el APACHE y el mySQL en XAMPP
-
Base de datos
La base de datos ser creada en mySQL por medio de XAMPP, para ello debemos ingresar a phpmyadmin,
componente que no ayudara con este proceso
Creamos una base de datos llamada biblioteca, la seleccionamos y luego seleccionamos la pestaa SQL,
en el recuadro escribimos el siguiente script, y as obtendremos nuestra base de datos creada
satisfactoriamente.
create table MATERIA (
CODIGO_MATERIA int not null AUTO_INCREMENT,
NOMBRE varchar(20),
primary key (CODIGO_MATERIA)
);
create table LIBRO (
ISBN int not null,
TITULO varchar(50),
RESUMEN varchar(1000),
CODIGO_MATERIA int,
primary key (ISBN)
);
alter table LIBRO add constraint FK_RELATIONSHIP_1 foreign key (CODIGO_MATERIA)
references MATERIA (CODIGO_MATERIA) on delete cascade on update cascade;
-
En la parte izquierda podemos ver cmo queda la base de datos creada.
Ahora para realizar la conexin a la base de datos usaremos el componente Objeto de Acceso a Datos, o
DAO por sus siglas en ingls (Data Access Object), el uso de este componente nos garantiza que el cambio
de motor de almacenamiento de datos no influir en nuestro cdigo PHP.
Para realizar la configuracin debemos modificar el archivo application.xml que se encuentra ubicado en
C:\xampp\htdocs\biblioteca\protected, esta modificacin consta de aadir dos mdulos que se
encargaran de decirle al Active Record a que base de datos debe conectarse, los mdulos a agregar son
los siguientes:
Para representar los registros de los datos debemos de crear dos clases Active Record, estas clases se extendern de la base de la clase ActiveRecord y debern definir los nombres de propiedades que coinciden con los nombres de los campos de la tabla correspondiente, esto se har siguiendo lo explicado a continuacin.
Creacin de clases de Active Record
Primero, para simplificar el manejo, crearemos un nuevo directorio en la carpeta /protected, lo
llamaremos Clase, posteriormente le agregaremos este directorio a la configuracin de la aplicacin.
Para agregar el directorio al path, aadiremos el siguiente cdigo al archivo application.xml.
Teniendo en cuenta los mdulos que se colocaron para configurar la base de datos y la agregacin
del anterior path, el archivo application.xml se encontrara de la siguiente forma:
-
Para la creacin de estas clases haremos uso del framework, abramos una consola de Windows,
vayamos al directorio del proyecto y ejecutemos el siguiente comando
php C:\xampp\htdocs\prado\framework\prado-cli shell.
Este ser el resultado si fue exitosa la ejecucin:
Para la generacin de cada una de las clases, escribimos el comando
php C:\xampp\htdocs\prado\framework\prado-cli shell .
NOTA: Entre la palabra Shell y el punto hay un espacio.
Para abrir el Shell en la carpeta protected y usamos los respectivos comandos:
generate libro Application.Clases.LibroRecord
generate material Application.Clases.MateriaRecord
-
Los archivos creados por el framework, LibroRecord y MateriaRecord, quedaran de la siguiente forma
respectivamente:
-
Para aadir la relacin que existe entre la tabla materia y la tabla libro, debemos agregar las
siguientes lneas al PHP LibroRecord:
public $materia; //tiene MateriaRecord
public static $RELATIONS=array
{
'editorial' => array(self::BELONGS_TO, ''MateriaRecord)
}
Y las siguientes a MateriaRecord:
public $libros=array();// tiene un array de libros
public static $RELATIONS=array
(
'libros' => array(self::HAS_MANY, 'LibroRecord'),
);
Continuando con nuestro proceso, para la gestin de los datos de la base de datos Se debern crear
tanto los .php como los .page.
MATERIA LIBRO
Como objeto de estudio miraremos a fondo cada uno de los archivos pertenecientes a las materias
Nuevo.page
-
Agregar Materia
Nuevo.php
-
}
}
?>
Modificar.page
Modificar Materia
Modificar.php
-
//Si no se encuentra la materia lanzamos una excepcion
if($this->materia==null){
throw new THttpException(500,'No existe la materia');
}else{
//si se encuentra la materia cargamos los datos en los objetos de la pagina
$this->nombretxt->Text=$this->materia->NOMBRE;
}
}
//Esta funcion inicia al dar click al boton modificar
function btn_modificar_clicked ($sender, $param){
// si pasamos las validaciones de los objetos de la pagina
if($this->isValid){
//buscamos la materia por id y los guardamos en un objeto
$edit = MateriaRecord::finder()->findByPk($this->materia->CODIGO_MATERIA);
//modificamos los datos del objeto
$edit->NOMBRE=$this->nombretxt->Text;
//guardamos el objeto llamando la funcion del Active Record
$edit->save();
//redireccionamos
$url=$this->Service->constructUrl('materia.listarMaterias');
$this->Response->redirect($url);
} }
}
?>
Eliminar.page
-
Eliminar Materia
Eliminar.php
-
$edit = MateriaRecord::finder()->findByPk($this->materia->CODIGO_MATERIA);
//llamamos la funcion heredada del Active record que borra el objeto de la base de datos
$edit->delete();
//redireccionamos a la pagina de consulta
$url=$this->Service->constructUrl('materia.listarMaterias');
$this->Response->redirect($url); } }
?>
listarMaterias.page
Materias
-
listarMaterias.php
-
//construimos el url
$url=$this->Service->constructUrl('materia.Eliminar',array('id'=>$id));
//enviamos
$this->Response->redirect($url);
}
}
?>
Ahora, para no tener que crear la estructura de cada vista vamos a usar MasterPage, para esto lo
primero que debemos hacer es descargar el template de su gusto, en nuestro caso
http://www.mediafire.com/?cn0ucep7h8e7eg7 .
los archivos contenidos en el .rar que se acaba de descargar l odebemos dsitribuir de la siguiente manera:
la carpeta img la vamos a copiar en el directorio assets y el archivo .tpl lo guardaremos en un directorio
llamado templates que crearemos en el directorio protected, aqu mismo crearemos el siguiente php:
Y lo nombraremos Masterpage.php
Ahora debemos aadir los path de eso que acabamos de hacer, como resultado el archivo
application.xml quedara conformado de la siguiente manera:
-
Por ultimo creamos el respectivo php para la pgina de inicio home.page y agregamos un mensaje de
bienvenida.
Home.page
Bienvenidos!!!
Esta pgina ha sido diseada con el framework Prado, cada una de las
pestaas de la izquierda te direcciona a una vista.
REFERENCIAS
http://www.youtube.com/watch?v=iQLAWwqbXuw
http://www.pradosoft.com/documentation/
http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf
https://www.youtube.com/watch?v=_IImgcAXsg8
top related