Como iniciar proyecto Symfony

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

Etiquetas:
0 0 votos
Article Rating
Subscribe
Notify of
guest
0 Comments
Comentarios en línea
Ver todos los comentarios