Parámetros
Keep on Learning!
If you liked what you've learned so far, dive in! Subscribe to get access to this tutorial plus video, code and script downloads.
With a Subscription, click any sentence in the script to jump to that part of the video!
Login SubscribeAntes hemos hablado de nuestro contenedor y de todos los objetos de servicio que tiene. Para verlos, podemos ejecutar:
bin/console debug:container
Pero estos servicios no son lo único que hay en nuestro contenedor. También contiene parámetros. Ejecuta el mismo comando que antes, pero esta vez, añade la opción --parameters
:
bin/console debug:container --parameters
Básicamente son variables a las que puedes hacer referencia en tu código. La mayoría son internas, pero hay algunos parámetros básicos que pueden resultarte útiles. Por ejemplo, cualquiera de estos que empiece por kernel.
, como kernel.environment
, que se establece en la variable de entorno APP_ENV
. O este kernel.project_dir
que se establece en la ruta al directorio raíz del proyecto.
Parámetros Symfony
¿Cómo obtenemos esto de nuestro contenedor? En realidad tenemos un método abreviado especial para ello en nuestro controlador. En el directorio /src
, abre Controller/MainController.php
. En el método homepage()
, justo al principio, escribe dd($this->getParameter())
. Y dentro, escribe el nombre del parámetro: 'kernel.project_dir'
. Como puedes ver, PhpStorm (con el plugin Symfony), ya lo ha autocompletado por nosotros. Muy bien.
// ... lines 1 - 13 | |
class MainController extends AbstractController | |
{ | |
// ... line 16 | |
public function homepage( | |
// ... lines 18 - 20 | |
): Response { | |
dd($this->getParameter('kernel.project_dir')); | |
// ... lines 23 - 36 | |
} | |
} |
De vuelta al navegador, actualiza y... ¡ahí está nuestra ruta! La mayoría de las veces, necesitaremos inyectar parámetros en los servicios y podemos hacerlo con una sintaxis especial. ¡Te lo enseñaré! Abre config/packages/twig.yaml
. Puedes ver que tenemos twig.default_path
que está configurado como %kernel.project_dir%/templates
. Este %[parameter name]%
es una sintaxis especial que se utiliza para referirse a un parámetro en los archivos .yaml
.
twig: | |
default_path: '%kernel.project_dir%/templates' | |
// ... lines 3 - 7 |
A continuación: Vamos a crear un parámetro personalizado y a aprender a obtenerlo del contenedor de servicios de diferentes maneras.