jueves, 21 de junio de 2012

Instalar y configurar NetBeans IDE 7 con Symfony2 en Windows 7

Cuando necesitamos desarrollar proyectos Web en PHP de un tamaño ya considerable, tenemos que plantearnos seriamente el aplicar arquitecturas que faciliten el mantenimiento y modificación futuros del proyecto que puedan surgir ante el cambio de requisitos. Un patrón arquitectónico software adecuado para este tipo de casos podría ser MVC (Modelo, Vista y Controlador).

El MVC es un patrón de arquitectura del software que diferencia en distintos compomentes los datos de una aplicación, la interfaz de usuario, y la lógica de negocio.

En el caso de PHP disponemos de distintos Frameworks que facilitan el desarrollo de proyectos con el patrón MVC, en este artículo concreto, explicaremos como instalar la herramienta NetBeans IDE 7 junto con el Framework Symfony2, siendo el Framework de Symfony2 quien nos facilitará la tarea.

Tenemos que tener en cuenta que en NetBeans IDE 7, por defecto, ya viene instalado el plugin Symfony, pero no Symfony2.

Los pasos que debemos seguir para instalar NetBeans IDE 7 con Symfony2 en Windows 7 son:

Nota: Consideramos que disponemos de un servidor web (IIS por ejemplo) y PHP 5 instalado de antemano. También podríamos tener ya instalado un servidor MysSql.

1. Descargamos NetBeans IDE 7 de http://netbeans.org/downloads/index.html con soporte para PHP y lo instalamos (la instalación es bastante simple, no hay que modificar ningún parámetro que venga por defecto, vamos pasando los pasos de instalación con "next"). 


Descargar NetBeans IDE 7



2. Abrimos NetBeans IDE 7 y vamos a "Tools->plugins" pulsamos en la pestaña de "Available Plugins" y buscamos en el campo "Search" la cadena "symfony2".






3. Entre los resultados de búsqueda seleccionamos "PHP Symfony2 Framework" y lo instalamos pulsando "Install".


4. Entramos en la web de symfony http://symfony.com/download y descargamos el archivo con extensión ".zip" en la que no ponga "without vendors".






5. Abrimos NetBeans IDE 7 y vamos a "Tools->options", le pulsamos a la opción de "PHP" y después a la pestaña "Symfony2". En el botón "Browse.." seleccionamos el archivo ".zip" que descarguemos de la página oficial de Symfony. Este paso sirve para indicar a NetBeans IDE 7 la ubicación del Framwork Symfony 2.



6. Creamos un proyecto de prueba llamado "proyectoSymfony2". Desde "File->New Project".

Elegimos proyecto aplicación PHP.






Especificamos la ruta donde se almacenará nuestro proyecto, la cual tendrá que ser accesible por nuestro servidor web para poder probarse el proyecto durante el desarollo.






Indicamos el Index del proyecto o archivo de entrada, concretamente tendríamos que indicar el archivo contenido en "./web/app_dev.php"




Seleccionamos Symfony2 para nuestro proyecto.






7. Ejecutamos el proyecto. En caso que nos salga un excepción referida al Timezone tal como se muestra a continuación:







Tendremos que añadir la linea de código "date_default_timezone_set('Europe/Madrid');" en el archivo de nuestro proyecto "./app/AppKernel.php" tal como aparece en la imagen.



8. Ahora ya podemos ejecutar nuestro proyecto de prueba "proyectoSymfony2" y debería funcionar correctamente apareciendo algo similar a:





25 comentarios:

  1. muy buen tutorial, seras debidamente recompensado cuando sea el amo indiscutible del universo.
    saludos!

    ResponderEliminar
    Respuestas
    1. muchas gracias, aunque espero no tener que recibir dicha recompensa. saludos :).

      Eliminar
  2. Muchas gracias, muy bueno, me ha sido de mucha utilidad.

    ResponderEliminar
  3. Estupendo ya me estaba dando de bruces sobre cómo configurar el plugin en netbeans.

    Tengan en cuenta instalar también el plugin para TWIG !

    ResponderEliminar
  4. Creo que es la primera vez en mi vida que sigo un tutorial y me funciona todo a la primera, además de tiempo de no tocar temas de programación.
    Si estuvieráis cerca os invitaba a todos a unas birras, como va a ser complicado me las tomo a vuestra salud.

    ResponderEliminar
  5. Hola guille, me alegro que te haya sido de utilidad. Un saludo.

    ResponderEliminar
  6. Hola.....muy bueno tu tutorial...me fue muy util....thanx :)

    ResponderEliminar
  7. De nada, encantado de haberle podido ayudar. Si le surge cualquier cuestión no dude en consultar. Saludos.

    ResponderEliminar
  8. No me aparece el plugin de PHP Symfony2 Frameworks que hago? tengo la ultima versión de Netbeans.

    ResponderEliminar
  9. Buenas.
    Ve a Tools-> Plugins y la pestaña "Available Plugins". Una vez allí pulsa en el botón de "Reload Catalog". Una vez recargado el catálogo mira a ver si te aparece. Un saludo.

    ResponderEliminar
  10. Nice, me funcionó perfecto, tuve un error al poner la ruta del proyecto, pero antes de caer en desesperación revisé el directorio y me dí cuenta que el "app_dev.php" queda dentro de la carpeta "web" en el proyecto :D

    Muchas gracias!

    ResponderEliminar
    Respuestas
    1. Buenas. A mi me sucedió algo similar en su momento. Me alegro que lo haya resuelto. Un saludo :-)

      Eliminar
  11. Muy buen tutorial, me sirvio, aunque yo puese el time zone de madrid luego busque en
    Google para America Ecuador aqui dejo la ruta

    http://www.php.net/manual/es/timezones.php

    ResponderEliminar
  12. El problema del timezone es engorroso estarlo cambiando cada vez que creas un nuveo proyecto, revisando la pagina del symfony2 encontre que este cambio hay que hacerlo en el archivo de configuracion de php
    abrir PHP.INIT y actualizar esta linea, quitar los puntos y coma
    date.timezone = "America/Guayaquil" de tal forma que evitaremos este problema a futuro

    ResponderEliminar
  13. Buenas Manuel, efectivamente la solución que propones es la idónea, tener configurado PHP con la zona horaria en la que nos encontramos. Uno de los motivos por los que no expliqué dicha solución es porque hay ocasiones en los que no tenemos acceso a modificar la configuración PHP del servidor, y además que de esta forma independendizamos nuestro proyecto de la configuración que tengamos en el servidor. De todos modos como ya he dicho, la solución que propones es la idónea. Muchas gracias :-).

    ResponderEliminar
    Respuestas
    1. De nada, yo tambien aqui empezando con Symfony2 soy novato en esto!

      Eliminar
  14. muy bien gracias por el aporte

    ResponderEliminar
  15. buen aporte, añadir que si trabajas en ubuntu no debes olvidar dar permisos

    chmod -R 777 app/cache
    chmod -R 777 app/logs

    saludos

    ResponderEliminar
  16. Para alguien que tenga problemas tratando de instalar el symfony 1.4 u otra versión menor que la del 2, primero hagan unzip del archivo rar, ya que de otra forma les dará erro como me pasaba, suerte y gracias

    ResponderEliminar
  17. He instalado la versión más actual de Netbeans (7.3.1) y Symfony2.3.3, pero me aparece lo siguiente en donde salen los input:

    Warning: require(C:\xampp\htdocs\prototipo\app/../vendor/autoload.php): failed to open stream: No such file or directory in C:\xampp\htdocs\prototipo\app\autoload.php on line 9

    Fatal error: require(): Failed opening required 'C:\xampp\htdocs\prototipo\app/../vendor/autoload.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\prototipo\app\autoload.php on line 9

    Estoy usando XAMPP 1.8.2 (la más reciente) y necesito ayuda.

    ResponderEliminar
  18. Disculpa pero me sale este error como lo soluciono "php interpreter must be selected"

    ResponderEliminar
  19. Hola diego, debes ir a Tools->Options->Php en la pestaña General, en el campo de PHP 5 Interpreter, debes dar clic en Browse.. y seleccionar el archivo php.exe "C:/xampp/php/php.exe" y clic en OK. Espero que te sirva!

    ResponderEliminar
  20. Muchas gracias. Me ha sido muy útil este tutorial. Si puedes ayudarnos con una explicación sobre cómo generar código automático (ingeniería inversa) con este framework a partir de la base de datos implementada en MySql, nos darías una gran ayuda. Nuevamente, muchas gracias.

    ResponderEliminar
  21. Estimad@s Ya no existe la version .zip, de donde la descargas para Netbeans?.
    Gracias

    ResponderEliminar