Zend framework 2 es el framework de los creadores del núcleo de PHP (Zend); la versión 2 de este popular framework refleja los cambios introducidos en PHP 5.3 como son los espacios de nombres (namespaces), closures y un mejor uso de la Programación Orientada a Objetos; así como de los patrones de diseño.
El objetivo de Zend Framework 2 es apoyar al programador en el desarrollo de aplicaciones web empresariales y complejas.
Zend Framework 2 puede ser usado para el desarrollo de aplicaciones de cualquier tamaño; por tanto su uso no es tan sencillo como otros frameworks; como Code Igniter o Cake PHP. Zend Framework 2 fue publicado en setiembre de este año y en el corto periodo que tiene ha generado gran espectativa en la comunidad de desarrolladores de PHP y de aquellos que han estado trabajando con ZendFramework.
2.- Características Nuevas
Zend Framework 2 fue desarrollado con la idea de mejorar el framework; adaptándolo a la evolución del lenguaje y tomando las mejores ideas de los frameworks de desarrollo; el resultado fue un framework moderno y muy fexible que brinda al programador característica muy importantes para el desarrollo de aplicaciones empresariales. Las principales novedades de Zend 2 respecto a la versión anterior son las siguientes:
- Desarrollo basado en Pruebas Unitarias con PHPUnit
- Un nuevo sistema de módulos para organizar el código
- Una nueva arquitectura basada en servicios mediante Inyección de Dependencias
- Un gestor de eventos para olvidarse de los hooks y poder ejecutar código propio en cualquier punto de la ejecución de las aplicaciones
3.- Instalación de Zend Framework
3.1.- Pre Requisitos
Zend Framework 2 requiere una adecuada compresión y uso de la Programación Orientada a Objetos de PHP, así como de Apache; en cuanto al uso de VirtualHost, mod_rewrite, y los archivos .htaccess; y del manejo de un servidor de base de datos (MySQL). Con la finalidad de comprender un entorno de desarrollo profesional; aparte de los requisitos mencionados, usaremos Ubuntu Linux como Sistema Operativo para el servidor y desplegaremos el primer hola mundo en el Framework.
3.2.- Instalación de Ubuntu Linux
Podemos instalar Ubuntu Linux de manera física en una máquina virtual; para quienes tengan instalada una máquina física con Ubuntu pueden obviar este paso y para quienes solo tengan Windows, pueden instalarlo fácilmente con Virtualbox
3.2.1.- Instalación de VirtualBox
Descargamos VirtualBox para widows de http://www.virtualbox.org y lo instalamos
3.2.2.- Instalación de Ubuntu Linux en una Máquina Virtual de VirtualBox
- Le damos click al icono de Nueva y le damos nombre a la máquina virtual "Ubuntu LAMP Server", se va seleccionar Tipo: Linux Versión: Ubuntu
- Seleccionamos 1024MB de RAM para la nueva máquina Virtual
- Creamos una nueva unidad de disco duro de y seleccionamos "Crear un disco Virtual Ahora" - Tipo de unidad de disco duro: VDI - Reservado Dinámicamente - Ubicación y Tamaño por defecto se guarda en la carpeta VirtualBox VMs en la carpeta del usuario; - tamaño 6GB - Crear
- Ahora le damos click en Configuración - Seleccionamos Red y elejimos Adaptador Puente Nombre: Poner la tarjeta de Red - Dar click en Almacenamiento y donde dice a la derecha Unidad CD/DVD dar click al ícono de CD y seleccionar la unidad de CD donde está el disco instalador de Ubuntu; tambien se puede seleccionar el archivo iso; luego dar clik en Aceptar - Dar click en la flecha verde "Iniciar" para arrancar la máquina virtual
- Ahora iniciará el CD de Ubuntu; despues de un momento nos saldrá un diálogo para
- elegir el idioma y a la izquierda le damos click en "Instalar Ubuntu", le damos
- click en "Continuar"
- Borrar el disco e Instalar Ubuntu
- Instalar Ahora
- Donde se Encuentra "Lima"
- Distribución del Teclado "Español Latinoamericano"
- ¿Quién es Usted?
Su nombre: alumno
El nombre de su equipo: serverlamp
Nombre de usuario: alumno
Contraseña: alumno
Confirme su Contraseña: alumno
Al final de la instalación nos pide Reiniciar
- Podemos hacer la instalación con la pantalla completa
- Para sacar el puntero del mouse de la máquina virtual, presionar el ctrl de la derecha
- Si se demora en "Descargar fichero" o en "Descargar paquetes de idioma" dar click en la flecha de despliegue y luego "skip"
3.2.3.- Configuracion de la Red
Para nuestro curso usaremos una red hipotética 192.168.1.0/24 con asignación de IP de nuestro equipo linux 192.168.1.10, router 192.168.1.1 y DNS 8.8.8.8
- Dar click a las flechas opuestas que está en la barra superior y elegir "Editar las conexiones"
- Seleccionar Conexión Cableada 1 y click en Editar
- Pestaña "Ajustes Ipv4"
- Método manual
- click en añadir:
Dirección: 192.168.1.10
Mascara de Red: 24
Puerta de Enlace: 192.168.1.1
Servidores DNS: 8.8.8.8
Guardar y Cerrar.
3.3.- Instalación de SSH, Apache, PHP y MySQL
- Dar click en el icono Ubuntu y escribir en la barra de comandos terminal
- La terminal de Linux nos permite ejecutar comandos para administrar el sistema operativo; al abrir la terminal iniciamos con el usuario alumno
- Para loguearnos como root (el superusuario de Linux) ejecutamos:
$> sudo su - clave: alumno
- Actualizamos la lista de paquetes instalables
$> apt-get update- Ahora instalamos el servidor SSH para poder administrar remotamente nuestro servidor
$> apt-get -y install ssh- Ahora para probar la conexión desde windows descargamos el programa putty http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html descargar el archivo putty.exe, ejecutarlo y conectarse al IP del servidor linux
usar el usuario: alumno clave: alumno
3.3.1.- Instalación de PHP, MySQL y Apache (Entorno de Desarrollo)
$> sudo su - $> apt-get update $> apt-get install php5 apache2 php5-cli \ php5-xdebug php5-mysql mysql-server \ php5-mcrypt php5-gd php5-memcache php-pear Reiniciamos apache $> /etc/init.d/apache2 restart Nos pide una contraseña para el root de Mysql clave: alumnodesde windows abrir el navegador y entrar a la IP del servidor
3.4.- Comandos básicos para trabajar con archivos y directorios En linux existe solo un directorio princiapl raiz / y en el cual se encuentran todos los demas directorios, Ej: el DOCUMENT_ROOT (raiz de pàginas web) se encuentra en /var/www la base de datos se encuentra en /var/lib/mysql los archivos de configuración de apache se encuentran en /etc/apache2 Nos logueamos como root
$> sudo su -
Comando cd
Nos sirve para movernos por los directorios Ej:
$> cd /var/www $> cd /etc/apache2 $> cd conf.d
Comando pwd
Nos dice en que directorio nos encontramos Ej:
$> cd /var/www $> cd pwd
Comando ls
Nos sirve para listar los archivos y directorios
Ej:
$> cd /var/www $> ls - Listar en columnas y detalles Ej: $> ls -l (lista el directorio actual) $> ls -l / (lista los directorios del raiz) $> ls /etc/apache2/conf.d (lista el directorio /etc/apache2/conf.d )
Comando mkdir
Nos sirve para crear directorios
Ej:
$> cd /var/www $> mkdir images $> mkdir js $> mkdir css
Comando nano nano es un editor sencillo para crear archivos
Ej:
$> cd /var/www $> nano index.php
<?php echo "<h1>hola mundo</h1>"; ?>ctrl + o --> grabar ctrl + x --> salir Desde windows entrar a la IP del servidor con el navegador http://192.168.1.10
Comando cp
Nos sirve para crear archivos y directorios
Ej:
$> cd /var/www $> cp index.php saludo.php (copia un archivo)Desde windows entrar a la IP del servidor con el navegador http://192.168.1.10/saludo.php
$> cp -R images imagenes (copia un directorio) $> ls -l /var/www
Comando mv
Nos sirve para renombrar y mover archivos y directorios
Ej:
$> cd /var/www $> mv js javascript (renombrando el directorio js a javascript) $> ls $> mkdir banners $> mv banners images/ (moviendo el directorio banners a images)
3.5 El editor vim
El editor vim es el editor más común en las plataformas unix; su resaltado de syntaxis nos ayuda con los archivos de configuración
Comandos del Editor VIM ESC : ingresa al modo comando i : entra en modo insercion desde la misma linea o : entra en modo insercion desde la sgte linea 1G : va a la primera linea 23G : va a la linea 23 :45 : va a la linea 45 G : va a la ultima linea /palabra : busca una cadena n : sigue buscando dd : corta o borra una linea d8d : corta o borra 8 lineas yy : copia una linea y7y : copia 7 lineas p : pega el contenido del portapapel 5p : pega 5 veces el contenido del portapapel u : deshace la ultima accion ctrl+r : rehace la ultima accion x : borra una letra :w : graba el archivo actual :wq : graba y sale :w! : graba de forma forzada :wq! : graba y sale forzadamente :q! : sale forzadamente :1,$s/busqueda/reemplaza/g :busca una cadena y la reemplaza :! comando : ejecuta un comando en bash y vuelve a VIM :e archivo : abre un nueva archivo en el sgte buffer :b1 : va el primer buffer abierto :b2 : va al segundo buffer, para cambiar de buffer hay que grabar el buffer actual :set number : muestra los numeros de linea :set nonumber : quita los numeros de linea :set paste : habilita el pegado sin auto identificacion :set ts=3 : establece a 3 los espacios de los tabs Insertar : entra en modo de reemplazo :saveas archivo : guarda como nombre archivo :shitf+a : entra en modo insercion al final dpel D : elimina texto desde el cursor actual hasta el final de la linea dG : elimina todo hasta la ultima linea :wq! ++utf8 : guarda el fichero en modo UTFP (por defecto) :nohl : cancela los resultados de busqueda
Instalación de VIM
$> sudo su - $> apt-get -y install vim
Ejercicio 1: Crear archivo poema
$> vim poema i -----> Inserta texto Oh gran Linux que quita la ignorancia en mi vida, a ti te consagro mi aprendizaje. ESC ----> Lleva al modo comando :wq ----> graba y sale $> cat poema Gestion de temporales de vim $> vim poema (agregar al final) G ----> van a la última línea o ----> modo inserción en una nueva línea Prometo alejarme del maligno windows Cerrar a la mala dando click en la X de la ventana del terminal $> vim poema Sale el mensaje de alerta el temporal y puede elegir entre estas opciones [A]brir para lectura únicamente, (E)ditar de todas formas, (R)ecuperar, (B)orrar(S)alir, (A)bortar: Seleccionamos "r" y le damos enter i -----> insetar texto desde mañana ESC -----> volver al modo comando :wq! -----> grabar y salir forzadamente Borrar el temporal $> rm -f .poema.swp
Ejercicio2:
Crear archivo saludo y ejecutar ejercicios de comandos vim
$> vim saludo i hola mundo ESC yy 20p G o windows es lo maximo ESC /hola n n :set number G yy 30p :1,$s/windows/linux/g dd 45G d2d dG u ctrl+R :! date :w :e otrosaludo :b1 1G yG :b2 p :wq! $> cat saludo (muestra el contenido del archivo) $> cat otrosaludo
Archivo de configuracion de VIM
$> vim /etc/vim/vimrc 36G ---> ir a la linea 36 borrar la comilla inicial de las siguientes 3 lineas de la 36 a la 38 G ---> ir a la última línea o set nobackup set number set ts=4 set paste ESC :wq $> vim /etc/vim/vimrc ESC:q
4.- Instalación de ZendFramework 2
Una vez que ya tenemos nuestro entorno LAMP, vamos a configurar un primer proyecto con Zend Framework 2
4.1.- Prerequisitos
1.- Primero necesitamos habilitar el módulo mod_rewrite en Apache y permitir el uso de .htaccess en los directorios
2.- Instalar composer
3.- Crear el proyecto de Zend Framework 2 con Composer
4.1.1 .- Habilitando mod_rewrite en Apache
$> sudo su - $> cd /etc/apache2/mods-enabled $> ln -s ../mods-available/rewrite.load $> /etc/init.d/apache2 restart4.1.2.- Instalando Composer (Gestor de dependencias de librerías)
$> sudo su - Primero instalamos curl (comando para descargar archivos) $> apt-get install curl Ahora instalaremos git (sistema de control de versiones distribuido) $> apt-get install git Descargamos composer y lo movemos al /usr/bin para ejecutarlo en cualquier directorio $> curl -s https://getcomposer.org/installer | php -- $> mv composer.phar /usr/bin Nota: si nos sale un mensaje de warning de timezone en php $> vim /etc/php5/cli/php.ini (archivo de configuración para consola) 960: date.timezone = America/Lima $> vim /etc/php5/apache2/php.ini (archivo de configuración para web) 960: date.timezone = America/Lima4.1.3 .- Creando el proyecto de Zend Framework 2
Con composer crearemos el proyecto zftest en el directorio /var/www/zftest
Esto nos creará el proyecto y nos descargará el ZendFramework2
$> composer.phar create-project -s dev \ --repository-url="http://packages.zendframework.com" \ zendframework/skeleton-application /var/www/zftest
4.l.4.- Editando el VirtualHost
para hacer que el directorio /var/www/zftest/public sea el raíz
Reemplazamos todo el contenido existente
$> vim /etc/apache2/sites-enabled/000-default
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/zftest/public <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/zftest/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Ahora reiniciamos apache y accedemos al proyecto desde el navegador http://localhost
$> /etc/init.d/apache2 restart
Para verificar que el archivo .htaccess está funcionando, navegamos a http://localhost/loquesea y debería saler un error 404 con el logo de ZF
Finalmente editaremos la vista del Módulo Application, Controlador Index, Action Index
Reemplazando todo el contenido
$> vim /var/www/zftest/module/Application/view/application/index/index.phtml <h1> Hola Mundo desde Zend Framework 2 </h1>Entramos con el navegador a http://localhost y veremos el mensaje del hola mundo
5.- Herramienta de Depuración de PHP
Xdebug es una extensión para depurar errores en php, para poder configurarlo
instalamos la extensión php5-xdebug
$> apt-get install php5-xdebug
Activamos Xdebug (verificar la carpeta donde se encuentra la extension xdebug.so)
$> vim /etc/php5/conf.d/xdebug.ini xdebug.ion=/usr/lib/php5/20100525/xdebug.so xdebug.remote_enable=1 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" xdebug.remote_mode=req xdebug.profiler_enable=1 xdebug.profiler_output_dir="/tmp/xprofile/" xdebug.collect_params=On xdebug.show_local_vars=On Activamos la visualización de error en formato html para poder depurarlos efectivamente $> vim /etc/php5/apache2/php.ini display_errors=On html_errors = On $> vim /etc/php5/cli/php.ini display_errors=On $> /etc/init.d/apache2 restart
No hay comentarios.:
Publicar un comentario