experto en symfony-3

Comandos básicos para empezar con symfony3

En este artículo quiero mostrar una forma sencilla de instalar un proyecto symfony3 y no morir en el intento. No he intentado hacer una redacción extensa, me he centrado en ofrecer los comandos básicos para empezar con Symfony3 y tener un esqueleto funcional y poder desarrollar un proyecto tranquilo sabiendo que aquí están todos los comandos para realizar las repetitivas tareas que hay que hacer en consola.

Instalar Symfony con Composer, (no recomendado)

descargar el ejecutable composer en la raiz de la app para trabajar con ella.

Ahora hay que descargar un esqueleto symfony

Instalar Symfony con el instalador de Symfony, (recomendado)

Para iniciar un nuevo proyecto, Symfony nos prove un instalador propio hecho con php que debemos descargarlo he instalarlo en nuestro servidor, vamos a ello.

Instalamos el programa y le damos los permisos.

Vale ya podemos usarlo, así de fácil. No te voy ha decir como crear un proyecto, ejecuta symfony y verás todas las opciones de este programa.

Bueno yo usaría el instalador que nos deja poner la versión, así podemos elegir, vamos al repositorio y donde pone branch master nos dirá todoas las branch que hay disponibles. https://github.com/symfony/symfony-standard.

Yo he instalado la 3.0

Configurar git para un nuevo proyecto symfony y subirlo a github

Entramos en la carpeta y iniciamos un proyecto git que ya reconoce a symfony y crea el .gitignore por nosotros. Vamos a subirlo a git hub para tener nuestro proyecto de forma pública.

Para ver que archivos han cambiado desde el último commit hacemos, nos dará una relación de archivos muy importante. Este comando lo utilizaremos constante mente.

Ahora cada vez que queramos guardar los cambios que hemos hecho añadimos los archivos…

Hacemos commit y lo subimos al repositorio remoto.

Estos son los comandos básicos para empezar con Symfony3

Para crear un nuevo bundle

Para eliminar un bundle

  1. Eliminar el directorio /src/Test/BlogBundle
  2. Editar /app/config/routing.yml eliminando las rutas del bundle
  3. Eliminar el bundle de aquí /app/AppKernel.php
  4. Limpiar cache php bin/console cache:clear

Vaciar la cache de producción.

Para enlazar los archivos css y js que hay en tu bundle a la carpeta web, crea un enlace simbólico.

Para crear la base de datos hay que definir el usuario y los datos en parameters.yml y crear el usuario en la base de datos, a continuación doctrine creará la BD por nosotros:

Y para eliminarla…

Crear una classe y un repositorio para la clase tipo entidad con doctrine

Si modificas las clases puedes regenerar los códigos de repositorios, el constructor y los getters and setters con el siguiente comando.

O todas las classes de un bundle a la vez

Vamos a crear la tabla en la base de datos, muy fácil…

Generar una entidad, clase, de un solo código.

Enlaces de interés relacionados con Symfony

Creo conveniente poner algunos enlaces muy interesante pero que nos puede llevar un rato encontrarlos, es mejor unificarlos aquí para una mejor consulta mientras desarrollemos nuestro proyecto Symfony3

Empezamos con la documentación de Doctrine, donde encontraréis entre otras cosas como realizar el basic mapping y las Annotations entre otras cosas.

Aquí os dejo las validaciones de los campos de symfony3 para hacer las anotaciones en nuestras classes.

Y como no el libro oficial de symfony en Español y la documentación oficial de symfony

 

 

En este artículo quiero mostrar una forma sencilla de instalar un proyecto symfony3 y no morir en el intento. No he intentado hacer una redacción extensa, me he centrado en ofrecer los comandos básicos para empezar con Symfony3 y tener un esqueleto funcional y poder desarrollar un proyecto tranquilo sabiendo que aquí están todos los comandos para realizar las repetitivas tareas que hay que hacer en consola. Instalar Symfony con Composer, (no recomendado) descargar el ejecutable composer en la raiz de la app para trabajar con ella. [crayon-5b4d12b974cbd127934999/] Ahora hay que descargar un esqueleto symfony [crayon-5b4d12b974cc8669588310/] Instalar Symfony con el…

Valora el post

Me gustaría conocer vuestra opinión sobre lo que escribo, esto me servirá para mejorar.

User Rating: 3.63 ( 26 votes)

About ignacio Farré

Técnico en programación web, amigo de MVC y experto en Drupal, Symfony, Prestashop y bootstrap.
  • octavio rojas sanchez

    muy buen posts para los que estamos empezando con symfony3 me gustaría ver los enlaces. el libro de symfony3 en estañol seria muy bueno tenerlo.

    • http://ignaciofarre.com ignacio Farré

      Gracias Octavio, todavía no hay un libro en español de symfony3, de momento nos tendremos que valer con la documentación en inglés o ir probando la documentación en español de symfony 2.4
      Saludos.

    • http://ignaciofarre.com ignacio farre fuentes

      Gracias Octavio, todavía no hay un libro en español de symfony3, de momento nos tendremos que valer con la documentación en inglés o ir probando la documentación en español de symfony 2.4
      Saludos.

  • Pingback: Ejemplo como instalar drupal 8 por consola en ubuntu server()

  • Milton Alejandro Salcedo Cruz

    :-) Felicidades buen post, también estoy empezando con symfony3, me ayudo mucho.

    • http://ignaciofarre.com ignacio farre fuentes

      Gracias Milton. Ha sido una recopilación de lo principal cuando se empieza con symfony :)

  • http://ignaciofarre.com ignacio farre fuentes

    Muchas gracias por comentar Victor, estaré atento a la charla.
    Saludos.

  • JoseLuisPraxedes

    Hola disculpa me da error al crear el proyecto

    ✕ Symfony 3.2.2 was successfully installed but your system doesn’t meet its
    technical requirements! Fix the following issues before executing
    your Symfony application:

    * date.timezone setting must be set
    > Set the “date.timezone” setting in php.ini* (like Europe/Paris).

    * simplexml_import_dom() must be available
    > Install and enable the SimpleXML extension.

    podrias ayudarme

  • JoseLuisPraxedes

    Hola disculpa me da error al crear el proyecto

    ✕ Symfony 3.2.2 was successfully installed but your system doesn’t meet its
    technical requirements! Fix the following issues before executing
    your Symfony application:

    * date.timezone setting must be set
    > Set the “date.timezone” setting in php.ini* (like Europe/Paris).

    * simplexml_import_dom() must be available
    > Install and enable the SimpleXML extension.

    podrias ayudarme

    • http://ignaciofarre.com ignacio farre fuentes

      Si claro.
      El primer error te está diciendo que debes definir la zona horaria en tu fichero de configuración php.ini. Aquí tienes un post que lo comenta. http://stackoverflow.com/questions/28340066/set-the-date-timezone-setting-in-php-ini

      Por otro lado te esta diciendo que tienes que activar SimpleXML extension, si tienes php7 tienes que intalarlo de esta manera.
      sudo apt-get install php-xml
      si php < 7
      sudo apt-get install php5.6-xml

      Saludos, y gracias por vuestro tiempo en leer mis posts

      • JoseLuisPraxedes

        muchas gracias ya pude instalar correctamente symfony, disculpa tendras un tutorial de como crear un CRUD con symfiny y postgreSQL

        • http://ignaciofarre.com ignacio farre fuentes

          No lo siento, no tengo nada de eso.

  • Isra Bazan

    Muy buena introducción. Una consulta he probado de crear un proyecto desde la consola y desde Eclipse. En ambos casos todo ok el problema es que por cualquier cambio mínimo que haga para verlo reflejado debo limpiar la cache lo cual es muy molesto. Como puedo solucionar lo? Gracias

    • http://ignaciofarre.com ignacio farre fuentes

      Buenas Isar.
      La manera mas cómoda para hacerlo es crear una ruta donde puedas llamar al comando de clear cache, te dejo un Action de ejemplo.

      public function clearCacheAction(Request $request)
      {
      $dir = $this->get(‘kernel’)->getRootDir() . ‘/cache’;
      register_shutdown_function(function() use ($dir) {
      rm -rf $dir/*;
      });
      return $this->render(‘SomeBundle:SomePart:clearCache.html.twig’);
      }

      Mira este post para mas info http://stackoverflow.com/questions/10815962/what-is-the-best-way-to-clean-the-cache-without-running-the-console-command

  • Mauricio

    Hola. No puedo reggenerar una entidad ya creada, me salta este error:
    namespace “VirtualBundleEntityBlog.php” does not contain any mapped entities.

    • http://ignaciofarre.com ignacio farre fuentes

      Tiene pinta de ser la cache, limpia bien la cache.
      Repasa también los namespaces.

  • Nanook

    Hola Ignacio y demás gente de por aquí, muchas gracias por tu aporte compañero!!. Yo tengo ya hecha una web sencilla con symfony3, pero el caso es que cuando me pongo a buscar información para subirla a la web todo lo que veo es demasiado complicado para mí, demasiadas variantes y supuestos. No he conseguido ver una información clara y general. Así que Ignacio si te animas a ver si cuando la subas a la web nos haces un tutorial completo y claro porfa. Que no es que abunden que se diga!! jaja. Gracias, saludos y hasta otra 😉

    • http://ignaciofarre.com ignacio farre fuentes

      Pues si tengo un hueco me pongo ha ello, pero no prometo nada y menos a corto plazo 😉
      Pero te puedo asegurar que cuando lo has hecho ves que es sencillo, es cuestión de configurar los virtual server de apache y poco mas.
      Saludos y animo que todo sale.

  • Denis

    Saludos Ignacio muy buena información. Quisiera consultarte una duda que me está dando vueltas hace rato. Cuando desarrollas una aplicación Symfony3 para un proyecto serio cómo haces? O sea, trabajas en tu servidor local y luego subes esa cantidad de archivos o utilizas un servicio en la nube para desarrollar… o llevas dos versiones diferentes en dos hostings diferentes… espero entiendas mi duda y nos puedas ayudar a todos. Saludos y felicidades..

    • http://ignaciofarre.com ignacio farre fuentes

      Buenos días.
      Para desarrollar, personalmente tengo dos desarrollos.
      Uno para desarrollo y otro para producción, los dos apuntando al mismo github.
      En el de desarrollo voy subiendo versiones a github, cuando hay una versión funcional y que pienso puede actualizarse a producción, voy al servidor de pro y actualizo los archivos que tengo en github que son los de desarrollo. Claro está qeu habrá ficheros que no serán iguales, los cuales los tengo con gitignore.
      De esta manera tengo dos desarrollos mantenidos y versionados.

  • Victor Gracia

    Hola Ignacio, muchas gracias por el post, nuestro equipo de diseño y desarrollo web de Enjoysoft trabajamos a diario con Symfony 3 en los proyectos de nuestros clientes debido a su simple curva de aprendizaje pero a la vez potente Framework para realizar rápidas aplicaciones web. Aprovecho para compartir nuestra sección de noticas donde otros usuarios podrán seguir aprendiendo de la mano de nuestros expertos.

    http://www.enjoysoftconsulting.com

    gracias

  • Prince Ypb

    muy muy buena la informacion especial para mi tesis thanks