Por favor, haz un clic sobre los anuncios cuando pases por mi blog, ya? =)

Zend Framework 2: Crear un proyecto usando Netbeans

23 comentarios
Este artículo es la segunda parte de mi tutorial de Zend Framework 1: Introducción

Breve explicación de qué hace Zend Framework

ZF es , como ya dije, un conjunto de librerías que nos permiten crear sistemas con PHP usando  la metodología MVC (Modelo, Vista, Controlador). Pero para que ZF funcione, nuestro sistema web debe estar organizado en una forma especial,. Se deben crear carpetas con nombres específicos, y debemos guardar los archivos PHP que forman la Vista del sistema en cierta carpeta, y los archivos que forman el Modelo en otra carpeta, etc.  Además se debe crear un archivo llamado .zfproject.xml en donde se indica un detalle de las clases PHP usadas, qué rol juegan y dónde se ubican.

Menudo lío, ¿verdad? Pero no te desesperes, ya que ZF viene con un intérprete de línea de comandos que hace todo esto por nosotros: zf.bat (ó zf.sh para Linux). Usando este comando podemos crear projectos de ZF que nos crearán toda la estructura de carpetas y el archivo .zfproject.xml con los detalles del proyecto. También lo usaremos para crear el esqueleto de las clases que implementan el modelo MVC, como veremos más adelante.

 Instalando nuestro ambiente de Trabajo

Antres de empezar a codificar, lo mejor sería hacernos con un buen IDE para trabajar en PHP. Puedes usar el que más te guste, yo usaré NetBeans 6.9.1 (la version 7.x tambien trae soporte, desde luego). Originalmente este fue pensado como un IDE para trabajar en java, pero tiene extensiones para trabajar en PHP, C/C++ y otros lenguajes. Además, podemos configurarlo para que podamos ejecutar el comando zf.bat directamente desde el IDE (opcional). Netbeans es gratuito, fácil de usar y multilenguaje. Puedes bajarlo desde acá. Si solo lo vas a usar para codificar en PHP, puedes bajarte la versión  para PHP, que es más liviana que la que trae soporte para todos los lenguajes.

Instalar Netbeans es fácil. Solo sigue los pasos y listo.

Una vez instalado el IDE, ábrelo y ve a crear un nuevo proyecto (Archivo / Nuevo proyecto)
Selecciona en Categorías PHP y en Proyectos : aplicación PHP y presiona siguiente


Elige miproyecto como nombre  para el proyecto, y guardalo en una carpeta DENTRO del directorio para las paginas web del servidor que instalaste. En el caso de Xampp, el directorio es htdocs. Si estas haciendo esto en linux puedes guardarlo en ~/public_html, pero no olvides darte los permisos correspondientes para ESA carpeta (mod rewrite y otras yerbas que iremos explicando más adelante).

Guardaremos nuestro proyecto en la carpeta
C:\xampp\htdocs\miproyecto



presiona Siguiente

aquí veras la url desde la que ejecutaras tu proyecto (podrás cambiarla después, si lo deseas):
http://localhost/miproyecto/




presiona Siguiente

En esta ventana debes indicar si quieres desarrollar este sistema usando algún framework de PHP. Nosotros marcaremos Zend Framework ( ya lo habías imaginado, ¿verdad, aprendiz perspicaz?)

Pero antes de apretar Siguiente, haremos clic en Opciones, ese link azul al lado derecho en la ventana, pues aún no hemos configurado por primera vez nuestro ambiente de desarrollo en PHP

Configurando al ambiente PHP

Esto sólo se hace una vez, así que no te preocupes si te parece algo aburrido. Se trata simplemente de decirle a Netbeans dónde está nuestro zf.bat para que netbeans pueda usarlo para crear los proyectos con ZF, las clases en PHP, etc.


en la ventana que nos aparece ahora, en la pestaña Zend debemos decirle a netbeans en dónde está nuestro archivo zf.bat. Si lo agregamos al PATH de Windows (o de linux) como explicamos más arriba, Netbeans lo encontrará solo. Si no, deberemos indicárselo nosotros mismos.

Ahora, para poder usar zf.bat desde Netbeans, debemos registrar un proveedor de ZF. Para eso, hacemos clic en el botón Register Provider.

Nos mostrará en la ventana principal del IDE un aviso diciendonos que el provider ha sido registrado con éxito.

Nota: si nos sale un aviso que nos dice que no se encuentra archivo de configuración de usuario o algo por el estilo, es que nos olvidamos de ejecutar 

zf --setup config-file

desde una consola. Me llevó SEIS dias descubrir eso...

Actualización: si actualizamos Netbeans 6.9 o si tenemos una versión superior, si no hemos ejecutado zf --setup config-file, el ide lo hará por nosotros. Genial, ¿no?


Ahora volvemos a nuestra ventana



y presionamos "siguiente".

Internamente, Netbeans llama al comando 
zf create project miproyecto

y con eso se crea toda la estructura de carpetas y archivos que ya habíamos mencionado.

23 comentarios :

Anónimo dijo...

Excelente amigo sigue asi

Anónimo dijo...

Hola amigo, yo tengo netbeans 6.8, como podría hacer? para crear un proyecto con zend framework.
O tengo que descargar la version 6.9?
saludos.

Angelorum dijo...

Hasta adonde sé, netbeans trae soporte para Zend sólo en la versión 6.9, así que tendrías que descargártela. O bien podrías usar algún otro ide, pero eso ya es decisión tuya.


Saludos :)

Anónimo dijo...

Gracias.
Una pregunta mas, en caso de que desinstale la 6.8 y descargue la 6.9 que pasa con los proyectos que tengo guardados en Netbeans.
O se puede actualizar la 6.8 sin desinstalar?
Disculpa tanta pregunta pero hace poco que trabajo con Netbeans y esto de crear automaticamente un proyecto de ZF desde el ide suena interesante.
Saludos desde Montevideo.

Angelorum dijo...

Puedes tener instaladas ambas versiones sin problemas.
Ahora, si borras una e instalas la otra (sería bueno hacer eso, pues la version 6.9 es más rápida que la versión 6.8, segun yo) no pasa nada con los proyectos, ahí mismo se quedan.

Es como si desintalaras el Office, los archivos de word no se borran :P

Saludos :)

Anónimo dijo...

Si... yo los proyectos los tengo en Wamp y alli se quedarán :), pero en cuanto al reconocimiento que hace netbeans de los mismos, es a lo que me refería, disculpa tanto mensaje, pero tengo algunas dudas, jaja.

Angelorum dijo...

No hay problema, los proyectos hechos con netbeans 6.8 los puedes abrir con netbeans 6.9 :)

Incluso puedes abrir proyectos hechos con netbeans 6.0.

Saludos :)

Anónimo dijo...

Hola amigo, he creado un proyecto con zend framework hace tiempo y le agregue algunos modulos, controllers y actions, y todo andaba muy bien, ahora unos meses despues lo abro y veo que solo andan los indexAction de cada modulo, no funcionan ni los demas actions ni los demas controllers que no sean los index.
Te pregunto si el archivo zfproject.xml puede tener algo que ver, porque revisando veo que tiene varias configuraciones "false".
El proyecto lo cree con zend tool hace casi un año y la verdad no se que ha pasado, porque no funciona ahora, no recuerdo haber tocado nada.
Por donde debiera buscar la falla?
Te agradezco si me puede ayudar y perdón el post tan largo.

Angelorum dijo...

Es posib le que elproblema este en el archivo .zfproject.xml, pues es el lugar donde zend hace referencia a las acciones y sus controllers.
Los 'false' estan bien, es la configuracion por defecto. Podrias revisar la seccion controladores/acciones de el .xml

Por ejemplo, en








Dice que tengo un controlados Index (IndexController.php) y que tiene las acciones index (o sea, una funcion indexAction() debe existir en IndexController.php ), logout (logoutAction() ), etc

Podrias revisar si estan bien.

En verdad nunca he tenido un error así. espero esto te sirva :)

Saludos

Anónimo dijo...

Estimado, primero quiero felicitarlo por esta serie de posts acerca de zend framework, la verdad que muy claros.
Te pediría si me puedes explicar donde ejecuto:
zf --setup config-file

en inicio->ejecutar me dice que no encuentra el archivo zf.

Demas esta decir que no he podido crear el proyecto desde Netbeans.

Cordiales saludos.

Anónimo dijo...

Gracias por tu ayuda, tenia varios dias sin poder configurar el netbeans con Zend :(

Angelorum dijo...

varios dias? afortunado... yo tuve varias.. semanas XD

Travianero dijo...

Capitulo 2 leido. Buen aporte y todo funciona ok hasta ahora. Sin embargo como siempre tengo una duda xD. Netbeans solo crea la estructura de ZF cuando es no modular?...que sucede si es modular, lo tendria que hacer manualmente? Por ejm Modulo usuario, modulo default, modulo admin u otros modulos que se quiera colocar. Graciasssss, sigo con el sgte capitulo ;)

Angelorum dijo...

Mmm... modular..? sí, es decir, ZF admite modulos. Puedes separar los controladores en módulos (que no son nada mas que carpetas en el fondo...), pero eso lo haces depués.

Lo primero es crear la estructura general del proyecto ZF, es decir, el archivo .xml y las carpetas para cada cosa.

:)

Anónimo dijo...

Ok gracias Angel ya me salio ahora otra consulta ya le di como dice register provider en netbeans y me salio este mensaje

Provider registered, review output windows for posible errors
y luego le di aceptar

Me gustaria saber si se registro correctamente para seguir adelante con el sgte capitulo

Saludos.

Anónimo dijo...

Queda aclarado este tema

Anónimo dijo...

Cuando ejecuto el comando

C:\>zf --setup config-file

Warning: file_put_contents(\/.zf.ini): failed to open stream: Invalid argument i
n C:\xampp\php\zf.php on line 514
Config file written to \/.zf.ini

me da el error de arriba y nunca me deja crear el archivo zf.ini.Estoy trabajando en windows xp y he seguido los pasos al pie de la letra.tengo las ultimas actuales de xamp,zend y netbeans.
Muchas gracias

Anónimo dijo...

Sobre mi post de antes el error que da cuando ejecuto el comando

C:\>zf --setup config-file.
La solucion es la siguiente para que te funcione bien el netbeans.
Tienes que crearte estas variables
en el entorno del sistema.Arriba en el manual muestra como crear variables del sistema.Las variables con :
ZF_HOME =C:\Users\(nombre de usuario)
ZF_STORAGE_DIR=C:\Users\(nombre de usuario)\.zf
Una vez creadas reinicias la computadora.
y luego ejecutas el comando
C:\>zf --setup config-file
te creara el fichero.
Y luego ejecutas
C:\>zf --setup config-adsasddsa
y te mostrará algo como esto,en donde ves que tienes las variable bien definidas

ZF Command Line Tool - Setup
----------------------------

Current Paths (Existing or not):
Home Directory: C:\Users\(nombre de usuario)
Storage Directory: C:\Users\(nombre de usuario)\.zf
Config File: C:\Users\(nombre de usurio)/.zf.ini

Angelorum dijo...

En mi caso, no fue nececesario crear ninguna de esas variables, ni en Win xp, OpenSuse ni Ubuntu

Hanna dijo...

Hola Angel, mi gozo en un pozo.
Por temas de trabajo tengo que usar Eclipse, y no sé si será posible integrarlo con Zend sin tener que usar la versión esa de pago de Zend Studio... :-?

estoy googleando desde hace una hora, de momento sin resultado... :-(

Gracias

Angelorum dijo...

Hola, Hanna (Montana?)
Tal vez esto te sirva http://stackoverflow.com/questions/3085030/zend-framework-plugin-for-eclipse-pdt

Pero por lo que veo, no hay un plugin "oficila" para Zend. en todo caso, la unica utilidad del plugin de NB es que te permite ejecutar dese el ide los comandos de zf. Ah, y navegar con facilidad entre actions y views.

Saludos :)

Anónimo dijo...

me costó 20 minutos este capitulo, mas la descarga del netbeans.
Gracias por el tuto, esta buenisimo!!!

fhuvu dijo...

me baje el zend 2.1.4 el nuevo y o hay zf.bat por ningun lado para agregarlo a las variables de entorno jaja