Post on 21-Feb-2018
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.html7/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/win7/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/trabajo7/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.