РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
933 of 1392 menu

Функция app

Функция app предназначена для доступа к контейнеру сервисов Laravel. Она может использоваться без аргументов, возвращая глобальный экземпляр контейнера, или с переданным именем класса или интерфейса, чтобы разрешить соответствующую зависимость. Данная функция является удобной альтернативой использованию фасада App или внедрению зависимостей через конструктор.

Синтаксис

<?php app($abstract = null, $parameters = []); ?>

Пример

Давайте получим экземпляр контейнера и выведем информацию о нём:

<?php $container = app(); echo get_class($container); ?>

Результат выполнения кода:

"Illuminate\Foundation\Application"

Пример

Давайте разрешим реализацию интерфейса Illuminate\Contracts\Routing\ResponseFactory и создадим JSON-ответ:

<?php use Illuminate\Contracts\Routing\ResponseFactory; $response = app(ResponseFactory::class); $json = $response->json(['status' => 'success']); echo $json->getContent(); ?>

Результат выполнения кода:

"{\"status\":\"success\"}"

Пример

Давайте разрешим класс с передачей параметров в конструктор. Создадим простой класс для хранения данных пользователя:

<?php namespace App\Services; class UserService { protected $name; protected $role; public function __construct($name, $role = 'user') { $this->name = $name; $this->role = $role; } public function getInfo() { return $this->name . ' (' . $this->role . ')'; } } ?>

Теперь разрешим класс с передачей параметров:

<?php use App\Services\UserService; $user = app(UserService::class, ['name' => 'John', 'role' => 'admin']); echo $user->getInfo(); ?>

Результат выполнения кода:

"John (admin)"

Пример

Давайте получим доступ к сервису через псевдоним в контейнере. В файле конфигурации config/app.php можно зарегистрировать псевдонимы для классов. Например, разрешим класс через строковый псевдоним:

<?php // Получение экземпляра класса через псевдоним $cache = app('cache'); echo get_class($cache); ?>

Результат выполнения кода:

"Illuminate\Cache\CacheManager"

Смотрите также

  • функция resolve,
    которая также используется для разрешения зависимостей
  • функция config,
    которая возвращает значение из конфигурации
  • функция env,
    которая получает значение переменной окружения
  • функция dd,
    которая выводит данные и останавливает выполнение скрипта
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить