Symfony es un framework de PHP, es decir, una serie de bibliotecas, o API, que permite a los desarrolladores crear aplicaciones web robustas, escribiendo poco código. Decir en la mayoría de los frameworks de PHP, hay que tener un conocimiento de PHP avanzado, para poder manejar este framework con soltura. Lo que debemos de hacer para empezar a usar Symfony, es instalar las siguientes utilidades:
- Instalar PHP y añadir PHP a las variables de entorno (con XAMPP y WAMPP sirven)
- Instalar composser, ya sea en Windows o Linux debemos tenerlo instalado
- Tener instalado el binario disponible tanto en sistemas Windows, Linux o Mac OS
Si estás trabajando en un proyecto de larga duración, mira más abajo en Symfony LTS
Creando la Aplicación desde Symfony CLI
Lo siguiente que debemos de hacer es tener claro si vamos a trabajar con el desarrollo de una aplicación API, o si va a ser una aplicación completa para ello escribimos el siguiente comando si vamos a crear una aplicación API o microservicio:
symfony new my_project_name --version=next
O el siguiente comando si vamos a crear una aplicación completa:
symfony new my_project_name --version=next --full
Creando la Aplicación desde Composer
También podemos hacer los pasos anteriores desde Composer, para ello escribimos el siguiente comando para crear API o Microservicio :
composer create-project symfony/skeleton:"5.2.x@dev" my_project_name
Para crear una aplicación completa, escribimos lo siguiente:
composer create-project symfony/website-skeleton:"5.2.x@dev" my_project_name
Iniciamos Nuestro Proyecto
Para iniciar nuestro proyecto, deberemos escribir en la línea de comandos:
cd mi_proyecto
symfony server:start
Inmediatamente aparecerá en nustra página web en http://localhost:8000/
Instalando Paquetes
Para instalar paquetes es necesario tener instalado composer, por ello, recomiendo tener instado tanto symfonyCLI como composer:
cd mi_proyecto
composer require logger
Comprobamos Las Vulnerabilidades de Seguridad
Para saber si nuestra aplicación web es vulnerable o no, debemos de escribir el siguiente comando:
cd mi_proyecto
symfony check:security
Cómo instalar versiones Symfony LTS
Las versiones LTS, para quien no esté familiarizado con este término, es básicamente versiones, que tienen un soporte de varios años. Estas versiones nos permiten que creemos nuestra aplicación sin el temor que se quede obsoleta en poco tiempo. Para ello, escribimos lo siguiente, para la versión LTS más reciente:
symfony new my_project_name --version=lts
Si queremos instalar, o probar la versión LTS que está aún en desarrollo, escribimos:
symfony new my_project_name --version=next
Si queremos elegir una versión LTS concreta, deberemos escribir:
symfony new my_project_name --version=4.4
Aplicación DEMO o Para Practicar
Si lo que queremos es tener una aplicación con la que poder practicar, debemos de escribir lo siguiente:
symfony new my_project_name --demo
Creamos Nuestra Primera Página
Para crear nuestra primera página, debemos de tener claro 2 cosas, que cuando desarrollamos en PHP puro, son lo mismo, pero en los Frameworks de PHP, no tiene porqué serlo.
- Creamos una ruta o route: Un route es básicamente la URL (/about) a tu página web
- Creamos el controlador: Es la función PHP que escribes cuando desarrollas tu página web. Es decir aquello que devolverás cuando escribas la ruta o route. Esta información puede ser HTML, JSON, o XML.
Creando la Ruta
Por aquí dejo cómo hay que crear la ruta dentro de src/Controller/LuckyController.php
<?php
// src/Controller/LuckyController.php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
class LuckyController
{
public function number(): Response
{
$number = random_int(0, 100);
return new Response(
'<html><body>Lucky number: '.$number.'</body></html>'
);
}
}
Creamos el controlador
Vamos crear el nombre de la ruta. escribimos lo siguiente
# config/routes.yaml
# the "app_lucky_number" route name is not important yet
app_lucky_number:
path: /lucky/number
controller: App\Controller\LuckyController::number
Para que funcione controladores
Escribimos las rutas de anotación, hay que escribir el siguiente comando, para que composer instale, la correspondiente función:
composer require annotations
Finalmente ponemos el @route, esto nos dará la ubicación http://localhost:8000/lucky/number
// src/Controller/LuckyController.php
+ use Symfony\Component\Routing\Annotation\Route;
class LuckyController
{
+ /**
+ * @Route("/lucky/number")
+ */
public function number()
{
// this looks exactly the same
}
}
Trabajamos con Plantillas
Para que nuestra página web quede bien, vamos a trabajar con plantillas, para ello usaremos twig. El primer paso para usarlo es instalarlo con el siguiente comando:
composer require twig
Dentro de LuckyController, debemos de asegurarnos que extiende de AbstractController:
// src/Controller/LuckyController.php
// ...
+ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- class LuckyController
+ class LuckyController extends AbstractController
{
// ...
}
Ahora debemos de usar render(), dentro del controlador:
// src/Controller/LuckyController.php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
// ...
class LuckyController extends AbstractController
{
/**
* @Route("/lucky/number")
*/
public function number(): Response
{
$number = random_int(0, 100);
return $this->render('lucky/number.html.twig', [
'number' => $number,
]);
}
}
Dentro de templates debemos escribir lo siguiente:
{# templates/lucky/number.html.twig #}
<h1>Your lucky number is {{ number }}</h1>
Ahora en teoría, nos debería funcionar el enlace http://localhost:8000/lucky/number
Conclusiones finales
Pues nada, esto ha sido un resumen de symfony.com, espero que te haya sido de utilidad el artículo, si tienes, alguna duda, tienes alguna inquietud o algo, recordar que puedes contactarme en la sección «contacta conmigo» o en mis redes sociales, que aparecen arriba de esta página.
Biografía
Para hacer todo este trabajo, he empleado la documentación oficial de symfony, en concreto