En el siguiente tutorial voy a tratar de explicar los pasos básicos para empezar a trabajar con symfony en el ejemplo bajaremos la versión standar de symfony2,trabajando sobre windows. Se ha elegido esta versión porque pese al tiempo que tiene es la que mejor sirve para explicar la base de framwework aunque cambien los comandos o parte de la arquitectura a la hora de trabajar.
Lo primero que tenemos que hacer es instalar el gestor dependencias composer mediante su página web, e instalarlo con la típica instalación de siguiente siguiente finalizar. En el siguiente link se puede acceder a la página web.
Ver Composer
set PATH=%PATH%;C:\your\path\here\
Ver Path Php
Para empezar a trabajar necesitaremos tener nuestro servidor con php mysql instalado configurando todo manualmente o con algún paquete tres en uno como por ejemplo Xammp AppsServ Wampserver o similares.Seguidamente usando composer ejecutaremos la siguiente linea de comando.
composer create-project proyecto/framework-standard-edition symfony/ "2.6.*"En principio con algo parecido como esto ya podriamos entro a ver el contenido de nuestra web http://localhost/proyecto/web/app_dev.php
En nuestra instalación nombraremos a nuestra aplicación como proyecto. Nos preguntará los datos de acceso a base de datos que se guardará en el archivo parameters.yml ubicado en la ruta app\config. Y con esto ya podemos empezar a trabajar con nuestra aplicación modelo vista controlador.
Dentro del directorio app cabe destacar los siguientes directorios y contenidos dentro del mismo. Cache->Se guarda la cache en entorno de producción como de desarrollo. Config->Se guardan las rutas y las configuraciones de bases de datos en formato yml.
Logs->Se almacenan los logs de la aplicación. Resources->Se guardan las vistas que deseamos colocar para ver la aplicación podemos usar estas o las nos pongamos a crear en nuestrs bundles.
Autoload->Nos permite llamar a todas las clases dinamicamente con los namespaces y poder tener nuestro sistema mvc.Bin->Almacena la consola de doctrine para que podamos ejecutar los comandos que nos permitirán obtener nuestros datos correspondientes de bases de datos.
Src->Tiene como principal objetivo almacenar los bundles correspondientes en los que almacenaremos todo aquello que tal como entidades,controladores,modelos,inyección de dependencias etc.
Vendor-> Almacena todas las funcionalidades del núcleo symfony y donde se encuentra la fuerza del framework, y de donde se pueden ver todos los namespaces que hay en la apide symfony Ver api symfony
Web->Aqui se muestran las páginas iniciales del framework en su instalación.
Bundles->Para crear bundles tenemos que poner el siguiente comando
php app/console generate:bundle
Crear Rutas-> Las rutas se almacenan en formato yml en la siguiente ruta dentro del bundle Resources\config\en el archivo routing y hay pasamos las url que creemos aportunas con un formato parecido al siguiente.
bundle_numero1_ejemplo path:/ejemplo1.html //ruta defaults: { _controller: Numbero1Bundle:Default:vista1 } //le pasamos el controlador y el nombre de //la vista la cual la ruta la declaramos // en el controlador
Entity-> Para crear entidades el paso es muy parecido al de los bundles lo primero que nos pedirá es asociar la entidad a un bundle con su formato correspodiente
1-php app/console doctrine:generate:entity 2-JesusBundle:EntidadJesusUno
Elegimos si la queremos en formato yml,anotación,php y posteriormente configurando los datos. Ya tenemos nuestra clase con nuestro métodos getter y setter, el siguiente paso sería crear los datos correspondientes en la base de datos a mano o usando la consola con el siguiente comando.Mediante este comando podremos ver si va ejecutar lo que acabamos de crear en la entidad php app/console doctrine:schema:update --dump--sql
Y mediante comando forzariamos la actualización de la base de datos. php app/console doctrine:schema:update --force
En caso de fallar el forzado de la base de datos deberíamos crear la base de datos con los campos que hemos creado en la entidad para poder obtener el valor de los campos declarados.
Consultas De la siguiente manera podemos hacer consultas en la base de datos si no queremos usar doctrine.$entityManager= $this->getDoctrine()-> getEntityManager(); $bbdd = entityManager->getConnection(); $query = "SELECT * FROM table; "; $preparar=$db->prepare($query); $preparar->execute(); $resultadotabla=$preparar->fetchAll();
Hay muchas más cosas para usar en symfony tales como formularios usar doctrine para consultas a bases de datos y otras versiones de symfony como la 3 ó la 4 la cuál está última permite escoger versiones más reducidas del framework pero teniendo una buena base de programación y leyendo esto ya se puede comenzar a trabajar, que para cualquier duda tenemos la documentación en su webs oficiales.
Symfony.com Symfony.es