¡Hola mundo! con Zend Framework

En esta ocasión voy a relatar una forma de crear el típico ¡Hola Mundo! Con Zend Framework, para que funcione debe estar instalado Apache en el servidor, dependiendo del sistema operativo puede que cambie el procedimiento, pero básicamente serán los mismos pasos, este procedimiento ha sido probado en Debian si quieres saber como instalar un servidor Apache con Debian consulta Debian 7 (Wheezy) Estable.

hola mundo con zend framework

Como hacer un ¡Hola mundo! con Zend Framework.


Crear un proyecto Zend Framework:

Existen varias fuentes desde donde puedes descargar las librerías de Zend Framework, por ejemplo:
http://framework.zend.com/downloads/latest
El procedimiento para crear el proyecto de Zend Framework es:

  1. -Desde terminal entrar en el directorio donde queramos crear el proyecto, por ejemplo:

    cd ~/workspace/
  2. -Descarga la última versión mínima:

    wget https://packages.zendframework.com/releases/ZendFramework-1.12.3/ZendFramework-1.12.3-minimal.tar.gz

    (o si lo prefieres también podrías hacerlo con la completa: wget https://packages.zendframework.com/releases/ZendFramework-1.12.3/ZendFramework-1.12.3.tar.gz)

  3. -Desempaquetar el archivo:

    tar xvzf  ZendFramework-1.12.3-minimal.tar.gz
  4. -Crear el proyecto zendhola:

    ZendFramework-1.12.3-minimal/bin/zf.sh create project zendhola
  5. -Habilitar los layouts de Zend (Para esta prueba no es necesario, pero es interesante si posteriormente deseas crear un proyecto más complejo) para ello entramos en el proyecto:

    cd zendhola

    Habilitamos los layouts:

    ../ZendFramework-1.12.3-minimal/bin/zf.sh enable layout

    y volvemos a salir del proyecto:

    cd ../
  6. -Incluir la librería Zend en el proyecto

    cp -r ZendFramework-1.12.3-minimal/library/Zend zendhola/library/Zend

    en este momento ya tenemos todo lo que necesitamos en el proyecto por lo que nos podríamos deshacer del directorio de ZendFramework-1.12.3-minimal.

Crear el host en debian:

En el archivo zendhola/docs/README.txt nos describe la configuración básica que necesitamos para crear el 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/zendhola.conf

    Pega el XML descrito en zendhola/docs/README.txt 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/zendhola.conf
  2. -Para configurar los host edita el el archivo /etc/hosts para poner el nombre del dominio: “127.0.1.1 zendhola.local

  3. -Reinicia Apache para que coja los cambios

    service apache2 restart
  4. -Ahora accede desde tu navegador a:
    http://zendhola.local/
    Debería mostrar un cuadro azul donde dice “Welcome to the Zend Framework!”.
    En caso de recibir un error de permisos incluir antes de </Directory> del archivo /etc/apache2/sites-available/zendhola.conf la línea:

    Require all granted

    Si continua fallando otorga los privilegios apropiados:

    chmod -R 755 ~/workspace/zendhola

Layout HTML (opcional):

Anteriormente hemos habilitado los layouts, pero el layout por defecto esta vacío, con lo cual la pagina mostrada no será un archivo HTML si no de texto (aunque algunos navegadores muestren los estilos asociados a etiquetas HTML sueltas que incluyamos), si deseas tener un archivo HTML únicamente tienes que editar el layout, por ejemplo, si nos encontramos en un terminal, en el directorio del usuario.

gedit workspace/zendhola/application/layouts/scripts/layout.phtml

Y cambiar el contenido por ejemplo con el siguiente marcado HTML5:


<!DOCTYPE html>
<html lang="es">
	<head>
		<title>Zend Framework</title>
		<meta charset="utf-8"/>
	</head>
	<body>
		<header>
			<h1>Zend Framework</h1>
		</header>
		<section>
<?php echo $this->layout()->content; ?>
		</section>
	</body>
</html>

Prestar especial atención a la linea <?php echo $this->layout()->content; ?> ya que esto mostrará la salida que nosotros indiquemos en la vista.

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) que implemente una variable que contendrá la cadena “¡hola mundo!”.

    gedit workspace/zendhola/application/models/Hola.php

    y escribimos lo siguiente:

    <?php 
    class Application_Model_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/zendhola/application/views/scripts/index/index.phtml

    elimina todo lo que contiene y escribe simplemente:

    <h2><?= $this->hola; ?></h2>
  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/zendhola/application/controllers/IndexController.php

    Debajo de donde dice:
    public function indexAction()
    {
    // action body

    Antes de la llave de cierre escribimos lo siguiente:

    	$hola = new Application_Model_Hola();
    	$this->view->hola = $hola->saludo;

Vuelve a acceder a:
http://zendhola.local/
Bien, ya tenemos nuestro “¡hola mundo!” hecho con Zend Framework.
Por supuesto que parece matar moscas a cañonazos utilizar un Framework tan potente solo para mostrar “¡hola mundo!”, pero con esto hemos conseguido crear una base de carpetas y directorios con las librerías y estructura de Zend Framework 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/
http://www.maestrosdelweb.com/editorial/video-tutoriales-de-zend-framework/

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

Deja una respuesta

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

Blue Captcha Image Refrescar

*