app()
en Laravel
La función app()
devuelve la instancia del contenedor de servicios de Laravel. Esto facilita el acceso a los servicios registrados en la aplicación, como configuraciones, controladores, middleware, servicios personalizados y más.
$instance = app();
Aquí, $instance
es la instancia global del contenedor de servicios de Laravel, que puede usarse para resolver dependencias y obtener instancias de clases registradas.
app()
1. Obtener una instancia de un servicio:
$config = app('config');
echo $config->get('app.timezone');
Este código obtiene el servicio de configuración y muestra la zona horaria configurada en el archivo config/app.php
.
2. Resolver una clase con el contenedor:
$userService = app(\App\Services\UserService::class);
$userService->createUser($data);
Aquí, app()
crea una instancia de la clase UserService
, resolviendo automáticamente cualquier dependencia que la clase requiera.
3. Inyectar dependencias en controladores o servicios:
$mailer = app(\Illuminate\Contracts\Mail\Mailer::class);
$mailer->to('example@example.com')->send(new WelcomeMail());
Se usa app()
para acceder al servicio de correo (Mailer
), enviando un correo usando su interfaz.
4. Obtener la ruta actual o la instancia de la solicitud:
$request = app('request');
echo $request->url();
app('request')
devuelve la instancia actual de la solicitud HTTP, permitiendo acceder a sus métodos como url()
o method()
.
5. Ejecutar la lógica de un binding personalizado:
app()->bind('CustomLogic', function () {
return new \App\Custom\LogicClass;
});
$logicInstance = app('CustomLogic');
En este caso, app()
se usa para registrar y luego resolver una lógica personalizada.
Para más detalles sobre el contenedor de servicios y el uso de app()
, visita la documentación oficial de Laravel.
Jorge García
Fullstack developer