Hola Mundo :: Empezando con ZF2


Zend Frewmork 2 (ZF2) ya se alista para salir muy pronto, viene cargado de muchas mejoras y novedades, va ser un cambio grande con respecto a la versión uno, usará toda la potencia del php 5.3 , bueno ya habrá tiempo de hablar de lo nuevo, por ahora vamos hacer el famoso “Hola Mundo”.

Requerimientos

  • PHP 5.3.3 (o superior)
  • Un servidor web que tenga habilitada la extensión mod_rewrite o parecido

Notas Previas

Voy a suponer que tienes configurado correctamente el apache y que sabes crear host virtuales, caso contrario en la red puedes encontrar un sin fin de guías de como hacerlo.

Instalación

Hay 2 formas de obtener los archivos para crear un proyecto, pude ser usando git o hacerlo manualmente descargando los archivos .zip. Trataremos de hacerlo de las 2 maneras:

PASO 1: Instalando usando GIT y Composer

  • Nos colocamos dentro del directorio donde deseamos crear nuestra aplicación
    cd /www/projects/
  • Obtenemos el ZendSkeletonApplication el cual nos brinda una estructura base para comenzar nuestro proyecto
     git clone git://github.com/zendframework/ZendSkeletonApplication.git

    Esto creará una carpeta llamada ZendSkeletonApplication el cual lo renombraremos a zf2 (o como mejor les guste).

  • Si todo fue bien nuestro directorio será parecido a esto:
  • Nos colocamos dentro de la carpeta zf2
    cd /www/projects/zf2/
  • Actualizamos el instalador
    php composer.phar self-update
  • Instalamos la biblioteca ZF2, esto puede tomar su tiempo según la conexión que tengas, ya que descargará todos los archivos del repositorio central.
    php composer.phar install
  • Si todo salio bien bien creará dos carpetas dentro de vendor llamadas zendframework/zendframework/library/Zend que contiene la biblioteca de ZF2 y composer el cual contiene los archivos necesarios para que nuestra aplicación funcione con ZF2
  • Movemos la carpeta library ubicada en vendor/zendframework/zendframework/library a vendor/ZF2 y quedaría así

Con esto ya estamos listo para ir al siguiente paso!!!!

PASO 2: Configurando el Virtual Host

[bash]

ServerName zf2.gn
DocumentRoot /www/projects/zf2/public
SetEnv APPLICATION_ENV “development”

DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all


[/bash]

PASO 3: Verificando la Instalación

  • Si hiciste todo bien debería salir una pantalla igual a esto
  • Ahora probamos que funcione nuestro archivo .htaccess, para eso ingresamos la siguiente url: http://zf2.gn/1234 y nos debe mostrar lo siguiente

PASO 4 : Creando Hola Mundo!!!

  • Editamos el IndexController ubicado en zf2/module/Application/src/Application/Controller y le agregamos un Action
    [php]
  • Crearemos un archivo llamado holamundo.phtml dentro de zf2/module/Application/view/application/index/ el cual sera la vista de holamundoAction
    [php]
    //imprimimos el mensaje
  • Ingresamos a la siguiente url http://zf2.gn/application/index/holamundo y nos mostrará esta pantalla!!

Instalando Manualmente

El proceso es muy simple y muy parecido a lo anterior

Vieron que es super sencillo, espero sus comentarios y que les sea de utilidad.

Actualizado el 28 de Agosto, corrigiendo un pequeño bug

benjamin
Me llamo Benjamín Gonzales B, soy desarrollador de software con más de 15 años de experiencia, socio funduador de la empresa GNBIT. Me apasiona todo lo relacionado a las nuevas tecnologías, me gusta investigar , leer y aprender cada día algo nuevo. Desarrollo en PHP7+, JAVA, C#, JavaScript, entre otros y actualmente  estoy experimentando con lenguajes funcionales como: Erlang, Clojure y Scala 

7 Comments

  1. ¿Es necesario mover la carpeta library a vendor/ZF2? No debería el autolader funcionar sin tener que hacer ese paso? Entiendo que ZF2 es compatible con psr-0 y composer deja bien en autoloader. Me lo apunto para probarlo de todas formas

  2. Gonzalo Pues tienes toda la razón, las dependencias se generan solas, y funciona sin problemas, al parecer hubo un pequeño bug en mi instalación, ya me parecía raro, lo voy a corregir, gracias por el feedback

  3. Hola gente! Sabéis cómo puedo añadir la libreria de ZF2 al Zend Studio 9? Actualmente he logrado añadir la versión 1.12 pero no hay manera de que me reconozca los archivos que descargo (ni “full” ni “minimal installation”) como una instalación válida de Zend Framework.

    Gracias!

  4. Hola Manuel
    Hace mucho que no uso Zend Studio, pero antes agregaba las librerías manualmente
    Aquí te paso unas indicaciones de como añadir una librería externa.

    1. Go to Window | Preferences | PHP | PHP Libraries.
    2. In the PHP Libraries Preferences page click New.
    The “New User Library” Dialog will open.
    3. In the “New User Library” dialog, enter the name of your user library
    4. Select the “Add to environment” checkbox if you would like this library to be added to your entire environment instead of a specific project.
    5. To apply changes click OK.

    Recuerda que ZF2 funciona con la version 5.3 de PHP

  5. Hola! muchas gracias por el articulo está fenomenal!
    sabes por que para acceder a un Action en este caso el Holamundo se debe poner application?
    -> http://zf2.gn/application/index/holamundo en ZF1 solo con poner -> http://zf2.gn/index/holamundo funciona. esto se debe a que ya trabaja con módulos de forma mas explicita? entonces si quiero cambiar applicaton (por que se ve mal) solo debo cambiar el nombre del modulo y en el load vdd? de antemano gracias por que me salvaste je yo no podía hacer el hola mundo, por que lo hacia de la forma tradicional -> http://zf2.gn/index/holamundo y con tu ejemplo quedo perfecto, solo había que agregar el modulo (en este caso appliation)

    1. Froylan
      Es muy recomendable usar el módulo application para las funciones propios del sistema, las demás funcionalidades es mejor agregarles en otros módulos.
      Pero si deseas tenerlo como en ZF1 –>http://zf2.gn/index/holamundo puedes hacer lo siguiente dentro del archivo module.config.php:

      [php highlight=”4,16″]
      ‘application’ => array(
      ‘type’ => ‘Literal’,
      ‘options’ => array(
      ‘route’ => ‘/’, // esta linea lo dejas solo con un /
      ‘defaults’ => array(
      ‘__NAMESPACE__’ => ‘Application\Controller’,
      ‘controller’ => ‘Index’,
      ‘action’ => ‘index’,
      ),
      ),
      ‘may_terminate’ => true,
      ‘child_routes’ => array(
      ‘default’ => array(
      ‘type’ => ‘Segment’,
      ‘options’ => array(
      ‘route’ => ‘[:controller[/:action]]’, // esta linea quitas el / que esta al principio
      ‘constraints’ => array(
      ‘controller’ => ‘[a-zA-Z][a-zA-Z0-9_-]*’,
      ‘action’ => ‘[a-zA-Z][a-zA-Z0-9_-]*’,
      ),
      ‘defaults’ => array(),
      ),
      ),
      [/php]

      Espero que te sea de utilidad
      Saludos!

      1. Muchas gracias! por la información ya le voy entendiendo más jeje seguire tu consejo de ocupar el módulo application. Gracias .

Leave a Comment

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.