Tutorial Zendframework2 v002

Embed Size (px)

Citation preview

  • 7/24/2019 Tutorial Zendframework2 v002

    1/25ZendFramework 2

  • 7/24/2019 Tutorial Zendframework2 v002

    2/25

    Zend Framework2

    1 Mariano Garca Galn

    Zend Framework2, es un framework open source para PHP

    desarrollado por Zend, empresa encargada de la mayor parte de

    las mejoras hechas a PHP, por lo que se podra decir que es el

    framework "oficial". Nos referiremos a Zend Framework por susiniciales ZF2 en esta gua.

    1. Modelo-Vista-ControladorMVC

    2. Instalacin de la IDE

    3. Estructura de archivos en ZendFramework2.

    4. Controladores y Vistas

    5. Layout

  • 7/24/2019 Tutorial Zendframework2 v002

    3/25

    Zend Framework2

    2 Mariano Garca Galn

    1. Modelo-Vista-ControladorMVC

    Qu es el MVC?

    El modelo vista controlador es un patrn de arquitectura de las aplicaciones software que

    separa la lgica de la Interfaz de usuario.

    Facilita la evolucin del proyecto por separado.

    Incrementa la reutilizacin y flexibilidad.

    Cmo funciona?

    1. El Usuario realiza una accin en la interfaz.

    2.

    El controladortrata el evento de entrada.

    3. El controlador notifica al modelo la accin del usuario, lo que puede implicar un

    cambio del estado del modelo.

    4. Se genera una nueva vista. La vista toma los datos del modelo a travs del controlador.

    5. La interfaz espera otra interactuacin con el usuario, para que comience otro nuevo

    ciclo.

    Modelo Controlador Vista

    JsonOracle

    Mysql

    PosgreSql

    Lgica HTMLCSS

    JS

    Modelo-Controlador Controlador-Vista

    1.1 Estndar de codificacin de ZendFramework2.

    Seguir el estndar de codificacin Zend y el uso de apertura de tags en las vistasPHTML.

    Los atributos son siempre protegidos o privados y slo se puede acceder a ellos

    mediante mtodos getter/setter.(Principio de ocultacin)

    Se debe usar CamelCase en la escritura de cdigo. Las clases siempre deben

    comenzar con maysculas, mientras que los mtodos y variables deben

    nombrarse con minscula al inicio y luego CamelCase.

    No se pueden usar short tags (

  • 7/24/2019 Tutorial Zendframework2 v002

    4/25

    Zend Framework2

    3 Mariano Garca Galn

    El modelo le enva informacin al controlador y el controlador le enva la informacin

    a la vista. Este es el funcionamiento bsico del MVC.

  • 7/24/2019 Tutorial Zendframework2 v002

    5/25

    Zend Framework2

    4 Mariano Garca Galn

    2. Instalacin de la IDE

    Para trabajar con ZF2 vamos a utilizar Neatbeans IDE .

    https://netbeans.org/downloads/index.html

    Tambin la instalacin de XAMPP

    https://www.apachefriends.org/es/index.html

    Qu es Xampp?

    XAMPP es el entorno ms popular de desarrollo con PHP

    XAMPP es una distribucin de Apache completamente gratuita y fcil de instalar que contiene

    MySQL, PHP y Perl. El paquete de instalacin de XAMPP ha sido diseado para ser

    increblemente fcil de instalar y usar.

    2.1 Habilitar Neatbeans para poder crear proyectos con la estructura ZF2.

    2.1.1 En primer lugar debemos descargar ZendFramework Skeleton de Github.

    https://github.com/zendframework/ZendSkeletonApplication

    Tambin existe la posibilidad de descargar la documentacin en la que est basado

    este tutorial o verlo en la pgina oficial.

    http://framework.zend.com/

    2.1.2 Instalacin de Composer.

    https://getcomposer.org/download/

    La instalacin de Composer en Windows se puede hacer a travs del instalador.

    https://netbeans.org/downloads/index.htmlhttps://netbeans.org/downloads/index.htmlhttps://www.apachefriends.org/es/index.htmlhttps://www.apachefriends.org/es/index.htmlhttps://github.com/zendframework/ZendSkeletonApplicationhttps://github.com/zendframework/ZendSkeletonApplicationhttp://framework.zend.com/http://framework.zend.com/https://getcomposer.org/download/https://getcomposer.org/download/https://getcomposer.org/download/http://framework.zend.com/https://github.com/zendframework/ZendSkeletonApplicationhttps://www.apachefriends.org/es/index.htmlhttps://netbeans.org/downloads/index.html
  • 7/24/2019 Tutorial Zendframework2 v002

    6/25

    Zend Framework2

    5 Mariano Garca Galn

    Abrir lnea de comandos de Windows y escribir Composer debera de salir esto:

    Ir al directorio //c:xampp/htdocs/zendskeletonapplication

    Y luego escribir

    composer install

    php composer.phar self-update

    dentro de la carpeta ZendskeletonApplication descomprimida(En mi caso lo guardo

    en htdocs, el .zip y la carpeta descomprimida)

  • 7/24/2019 Tutorial Zendframework2 v002

    7/25

    Zend Framework2

    6 Mariano Garca Galn

    2.1.3 Instalacion de git

    http://git-scm.com/download/win

    2.2.4 Una vez instalado abriremos NeatBeans IDE, desplegamos la pestaa

    Tools y hacemos click en Options.

    Comprobar que Composer y Php tienen la ruta correcta. Tenemos que hacer referencia

    al Composer.phar de la carpeta ZendSkeletonAplication.

    http://git-scm.com/download/winhttp://git-scm.com/download/winhttp://git-scm.com/download/win
  • 7/24/2019 Tutorial Zendframework2 v002

    8/25

    Zend Framework2

    7 Mariano Garca Galn

    El siguiente paso es hacer click en Zend 2y establecer la ruta del archivo .Zip de

    Zendskeletonapplication.zip

    Ahora podemos crear proyectos con estructura ZF2, hacemos click en la pestaa File

    ,New Project.., PHP, Php Application.

    Elegir la ruta donde est situada en htdocs dentro deXampp.

  • 7/24/2019 Tutorial Zendframework2 v002

    9/25

    Zend Framework2

    8 Mariano Garca Galn

    Hacer click en Siguiente

    Elegir el framework a instalar, en nuestro caso ZendFramework2

    Y por ltimo finalizar.

  • 7/24/2019 Tutorial Zendframework2 v002

    10/25

    Zend Framework2

    9 Mariano Garca Galn

    Debera de quedar una estructura como esta:

    Hacer click derecho en el proyecto propiedades, run configuration y establecer la ruta

    por defecto , por ejemplo:

    http://localhost/PhpProject6/

    sustituir por:

    http://localhost/PhpProject6/public/

    http://localhost/PhpProject6/http://localhost/PhpProject6/http://localhost/PhpProject6/public/http://localhost/PhpProject6/public/http://localhost/PhpProject6/
  • 7/24/2019 Tutorial Zendframework2 v002

    11/25

    Zend Framework2

    10 Mariano Garca Galn

    Esto sirve para acceder directamente al indexde nuestra aplicacin.

  • 7/24/2019 Tutorial Zendframework2 v002

    12/25

    Zend Framework2

    11 Mariano Garca Galn

    3. Estructura de archivos en ZendFramework2.

    Init_autoloader.php

    El autoloader en los frameworks lo que hace es permitir que el bootstrap de tu aplicacin

    cargea travs de un archivo especfico que generalmente es un index.php que est cargado en

    el directorio public.

    En este archivo se cargan las funcionalidades del autoloader y del boostrap, este es el archivo

    que recibe los parmetros del nombre del modelo , del nombre controlador y del nombre de

    el /los parmetros contenidos en la url.

  • 7/24/2019 Tutorial Zendframework2 v002

    13/25

    Zend Framework2

    12 Mariano Garca Galn

    Directorio Application/config/Module.config.php

    En este archivo es donde se maneja toda la funcionalidad de nuestros controladores,

    parmetros que pasemos por la url, los layout, los archivos de error

    Directorio Application/src/Application

    En este directorio es donde se encuentra la carpeta Controller, Module aqu se guardan los

    distintos controladores, modelos, formularios etc de nuestra aplicacin.

  • 7/24/2019 Tutorial Zendframework2 v002

    14/25

    Zend Framework2

    13 Mariano Garca Galn

    Directorio Application/view/

    Directorio Application/view/error

    Aqu se encuentran los archivos de error, por ejemplo 404.

    Directorio Application/view/layout

    En este directorio se guardan todos los layout que necesitemos para nuestra aplicacin.

    Directorio Application/view/application

    Aqu es donde crearemos las vistas. Por cada vista tendremos que crear un directorio, quecorresponde a un controlador.

  • 7/24/2019 Tutorial Zendframework2 v002

    15/25

    Zend Framework2

    14 Mariano Garca Galn

    4. Controladores y Vistas: Pasar parmetros a travs de la URL.

    En primer lugar vamos a crear un nuevo controladorllamado TrabajoController.phpdentro de

    la capeta Controller.

    A continuacin crear un nuevo directorio dentro de Application/src/applicationllamado

    trabajo(En minsculas, recuerda que debemos de seguir el patrn que nos marca el

    framework) con una vista index.PHTML en su interior.

    Ahora debemos de ir al archivo Module.config.phpsituado en Application/config/ .

    Seguiremos los siguientes pasos:

    1- Aadir el nuevo controlador.

  • 7/24/2019 Tutorial Zendframework2 v002

    16/25

    Zend Framework2

    15 Mariano Garca Galn

    2- Llegado este punto, comprobar que se carga el nuevo controlador creado.

    http://localhost/ZendProyect_prueba1/public/application/trabajo

    3- En nuestra claseTrabajoController vamos a crear un mtodopor cada una de las vistas

    PHTMLque queramos trabajar.

    Ojo No solo para cada vista, tambin para cada procedimiento que queramos realizar,

    generalmente se crea un mtodo por vista pero en ocasiones por ejemplo para crear

    un uploader para subir archivos necesitamos crear estos mtodos que no

    necesariamente estn asociados a vistas, lo que hace es validar la informacin, un

    insert...

    Necesitamos otra pgina para recibir los datos, as que siguiendo el mismo

    procedimiento que en pasos anteriores creamos una nueva vista con su mtodo

    correspondiente en el controlador.

    4- Comprobar que la vista funciona.

    http://localhost/ZendProyect_prueba1/public/application/trabajohttp://localhost/ZendProyect_prueba1/public/application/trabajohttp://localhost/ZendProyect_prueba1/public/application/trabajo
  • 7/24/2019 Tutorial Zendframework2 v002

    17/25

    Zend Framework2

    16 Mariano Garca Galn

    5- Pasar parmetros del controlador a la vista.

    Creamos una variable que contiene un String para mostrar un saludo en la vista recibir y la

    pasamos a travs de un arrayen el controlador TrabajoController.

    Controlador

    Vista

    Resultado

  • 7/24/2019 Tutorial Zendframework2 v002

    18/25

    Zend Framework2

    17 Mariano Garca Galn

    Podemos pasar varios parmetros e incluso un array. Ejemplo:

    Controlador

    Vista

    Resultado

    A partir de aqu ya podemos comenzar a crear nuestras propias vistas y hacer ejercicios.

    Por ejemplo crear una pgina sencilla con 2 o 3 controladores, sus correspondientes vistas y

    pasndole parmetros.

  • 7/24/2019 Tutorial Zendframework2 v002

    19/25

    Zend Framework2

    18 Mariano Garca Galn

    6- Crear mtodo valoresurlActionen TrabajoControllery su vista. Ahora vamos a

    configurar el controlador para que se pueda recibir los parmetros a tavs de la Url

    pero para ello vamos a crear una nueva vista valoresurl con su correspondiente

    mtodo en el controlador. Todo lo anterior es necesario para comprender los

    siguientes pasos.

    Controlador

    Vista

  • 7/24/2019 Tutorial Zendframework2 v002

    20/25

    Zend Framework2

    19 Mariano Garca Galn

    7- Ahora nos dirigimos a Module.config para configurar el controlador para que pueda

    recibir los parmetros a travs de la url.

    Donde tenamos este cdigo:

    Lo cambiamos por este otro:

    As le estamos diciendo al framework que por la url vamos a pasar otro parmetro.

  • 7/24/2019 Tutorial Zendframework2 v002

    21/25

    Zend Framework2

    20 Mariano Garca Galn

    8- Volvemos al controlador y vamos a utilizar el componentefromRoutedel mtodo

    params() para generar la interaccin con los valores que vienen va Getde la url.

    Controlador

    Vista

    Resultado

  • 7/24/2019 Tutorial Zendframework2 v002

    22/25

    Zend Framework2

    21 Mariano Garca Galn

    Un ejemplo de trabajar con esto puede ser:

    En una pgina de noticias eliges la seccin por ejemplo deportesy el articulo sera la id,

    pudiendo as mostrar diferentes artculos dependiendo de la id que le pasemos como

    parmetro a la url.

    9- Datos de inters.

    *Saber la url Base en la que estamos, pasndola a travs del controlador como parmetro.

    Controlador

    Esto puede ser muy til para crear enlaces entre las distintas pginas de nuestro proyecto o

    hacer redirecciones.

    *Hacer un redirect

  • 7/24/2019 Tutorial Zendframework2 v002

    23/25

    Zend Framework2

    22 Mariano Garca Galn

    5. Layout

    View Manager /Application/config/module.config.php

    El objeto View Manager sirve para manejar el administrador de vistas. Aqu se pueden

    configurar las rutas de los archivos de error y excepciones.

    Dentro de template_map es donde se configuran las rutas de los layout, que se encuentra

    dentro del directorio /Application/view/layout, es una archivo que tiene una extensin

    PHTML.

    Antes de comenzar a trabajar con los Layout tenemos que saber dnde se almacenan los

    archivos de imgenes, css, javascript

    Todos estos se encuentran en la carpeta Public

  • 7/24/2019 Tutorial Zendframework2 v002

    24/25

    Zend Framework2

    23 Mariano Garca Galn

    ZendFramework asocia un layout a cada vista, por defecto usa uno pero nosotros podemos

    crear y modificar los Layout y asignarlo en el controlador.

    Lo que intentamos hacer es mantener una misma estructura para diferentes vistas cambiando

    solo el contenido.

    Ejemplo de Layout Bsico:

  • 7/24/2019 Tutorial Zendframework2 v002

    25/25

    Zend Framework2

    2 Mariano Garca Galn

    Agregar Layout a View Manager /Application/config/module.config.php

    Ahora cambiaremos el layout de la vista indexdentro de TrabajoController.

    Resultado

    El cdigo css lo dejo a eleccin vuestra.

    Llegado a este punto puedes usar una platilla html descargada de internet y crear una pgina con

    estilos.css usando diferentes Layout para cada vista.