¡Hola mundo! con Zend Framework 2

Anteriormente expliqué como hacer un ¡Hola mundo! con Zend Framework 1, pero este framework ya se encuentra en la versión 2 y es muy posible que desees utilizar esta, por lo cual voy a explicar como hacer lo mismo con esta versión.

hola mundo con zend framework 2

Como hacer un ¡Hola mundo! con Zend Framework 2.


Crear un proyecto Zend Framework 2

La forma recomendada de instalar el esqueleto de Zend Framework 2 es a través del programa de control de versiones Git, si tu máquina usa Debian y no tienes Git instalado, puedes hacerlo desde un terminal con:

aptitude install git

Luego puedes crear el esqueleto de Zend Framework 2 con los siguientes comandos:

  1. Entramos en nuestro directorio de trabajo, donde deseemos crear el proyecto:

    cd ~/workspace/
  2. Clonamos el esqueleto del proyecto que tienen en los repositorios de GitHub:

    git clone git://github.com/zendframework/ZendSkeletonApplication.git
  3. Entramos en el directorio clonado:

    cd ZendSkeletonApplication
  4. Ejecutamos el Compositor para instalar las dependencias:

    php composer.phar install

    Posteriormente puedes actualizar la versión con el comando:

    php composer.phar self-update

En lugar de clonar el proyecto, también puedes descargar un archivo tar o zip, descomprimirlo y, a continuación, ejecutar el Compositor dentro del directorio recién creado.

Crear el host en debian:

En el archivo ZendSkeletonApplication/README.md nos describe la configuración básica general del host virtual, para crear el host haz lo siguiente:

  1. -Crea el archivo de configuración desde un terminal con permisos de superusuario

    gedit /etc/apache2/sites-available/zf2.conf

    En esta ocasión el archivo ZendSkeletonApplication/README.md nos ofrece la configuración básica, pero no dispone de las rutas necesarias, por lo que deberás sustituir /path/to/zf2-tutorial/ por la ruta real al directorio ZendSkeletonApplication
    y guarda el archivo. Luego entra en:

    cd /etc/apache2/sites-enabled/

    Para crear el enlace al archivo que hemos creado:

    ln -s ../sites-available/zf2.conf
  2. -Para configurar los host edita el archivo /etc/hosts para poner el nombre del dominio: “127.0.1.1 zf2-tutorial.localhost

  3. -Reinicia Apache para que coja los cambios

    service apache2 restart
  4. -Ahora accede desde tu navegador a:
    http://zf2-tutorial.localhost
    Debería mostrar una web con el encabezado “Welcome to the Zend Framework!”.
    En caso de recibir un error de permisos incluir antes de </Directory> del archivo /etc/apache2/sites-available/zf2.conf la línea:

    Require all granted

    Si continua fallando otorga los privilegios apropiados:

    chmod -R 755 ~/workspace/ZendSkeletonApplication

Imprimir ¡hola mundo!

Ya tenemos nuestro host virtual con Zend Framework instalado, ahora vamos a mostrar un sencillo ¡hola mundo!.
Para ello debemos situarnos nuevamente en nuestra carpeta de usuario con el terminal

cd ~

  1. -Primero crearemos un modelo (usado para crear la lógica de negocio) .
    Como puedes comprobar, al contrario que Zend Framework 1 en el esqueleto no existe ningún directorio “models”, esto es debido a que el modelo es tu lógica de negocio y está en ti decidir como quieres que funcione. Me voy a limitar a crear una clase que implemente una variable que contendrá la cadena “¡hola mundo!” aun que no sea la mejor forma de mostrar la utilidad del modelo, simplemente es una forma de mostrar como puedes crear tus clases modelo.
    Primero crearé el directorio Model:

    mkdir workspace/ZendSkeletonApplication/module/Application/src/Application/Model

    Ahora vamos con la clase Hola:

    gedit workspace/ZendSkeletonApplication/module/Application/src/Application/Model/Hola.php

    y escribimos lo siguiente:

    <?php 
    namespace Application\Model;
    class Hola 
    { 
    	public $saludo = "¡hola mundo!"; 
    }
  2. -Cambiamos la vista (encargada de procesar el resultado final que se mandará al cliente) para mostrar el encabezado ¡hola mundo!:

    gedit workspace/ZendSkeletonApplication/module/Application/view/application/index/index.phtml

    elimina todo lo que contiene y escribe simplemente:

    <h2><?= $hola; ?></h2>

    Como puedes comprobar no hace falta utilizar "$this->" para acceder a las variables de las viastas cómo hacíamos en Zend Framework 1 dado que Zend Framework 2 se encarga de que las variables estén accesibles directamente en las vistas.

  3. -Editamos el controlador (es quien hace de intermediador entre la vista y el modelo) para pasar la variable del modelo a la vista:

    gedit workspace/ZendSkeletonApplication/module/Application/src/Application/Controller/IndexController.php

    Detras de la línea:
    use Zend\View\Model\ViewModel;
    Agregamos el modelo:

    use Application\Model\Hola;

    En la función indexAction() cambiamos la línea que dice:
    return new ViewModel();
    Por lo siguiente:

    
    $hola = new Hola();
    return new ViewModel(array('hola' => $hola->saludo));

    Para pasar a la vista la variable del saludo.

Vuelve a acceder a:
http://zf2-tutorial.localhost/
Bien, ya tenemos nuestro “¡hola mundo!” hecho con Zend Framework 2.
Con esto hemos conseguido crear una base de carpetas y directorios con las librerías y estructura de Zend Framework 2 listo para crear a partir de esta una nueva aplicación, y hemos visto como utilizar de forma sencilla su estructura Modelo Vista Controlador.

Lugares Relacionados:
http://framework.zend.com/downloads/skeleton-app
http://www.elreplicante.com.ar/2013/07/21/hola-mundo-con-zend-framework-2/
http://alemohamad.com/tutorial-zend-framework-2-beta/
http://framework.zend.com/manual/2.2/en/tutorials/config.advanced.html

Redes Sociales
Esta entrada fue publicada en Programación y etiquetada , , , , , , . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Blue Captcha Image Refrescar

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>