Taller de Zend Framework 2 Comunidad PHP Puebla

dev-master 2014-05-01 15:26 UTC

README

Este es un módulo para ZF2 que demuestra la creación e instalacion de Módulos. Contiene un solo controlador y una ruta que dirige a dos acciones una muestra una lista de autores de libros de PHP y la segunda muestra los datos personales de un autor en específico.

Instalación

Este ejemplo se instala usando Composer. Si no tienes instalado Composer el primer paso es instalarlo:

$ curl -s http://getcomposer.org/installer | php

Una vez instalado creamos el proyecto, usando como base ZendSkeletonApplication

$ php composer.phar create-project -s dev zendframework/skeleton-application zf2

Esto creará una carpeta llamada zf2 con los archivos necesarios para instalar nuestro módulo. Para una descripción mas detallada sobre la instalación de ZendSkeletonApplication visita el repositorio:

El siguiente paso es crear un host virtual con la siguiente configuración.

<VirtualHost *:80>
  ServerName zf2.dev

  DocumentRoot /var/www/zf2/public

  <Directory /var/www/zf2/public>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

</VirtualHost>

Verifica que puedes acceder a tu aplicación

El siguiente paso es instalar el módulo, modifica el archivo composer.json agregando como dependencia el módulo de este taller (BookStore):

{
    "name": "zendframework/skeleton-application",
    "description": "Skeleton Application for ZF2",
    "license": "BSD-3-Clause",
    "keywords": [
        "framework",
        "zf2"
    ],
    "homepage": "http://framework.zend.com/",
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*",
        "comphppuebla/zf2ws": "dev-master"
    }
}

Actualiza las dependencias de tu proyecto ejecutando el siguiente comando:

$ php composer.phar update

Al finalizar deberás tener dentro de la carpeta vendor el siguiente archivo vendor/comphppuebla/zf2ws/data/sql/database.sql el cual debes ejecutar para crear la base de datos, el usuario de la base de datos y algunos datos de ejemplo (reemplaza los valores de usuario y contraseña).

$ mysql --user=root --password="root" --default-character-set=utf8 < vendor/comphppuebla/zf2ws/data/sql/database.sql

El siguiente paso es registrar el módulo en el archivo config/autoload/application.config.php para que el ModuleManager lo pueda inicializar y configurar.

return array(
    'modules' => array(
        'Application',
        'BookStore',
    ),
    'module_listener_options' => array(
        'config_glob_paths'    => array(
            'config/autoload/{,*.}{global,local}.php',
        ),
        'module_paths' => array(
            './module',
            './vendor',
        ),
    ),
);

Como último paso debemos agregar la configuración a nuestra base de datos, para ello agregamos los datos de configuración para el Zend\Db\Adapter\Adapter en el archivo config/autoload/global.php

return array(
    'db' => array(
        'driver'         => 'Pdo',
        'driver_options' => array(
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
        ),
    ),
    'service_manager' => array(
        'factories' => array(
            'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
);

Y agregamos la información más sensitiva como usuario, password, nombre de la base de datos en el archivo config\autoload\local.php, por default el nombre del archivo es local.php.dist puedes crear un archivo nuevo o cambiar la extensión a este último archivo.

return array(
    'db' => array(
        'dsn' => 'mysql:dbname=book_store;host=localhost',
        'username' => 'bstore_user',
        'password' => 'book_store_us3r',
    ),
);

Modo de uso

Para comprobar el correcto funcionamiento del módulo BookStore abre las siguientes direcciones:

La primera muestra la lista de autores completa y la segunda muestra los datos del autor con ID 1.