Sunteți pe pagina 1din 29

FlavorPHP versin 1.

0 o Manual
because PHP should have a better taste http://www.avorphp.com/ c 2008-2011 avorphp.com

Indice general
1. FlavorPHP 1.1. Introduccin . . . . . . . . . . . . . . . . . . . . o 1.1.1. Sobre FlavorPHP . . . . . . . . . . . . . 1.1.2. Prerrequisitos de FlavorPHP . . . . . . 1.1.3. Instalacin de FlavorPHP . . . . . . . . o 1.2. Iniciando con FlavorPHP . . . . . . . . . . . . 1.2.1. Patrn de diseo MVC ( Modelo - Vista o n 1.2.2. Estructura de FlavorPHP . . . . . . . . 1.2.3. Conguracin de FlavorPHP . . . . . . o 1.2.4. Librer de terceros en FlavorPHP . . . as 2. MVC (Modelo-Vista-Controlador) 2.1. Implementando con MVC . . . . . 2.2. Conceptos del MVC . . . . . . . . 2.3. URLs en FlavorPHP (routing) . . 2.3.1. Llamar al controlador index 2.3.2. Invocar a los mtodos index e 2.4. Hola mundo con FlavorPHP . . . . 3. Mi primera aplicacin con Flavor o 3.1. Introduccin . . . . . . . . . . . . . o 3.2. El modelo de datos . . . . . . . . . 3.2.1. Crear la BD . . . . . . . . . 3.2.2. Crear el modelo . . . . . . . 3.3. Crear los controladores y las vistas 3.3.1. Usando un modelo desde un 3.3.2. Crear la vista . . . . . . . . 3.3.3. Agregar enlace . . . . . . . 3.3.4. Editar enlace . . . . . . . . 3.3.5. Eliminar enlace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 10 10 10 11 11 11 11 11 14 15 16 16 16 17 17 18 21 22 22 23 23 24 24 24 26 26 27

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL

Indice de cuadros
1.1. Estructura de directorios . . . . . . . . . . . . . . . . . . . . . . . 1.2. Archivo de conguracin . . . . . . . . . . . . . . . . . . . . . . . o 3.1. Campos en la tabla bookmarks . . . . . . . . . . . . . . . . . . . 12 13 22

INDICE DE CUADROS

Indice de cdigos fuente o


1.1. cong.php . . . . . . . . . . . . . . 1.2. Saludo de Hola . . . . . . . . . . . 2.1. saludo controller.php . . . . . . . . 2.2. Controlador saludo incorrecto . . . 2.3. vista index del controlador saludo . 2.4. Controlador saludo correcto . . . . 2.5. Mtodo hola . . . . . . . . . . . . . e 2.6. Vista del mtodo hola . . . . . . . e 3.1. Tabla bookmarks . . . . . . . . . . 3.2. Modelo bookmarks . . . . . . . . . 3.3. Bookmarks - index controller.php . 3.4. Seleccionar todos . . . . . . . . . . 3.5. La vista del index . . . . . . . . . . 3.6. La vista con operaciones de CRUD 3.7. Agregar enlace . . . . . . . . . . . 3.8. Agregar enlace . . . . . . . . . . . 3.9. Editar enlace . . . . . . . . . . . . 3.10. Vista editar enlace . . . . . . . . . 3.11. Eliminar enlace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 14 18 18 19 19 19 19 23 23 24 24 24 25 26 26 27 27 27

INDICE DE CODIGOS FUENTE

Cap tulo 1

FlavorPHP

10

CAP ITULO 1. FLAVORPHP

1.1.

Introduccin o

Este manual esta basado en la versin 1.0 de FlavorPHP. o FlavorPHP es un framework PHP5 (con licencia MIT) basado en el paradigma MVC jerrquico (HMVC, por sus siglas en ingls Hierarchical-Modela e View-Controller ), FlavorPHP fue creado por Pedro Santana [http://www.pecesama.net/ ] y actualmente cuenta con el siguiente equipo de desarrollo: Pedro Santana. L der del proyecto. [ http://www.pecesama.net/ ] Victor Bracco. Desarrollador. [ http://victorbracco.com/ ] Victor de la Rocha. Desarrollador [ http://www.mis-algoritmos.com/ ] Jorge Condomi. Desarrollador [ http://www.jorgecondomi.com/ ] Aaron Munguia. Desarrollador Pablo Cendejas. Administrador de la documentacin. o

1.1.1.

Sobre FlavorPHP

Como ya se mencion anteriormente FlavorPHP es un framework MVC o jerrquico desarrollado en PHP5, el cual surge en base a la experiencia previa a de sus autores en el desarrollo de proyectos Web 2.0 (algunos ejemplos de estos proyectos http://gelatocms.com/ y http://sabros.us/), esta basado en las mejores prcticas de desarrollo web, proveyendo eciencia en la creacin y en el a o mantenimiento de aplicaciones Web. FlavorPHP incluye las siguientes caracter sticas: Separacin de la aplicacin en diferentes capas. o o Sistema de plantillas (themes) y vistas fcil de usar. a Uso del patrn Active Record para implementar ORM. o Desarrollo de aplicaciones multi-idiomas. Sistema de paginacin de datos rpido de implementar. o a Soporte para AJAX y efectos JavaScript usando jQuery.

1.1.2.

Prerrequisitos de FlavorPHP

FlavorPHP tiene un nmero muy pequeo de prerrequisitos pero que deben u n cumplirse para que funcione correctamente, estos se listan a continuacin: o PHP5 (recomendado 5.2). Servidor Web Apache con mod rewrite instalado. Servidor de Base de Datos MySQL.

1.2. INICIANDO CON FLAVORPHP

11

1.1.3.

Instalacin de FlavorPHP o

FlavorPHP es distribuido en un paquete descargable desde su sitio web http://www.avorphp.com/. Este paquete debe descomprimirse completo en el directorio deseado de su servidor web. El directorio creado puede ser renombrado al nombre que desee, por ejemplo el nombre del proyecto, o bien puede descomprimir FlavorPHP directamente al directorio ra de su servidor web. z

1.2.

Iniciando con FlavorPHP

Para iniciar a crear nuestros proyectos con FlavorPHP, debemos primero conocer su estructura y como congurarlo.

1.2.1.

Patrn de dise o MVC ( Modelo - Vista - Controo n lador )

En 1979, Trygve Reenskaug desarroll una arquitectura para crear aplicao ciones interactivas. En este diseo existian tres partes: modelos, vistas y conn troladores. El modelo MVC permite hacer la separacin de las capas de interfaz, modelo o y lgica de control de esta. FlavorPHP esta desarrollado utilizando este patrn o o de diseo, por lo cual cuenta con una estructura de directorios especial, la cual n analizaremos a continuacin. o

1.2.2.

Estructura de FlavorPHP

Una vez instalado FlavorPHP veremos una estructura de directorios especial. El contenido que tiene cada directorio se analiza en la tabla 1.1 Al respetar y seguir esta estructura de archivos y derectorios podremos crear nuestra aplicacin usando convencin sobre conguracin, de esta forma al tener o o o todo en su lugar es ms sencillo encontrar problemas y mantener la aplicacin a o de forma rpida y sencilla. a

1.2.3.

Conguracin de FlavorPHP o

FlavorPHP esta pensado para que se tenga que congurar lo menor posible, por lo que todas las conguraciones las encontraremos en un mismo archivo ./cong.php (ver listado 1.1). En este archivo conguraremos nuestra conexin o al servidor de Bases de Datos, as como la ruta base de nuestro proyecto. Cdigo 1.1: cong.php o // r e q u i e r e de BD define ( r equir esBD , true ) ; // c o n e c t o r de BD. define ( DB Engine , m y s q l i ) ;

12

CAP ITULO 1. FLAVORPHP

Cuadro 1.1: Estructura de directorios Directorio controllers avor languages libs models views .htaccess cong.php index.php Contenido Este directorio contendr todos nuestros cona troladores. Este directorio contiene el nucleo de FlavorPHP. Este directorio contendr las traducciones de a nuestra aplicacin. o Este directorio contendr todas las librer a as externas a FlavorPHP Este directorio contendr todos nuestros moa delos. Este directorio contendr todas nuestras visa tas. Este archivo se encarga del hacer el ruteo de nuestra aplicacin. o Este archivo contendr la conguracin de a o nuestra aplicacin. o Este archivo es el punto de entrada a nuestra aplicacin (no debe modicarse). o

1.2. INICIANDO CON FLAVORPHP // s e r v i d o r de BD. define ( DB Server , l o c a l h o s t ) ; // nombre de l a BD. define ( DB name , nombreBD ) ; // u s u a r i o de l a BD. define ( DB User , usuarioBD ) ; // c o n t r a s e n a d e l u s u a r i o de l a BD. define ( DB Password , contrase n aBD ) ; define ( DB Port , f a l s e ) ; // p u e r t o // r u t a b a s e d e l p r o y e c t o . define ( Path , http : / / l o c a l h o s t / f l a v o r ) ; En la tabla 1.2 se describen los valores del archivo de conguracin. o Cuadro 1.2: Archivo de conguracin o Valor requiresBD DB Engine Descripcin o Dene si requiere de una base de datos (true, false). Tipo de motor de base de datos. Dependiendo de su valor es la conexin que se generar 1 . o a Nombre del equipo o IP donde se encuentra el servidor de base de datos. (generalmente es localhost o 127.0.0.1 ). Nombre de la base de datos que contrendr el a proyecto. Usuario para conectarse a la base de datos. Contrasea de usuario para conectarse a la ban se de datos. Nmero de puerto para la conexin (si es neu o cesario). Ruta base del proyecto.

13

DB Server

DB name DB User DB Password DB Port Path

Una vez que hemos modicado nuestro ./cong.php con la informacin de o conguracin de nuestro proyecto, estamos creca de poder comenzar a desarroo llar con FlavorPHP, pero antes de eso veamos como hacer uso de librer de as clases externas a nuestro framework.

14

CAP ITULO 1. FLAVORPHP

1.2.4.

Librer de terceros en FlavorPHP as

Si deseamos incluir nuestras propias (o de terceros) clases en nuestro proyectos y que FlavorPHP las detecte de forma automtica 2 , podemos hacerlo a dentro de la carpeta ./libs. Para esto basta con seguir la siguiente convencin: o Crear (o descargar) nuestra clase. Llamar (o renombrar) el archivo de nuestra clase como nombre clase.class.php. Mover el archivo de nuestra clase a la carpeta ./libs. Por ejemplo, tenemos una clase que al crearse regresa una cadena con el (ver listado 1.2) valor de Hola Cdigo 1.2: Saludo de Hola o c l a s s hola { public function construct () { r e t u r n Hola ; } } Para poder usar esta clase en FlavorPHP debemos llamarla hola.class.php y guardarla dentro de la carpeta ./libs, es decir quedar ./libs/hola.class.php. Si a seguimos esta convencin ya no ser necesario utilizar include o require dentro o a de nuestro proyecto. Ahora s estamos listos para comenzar a programar utilizando FlavorPHP. ,

2 solo

detecta clases, no archivos de funciones.

Cap tulo 2

MVC (Modelo-Vista-Controlador)

15

16

CAP ITULO 2. MVC (MODELO-VISTA-CONTROLADOR)

2.1.

Implementando con MVC

Antes de continuar, entendamos un poco ms el patrn de dise o MVC (Moa o n delo - Vista - Controlador). Como se mencion en el cap o tulo anterior, el modelo MVC permite hacer la separacin de las capas de interfaz, modelo y lgica de o o control de esta. La programacin por capas es un estilo de programacin en la o o que el objetivo primordial es la separacin de la lgica de negocios de la lgica o o o de diseo, un ejemplo bsico de esto es separar la capa de datos de la capa de n a presentacin al usuario. La ventaja principal de este estilo, es que el desarrollo o se puede llevar a cabo en varios niveles y en caso de algn cambio slo se ataca al u o nivel requerido sin tener que revisar entre cdigo mezclado. La divisin en capas o o reduce la complejidad, facilita la reutilizacin y acelera el proceso de ensamblar o o desensamblar alguna capa, o sustituirla por otra distinta.

2.2.

Conceptos del MVC

El nucleo de FlavorPHP es el MVC, un patrn de dise o muy popular que o n funciona en tres capas: Modelos: Representan los datos que utiliza nuestra aplicacin, es decir o su lgica de negocios. o Vistas: Visualizan el modelo e interactuando con los usuarios de estas. Controladores: Obtiene las acciones de los usuarios e invocan cambios en las vistas o en los modelos segn sea necesario. u Cuando un usuario realiza una peticin a nuestra aplicacin Web, esta peo o ticin es hecha utilizando el protocolo HTTP, FlavorPHP redirecciona esta o peticin enviandola directamente a su respectivo controlador. Los controladores o pueden interactuar con los modelos y llamar a las vistas (interfaces de usuario), estas ultimas se muestran al usuario respondiendo a la peticin inicial. o

2.3.

URLs en FlavorPHP (routing)

FlavorPHP utiliza una convencin especial en sus URLs para que funcionen o nuestras aplicaciones y permitir el acceso a los controladores y sus acciones. Por ejemplo: http://localhost/saludo/hola/pedro/ De la URL anterior obtenemos: Nuestra aplicacin esta instalada en: http://localhost/. o FlavorPHP invocar al controlador llamado saludo. a

2.3. URLS EN FLAVORPHP (ROUTING) FlavorPHP ejecutar el mtodo hola del controlador saludo. a e

17

FlavorPHP pasar al mtodo hola del controlador saludo el parmetro a e a pedro. Como podemos notar, los URLs en FlavorPHP se componen de 4 elementos principales: 1. URL base de la aplicacin. o 2. Nombre del modelo. 3. Nombre del mtodo a ejecutar en el modelo. e 4. Parmetro (argumento) que se la pasa al mtodo a ejecutar en el modelo. a e En base a estos 4 componentes principales, podemos realizar algunas combinaciones para hacer ms fcil el uso de FlavorPHP. a a

2.3.1.

Llamar al controlador index

Vemos que obtenemos al utilizar la siguiente URL: http://localhost/ Cuando se usa solo la URL base de la aplicacin, FlavorPHP ejecuta el o mtodo index del controlador index sin ningn parmetro. e u a Controlador index con parmetro a Si deseamos pasar un parmetro numrico al mtodo index del controlador a e e index, podemos utilizar la siguiente URL: http://localhost/10/ De esta forma el mtodo index trendr como parmetro el nmero 10. Esta e a a u funcin trabaja s y solo s es nmerico el primer (y unico) elemento despus o u e de la URL base de la aplicacin. o

2.3.2.

Invocar a los mtodos index e

Todos los controladores por defecto deben tener su mtodo index, por lo que e si deseamos llamar estos mtodos solo hay que poner el nombre del controlador e y FlavorPHP se encargar de ejecutar el mtodo index. a e Por ejemplo: http://localhost/usuario/ Esta URL ejecutar el mtodo index del controlador usuario. a e

18

CAP ITULO 2. MVC (MODELO-VISTA-CONTROLADOR)

2.4.

Hola mundo con FlavorPHP

Para crear la aplicacin que nos salude desde FlavorPHP vamos a seguir o las convenciones aprendidas en la seccin anterior. o La URL nal ser: a http://localhost/saludo/hola/pedro/ Primero debemos crear nuestro controlador saludo y almacenarlo en la carpeta controllers con la siguiente regla nombreControlador controller.php. Por lo que nuestro controlador se llamar saludo controller.php, no nos a olvidemos de esta convencin al nombrar nuestros controladores para que el o framework pueda manejarlos correctamente. En el cdigo 2.1 podemos ver la estructura base que deben tener todos o nuestros controladores. Cdigo 2.1: saludo controller.php o c l a s s s a l u d o c o n t r o l l e r extends a p p c o n t r o l l e r { public function construct () { parent : : c o n s t r u c t ( ) ; } p u b l i c f u n c t i o n i n d e x ( $ i d=NULL) { } } Si en estos momentos llamamos a la URL http://localhost/saludo/ veremos en blanco nuestro navegador, debido a que aun no generamos ninguna vista. Agregumosle lo siguiente (cdigo 2.2) a nuestro controlador: e o Cdigo 2.2: Controlador saludo incorrecto o c l a s s s a l u d o c o n t r o l l e r extends a p p c o n t r o l l e r { public function construct () { parent : : c o n s t r u c t ( ) ; } p u b l i c f u n c t i o n i n d e x ( $ i d=n u l l ) { echo <h1>Hola Mundo</h1> ; } } Si refrescamos (F5) nuestro navegador veremos el texto Hola Mundo. Pero, esto no es correcto! debemos crear una vista desde la cual se muestre la informacin al usuario. o Para generar la vista, debemos crear una carpeta nueva dentro de la carpeta views, esta nueva carpeta debe llamarse exactamente igual que el controlador, en este caso quedar ./views/saludo/, dentro de esta carpeta debemos crear un a

2.4. HOLA MUNDO CON FLAVORPHP

19

archivo que se llame igual que el mtodo llamado, para este ejemplo el archivo e debe ser ./views/saludo/index.php (cdigo 2.3). o Cdigo 2.3: vista index del controlador saludo o <h1>Hola mundo</h1> Una vez creada la vista modicamos el controlador para mostrarla. Cdigo 2.4: Controlador saludo correcto o c l a s s s a l u d o c o n t r o l l e r extends a p p c o n t r o l l e r { public function construct () { parent : : c o n s t r u c t ( ) ; } p u b l i c f u n c t i o n i n d e x ( $ i d=n u l l ) { $ t h i s >r e n d e r ( ) ; } } Al usar la instruccin render() automticamente FlavorPHP sabr cual o a a vista buscar y la mostrar al usuario. a Ahora que ya entendemos mejor como utilizar el framework, volvamos al objetivo inicial. A nuestro controlador saludo le agregaremos el mtodo hola que recibir un e a parmetro de nombre msg (cdigo 2.5). Este parmetro ser asignado a la vista a o a a para que lo despliegue junto a un saludo. Cdigo 2.5: Mtodo hola o e c l a s s s a l u d o c o n t r o l l e r extends a p p c o n t r o l l e r { public function construct () { parent : : c o n s t r u c t ( ) ; } p u b l i c f u n c t i o n i n d e x ( $ i d=n u l l ) { $ t h i s >r e n d e r ( ) ; } p u b l i c f u n c t i o n h o l a ( $msg ) { $ t h i s >view>nombre = $msg ; $ t h i s >r e n d e r ( ) ; } } La vista (./views/saludo/hola.php) quedar como muestra el cdigo 2.6 a o Cdigo 2.6: Vista del mtodo hola o e <h1>Hola <?php echo $nombre ; ?></h1>

20

CAP ITULO 2. MVC (MODELO-VISTA-CONTROLADOR)

Como podemos observar, al asignarle en nuestros controladores una variable a nuestro objeto $this->view, la podemos utilizar desde la vista, haciendo uso de PHP.

Cap tulo 3

Mi primera aplicacin con o Flavor

21

22

CAP ITULO 3. MI PRIMERA APLICACION CON FLAVOR

3.1.

Introduccin o

Para ilustrar la facilidad con que FlavorPHP nos permite crear aplicaciones web con pocas lineas de cdigo, crearemos una aplicacin que nos permita o o almacenar nuestros enlaces favoritos. Lo primero que debemos hacer es descomprimir FlavorPHP en nuestro servidor y llamarle a nuestra aplicacion demo (el nombre de la carpeta que contiene al framework). El siguiente paso es realizar la conguracin en el archivo config.php. o Una vez que hayamos congurado correctamente, procedemos a crear la tabla en la base de datos.

3.2.

El modelo de datos

Necesitaremos una tabla en nuestra base de datos (BD), la cual almacenar nuestros enlaces. Esta tabla la llamaremos bookmarks. a Los campos a utilizar se describen en la tabla 3.1. Cuadro 3.1: Campos en la tabla bookmarks Campo Utilidad Valor numrico que se llena automticamente e a de forma incremental (debe ser llave primaria). Almacena el t tulo del sitio Web. Almacena el enlace al sitio Web. Descripcin del sitio Web. o Etiquetas para organizar los sitios Web. Este Campo lo llena automticamente Flaa vorPHP al agregar un nuevo sitio Web. Este Campo lo llena automticamente Flaa vorPHP cuando se modica un enlace.

id link title url description tags created modied.php

Como podemos ver, existen tres campos por convencin que necesita y usa o FlavorPHP: 1. Campo llave primaria (id link), en este campo no importa el nombre.

3.2. EL MODELO DE DATOS 2. Campo created. 3. Campo modied.

23

3.2.1.

Crear la BD

El script para generar la base de datos lo encontramos en el cdigo 3.1. o Cdigo 3.1: Tabla bookmarks o CREATE TABLE bookmarks ( i d l i n k i n t ( 3 ) NOT NULL a u t o i n c r e m e n t , t i t l e v a r c h a r ( 1 0 0 ) NOT NULL default , u r l v a r c h a r ( 1 0 0 ) NOT NULL default , description text , t a g s v a r c h a r ( 7 5 ) NOT NULL default , c r e a t e d d a t e t i m e NOT NULL, m o d i f i e d d a t e t i m e NOT NULL, PRIMARY KEY ( i d l i n k ) ); Nota: Para poder apreciar el ejemplo inserte en esta parte un par de registros a su tabla de forma manual.

3.2.2.

Crear el modelo

Los modelos forman parte del MVC, representan la lgica de datos y encapo sulan las acciones que se podrn hacer sobre las tablas en las bases de datos, a tales como insertar, modicar, borrar, consultar, etc. Los modelos en FlavorPHP, implementan el patrn ORM (Mapeo Objeto o Relacional), el cual nos permite trabajar con nuestras tablas como si fueran clases y nuestros registros como si fueran objetos. Estos modelos mapean directamente nuestas tablas en las bases de datos, debido a esto, debemos tomar en cuenta otra convencin, el modelo se debe de llamar como la tabla que vao mos a mapear pero en singular. Es decir, si nuestra tabla se llama bookmarks nuestro modelo se llamar bookmark. a Este modelo (ver cdigo 3.2) lo vamos a crear en el directorio models de la o siguiente forma: /models/bookmark.php. Cdigo 3.2: Modelo bookmarks o c l a s s bookmark e x t e n d s models { } Con este modelo ser suciente para nuestra aplicacin. FlavorPHP aua o tomticamente ya ha creado un enlace entre nuestro modelo y la tabla en la BD a por lo que ya podemos trabajar con ella como si de un objeto se tratara.

24

CAP ITULO 3. MI PRIMERA APLICACION CON FLAVOR

3.3.

Crear los controladores y las vistas

Vamos a crear los controladores y vistas necesarias para nuestra aplicacin. o

3.3.1.

Usando un modelo desde un controlador

Lo primero que debemos hacer es crear el controlador index (ver cdigo 3.3), o es decir /controllers/index controller.php. Cdigo 3.3: Bookmarks - index controller.php o c l a s s i n d e x c o n t r o l l e r extends a p p c o n t r o l l e r { public function construct () { parent : : c o n s t r u c t ( ) ; } p u b l i c f u n c t i o n i n d e x ( $ i d=NULL) { } } Ya que tenemos nuestro controlador, le agregamos el cdigo siguiente: o Cdigo 3.4: Seleccionar todos o c l a s s i n d e x c o n t r o l l e r extends a p p c o n t r o l l e r { public function construct () { parent : : c o n s t r u c t ( ) ; } p u b l i c f u n c t i o n i n d e x ( $ i d=n u l l ) { $ l i n k = new bookmark ( ) ; $ t h i s >view>l i n k s = $ l i n k >f i n d A l l ( ) ; $ t h i s >r e n d e r ( ) ; } } En la l nea 3 se llama al modelo que creamos previamente, despus le asige namos a la vista una variable que contendr todos los enlaces en nuestra tabla a y por ultimo mostramos la vista.

3.3.2.

Crear la vista
Cdigo 3.5: La vista del index o

Creamos nuestra vista (ver cdigo 3.5) en /views/index/index.php o

<?php foreach ( $ l i n k s a s $ l i n k ) { ?> <a h r e f=<?php echo $ l i n k [ u r l ] ; ?>><?php echo $ l i n k [ t i t l e ] ; ?></a>

3.3. CREAR LOS CONTROLADORES Y LAS VISTAS <p><? echo $ l i n k [ d e s c r i p t i o n ] ; ?></p> <p><? echo $ l i n k [ t a g s ] ; ?> e l <? echo date ( m. d . y , strtotime ( $ l i n k [ c r e a t e d ] ) ) ; ?></p> <?php } ?>

25

Ahora que conocemos como conectarnos a la BD, obtener todos los registros y desplegarlos en nuestro navegador con muy pocas lineas de cdigo, aprendamos o a realizar las operaciones de insertar, modicar y eliminar enlaces en nuestra aplicacin. o A nuestra vista le agregamos las siguientes l neas (ver cdigo 3.6), para o generar las URLs de editar, eliminar y agregar enlaces. Cdigo 3.6: La vista con operaciones de CRUD o <p> <?php echo $ t h i s >html>l i n k T o ( Agregar e n l a c e , i n d e x / a g r e g a r / , t i t l e =\Agregar un nuevo e n l a c e \ ) ; ?> </p> <hr /> <?php foreach ( $ l i n k s a s $ l i n k ) { ?> <a h r e f=<?php echo $ l i n k [ u r l ] ; ?>><?php echo $ l i n k [ t i t l e ] ; ?></a> <p><?php echo $ l i n k [ d e s c r i p t i o n ] ; ?></p> <p><?php echo $ l i n k [ t a g s ] ; ?> e l <?php echo date ( m. d . y , strtotime ( $ l i n k [ c r e a t e d ] ) ) ; ?></p> <p>O p e r a c i o n e s con e l e n l a c e : <?php echo $ t h i s >html >l i n k T o ( E d i t a r , i n d e x / e d i t a r / . $ l i n k [ i d l i n k ] . / , t i t l e =\ E d i t a r e n l a c e \ ) ; ?> | <?php echo $ t h i s >html>linkTo Co nfir m ( E l i m i n a r , i n d e x / e l i m i n a r / . $ l i n k [ i d l i n k ] . / ) ; ?> </p> <?php } ?> Como podemos observar, en nuestra vista estamos usando un objeto html, este es el helper HTML que incluye FlavorPHP y nos permite crear elementos HTML de forma ms sencilla y respetando siempre la estructura del framea work, los dos mtodos del helper que en estos momentos hemos utilizado son e los siguientes: 1. linkTo(text, url, html attributes) .- Crea un enlace. Los parametros son: text Texto que llevar el enlace. a url URL a donde se dirijir el usuario. a

26

CAP ITULO 3. MI PRIMERA APLICACION CON FLAVOR html attributes Atributos extras del enlace. 2. linkToConfirm(text, url) .- Crea un enlace, el cual para activarse, el usuario primero debe aceptarlo. Los parametros son: text Texto que llevar el enlace. a url URL a donde se dirijir el usuario. a

3.3.3.

Agregar enlace

En el cdigo 3.8 veremos como queda el mtodo agregar. o e Cdigo 3.7: Agregar enlace o p u b l i c f u n c t i o n a g r e g a r ( $ i d=n u l l ) { $ l i n k = new bookmark ( ) ; i f ( $ t h i s >da ta ) { $ l i n k >prepareFromArray ( $ t h i s >da ta ) ; $ l i n k >s a v e ( ) ; $ t h i s >r e d i r e c t ( i n d e x ) ; } else { $ t h i s >t i t l e f o r l a y o u t ( Agregar E nla ce ) ; $ t h i s >r e n d e r ( ) ; } } Y la vista para agregar /views/index/agregar.php (ver cdigo ??) o Cdigo 3.8: Agregar enlace o <?php echo $ t h i s >html>form ( i n d e x / a g r e g a r / ) ; ?> URL: <?php echo $ t h i s >html>t e x t F i e l d ( u r l ) ; ?> <br /> T i t u l o : <?php echo $ t h i s >html>t e x t F i e l d ( t i t l e ) ; ?> <br /> D e s c r i p c i o n : <?php echo $ t h i s >html>t e x t A r e a ( d e s c r i p t i o n , , rows=\3\ c o l s =\84\ ) ; ?> <br /> E t i q u e t a s : <?php echo $ t h i s >html>t e x t F i e l d ( t a g s ) ; ?> <br /> <i n p u t type= submit v a l u e= Agregar /><br /> </form>

3.3.4.

Editar enlace

En el cdigo 3.9 veremos como queda el mtodo editar. o e

3.3. CREAR LOS CONTROLADORES Y LAS VISTAS Cdigo 3.9: Editar enlace o public function editar ( $id ) { $ l i n k = new bookmark ( ) ; $ t h i s >view>l i n k = $ l i n k >f i n d ( $ i d ) ; $ t h i s >view>i d = $ i d ; i f ( $ t h i s >da ta ) { $ l i n k >prepareFromArray ( $ t h i s >da ta ) ; $ l i n k >s a v e ( ) ; $ t h i s >r e d i r e c t ( i n d e x ) ; } else { $ t h i s >t i t l e f o r l a y o u t ( E d i t a r E nla ce ) ; $ t h i s >r e n d e r ( ) ; } } Y la vista para editar /views/index/editar.php (ver cdigo 3.10) o Cdigo 3.10: Vista editar enlace o

27

<?php echo $ t h i s >html>form ( i n d e x / e d i t a r / . $ i d . / ) ; ?> URL: <?php echo $ t h i s >html>t e x t F i e l d ( u r l , v a l u e =\ . $ l i n k [ u r l ] . \ ) ; ?> <br /> T i t u l o : <?php echo $ t h i s >html>t e x t F i e l d ( t i t l e , v a l u e=\ . $ l i n k [ t i t l e ] . \ ) ; ?> <br /> D e s c r i p c i o n : <?php echo $ t h i s >html>t e x t A r e a ( d e s c r i p t i o n , $ l i n k [ d e s c r i p t i o n ] , rows=\3\ c o l s =\84\ ) ; ?> <br /> E t i q u e t a s : <?php echo $ t h i s >html>t e x t F i e l d ( t a g s , v a l u e=\ . $ l i n k [ t a g s ] . \ ) ; ?> <br /> <i n p u t type= submit v a l u e= M o d i f i c a r /><br /> </form>

3.3.5.

Eliminar enlace
Cdigo 3.11: Eliminar enlace o

En el cdigo 3.11 veremos como queda el mtodo eliminar. o e

public function eliminar ( $id ){ $ l i n k = new bookmark ( ) ; $ l i n k >f i n d ( $ i d ) ; $ l i n k >delete ( ) ; $ t h i s >r e d i r e c t ( i n d e x ) ;

28 }

CAP ITULO 3. MI PRIMERA APLICACION CON FLAVOR

Recordemos que todos estos mtodos anteriores deben de ir en el index controller e que creamos al inicio /controllers/index controller.php Este ejemplo nos permite entrar de lleno al uso de FlavorPHP, por lo que el siguiente paso es conocer el API completa del framework para obtener el mximo provecho de su funcionalidad. a

FlavorPHP Versin 1.0 o Manual http://www.avorphp.com/ c 2008-2011 avorphp.com

S-ar putea să vă placă și