Prado ori

20
TUTORIAL FRAMEWORK PRADO DAVID ANDRES QUINTANA GUZMÁN UNIVERSIDAD DEL CAUCA FACULTAD DE INGENIERIA ELECTRONICA Y DE TELECOMUNICACIONES PROGRAMA INGENIERIA DE SISTEMAS POPAYÁN, 31 DE MARZO DE 2014

description

sdfsdf

Transcript of Prado ori

  • 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