Desarrollo web y Marketing Digital

Artículos
Inicio

Empezar a programar con symfony-Programación php con frameworks

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.

Lo primero que tenemos que hacer es instalar el gestor dependencias composermediante 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
Para que todo funcione correctamente deberemos habilitar las opciones php para el path en el entorno de sistema para poder ejecutar comandos php desde consola.Como por ejemplo se indica en el link que indico a continuación.

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.

Arquitectura Básica

App->Configuración y estructura del nucleo del framework.

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.
Appkernel->Archivo donde se guardan los bundles de framework.

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 comenza a trabajar, sabiendo que para cualquier duda tenemos la documentación en su webs oficiales.
Symfony.com
Symfony.es