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.
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:
-
Entramos en nuestro directorio de trabajo, donde deseemos crear el proyecto:
cd ~/workspace/
-
Clonamos el esqueleto del proyecto que tienen en los repositorios de GitHub:
git clone git://github.com/zendframework/ZendSkeletonApplication.git
-
Entramos en el directorio clonado:
cd ZendSkeletonApplication
-
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:
-
-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 directorioZendSkeletonApplication
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
-
-Para configurar los host edita el archivo /etc/hosts para poner el nombre del dominio: “
127.0.1.1 zf2-tutorial.localhost
” -
-Reinicia Apache para que coja los cambios
service apache2 restart
-
-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 ~
-
-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!"; }
-
-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. -
-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