viernes, 19 de julio de 2013

Como crear controladores con Zend Framework 2 paso a paso


En este apartado veremos como crear un controlador mediante ZEND FRAMEWORK.

Si aun no has instalado ZEND FRAMEWORK te aconsejo que veas ... Como instalar Zend Framework paso a paso

La carpeta principal de ZEND FRAMEWORK es "module", en ella se encuentran todos lo módulos del   proyecto, SKELETON ya proveé de un módulo por defecto llamado "Application", así que vamos a la carpeta  ...

-module
      -Application

Como crear controladores con Zend Framework 2 paso a paso


Ya sabemos que tenemos un módulo llamado "Application", este módulo ya contiene un controlador, el cual es  el que es mostrado como default por SKELETON llamado index ->

Como crear controladores con Zend Framework 2 paso a paso


Ahora nosotros queremos construir un nuevo controlador "demo". Y vamos a seguir la siguiente rutina ...

Primero vamos a ir a la carpeta  ...

-src
   -Application
          -Controller

   
En esta carpeta podemos ver un archivo llamado IndexController.php que es el controlador del index, para cada nuevo controlador tendremos que crear un nuevo objeto,  si te fijas primero va el nombre del controlador con la primera letra en mayúsculas y a continuación Controller, si abres el archivo IndexController.php podrás ver la estructura.


Así que crearemos nuestro controlador abrimos el editor de código y creamos un archivo llamado DemoController.php y le pegamos el siguiente código ...


<?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository
 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class DemoController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel();
    }
}


Si observas las diferencias entre IndexController.php y el nuevo controlador DemoController.php que hemos acabado de crear, simplemente se diferencian por la siguiente línea de código ...

class DemoController extends AbstractActionController

Ten en cuenta las siguiente líneas de código, nunca las cambies, forman parte del modelo de ZEND, MVC = Modelo Vista Controlador, el modelo son las clases y objetos que provee Zend para la conexion o entendimiento entre Vista y Controlador ...

/* Se encarga de conectar los controladores con las vistas */
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
/* Se encarga de conectar los controladores con las vistas */



Ahora nos toca crear las vistas, por el momento sólo tenemos el controlador, así que regresamos a la raiz del módulo "Application" y nos vamos a la siguiente carpeta ...

- view
    - application
   
Encontraréis una carpeta llamada index en esta carpeta se encuentran las vistas del controlador IndexController.php, pero nosotros vamos a crear las vistas para nuestro nuevo controlador DemoController.php, así que creamos una carpeta llamada "demo"

Como crear controladores con Zend Framework 2 paso a paso

   

Abrimos la nueva carpeta "demo" y crearemos un archivo llamado index.phtml, ten en cuenta que ZEND utiliza la extensión .phtml si usas otra no funcionará.
   
Ahora pégale el siguiente código o otro html que tu quieras y guárdalo ...

<h1>He creado mi primer controlador con ZEND FRAMEWORK 2</h1>

Con este paso ya tenemos la vista para la demo creada.

Ahora nos queda un último paso, regresamos a la raiz de "Application", y nos vamos a la carpeta ...

- config

Y abrimos el archivo de configuración del módulo en el que estamos trabajando recuerden que es  "Application", module.config.php

En este archivo va toda la configuración del módulo como rutas, archivos de error, lenguaje, acciones, etc ... en posts posteriores veremos este archivo más detenidamente.

Buscaremos la siguiente línea de código ...

  'Application\Controller\Index' => 'Application\Controller\IndexController'
           
Como es un Array, le pondremos una coma y le agregamos la siguiente línea de código ...

'Application\Controller\Demo' => 'Application\Controller\DemoController'

Quedando de la siguiente manera ...

Como crear controladores con Zend Framework 2 paso a paso


Con esta nueva línea de código estamos indicando que en el módulo hay un nuevo controlador disponible, es decir ahora hay dos controladores el index y demo.

Ahora sólo nos queda acceder a la nueva vista del controlador "demo", vamos a la url ...

http://tutorial-zend.localhost/application/demo/index

Como crear controladores con Zend Framework 2 paso a paso



Espero que hayáis entendido el proceso, creo que lo mejor es prácticar y que ahora probéis creando otros controladores para haceros con la rutina, en próximos capítulos avanzaremos más en detalles de este MVC.




2 comentarios:

Anónimo dijo...

Buenos dias he seguido paso a paso su tutorial pero al crear el controlador me sale error al renderizar la url la del proyecto "An error occurred during execution; please try again later." Me podria colaborar con esto. Gracias.

Anónimo dijo...

Yo también tuve este problema. Lo solucioné cambiando el nombre del archivo creado en la carpeta view de demo.phtml a index.phtml. Saludos!