Настройка PhpRedis в Laravel 7 - PullRequest
       119

Настройка PhpRedis в Laravel 7

1 голос
/ 18 июня 2020

Я установил fre sh установку Laravel в Homestead, и я установил PhpRedis, как рекомендовано в Laravel docs https://laravel.com/docs/7.x/redis#phpredis.

Я следовал этому руководству по установке PhpRedis https://webstoked.com/install-phpredis-laravel-ubuntu/

В документах Laravel и в руководстве, которое я связал для установки PhpRedis, мне дано указание переименовать псевдоним Redis. в config / app. php.

Если вы планируете использовать расширение PhpRedis вместе с псевдонимом Redis Facade, вам следует переименовать его во что-нибудь другое, например RedisManager, чтобы избежать столкновения с Redis класс. Вы можете сделать это в разделе псевдонимов своего приложения. php файл конфигурации.
- Laravel Документы

Чтобы еще больше усугубить мою путаницу, Laravel docs, затем go, чтобы сказать, что вы должны полностью удалить псевдоним.

Чтобы избежать конфликтов именования классов с самим расширением Redis PHP, вам нужно будет удалить или переименовать Illuminate \ Support \ Facades \ Redis псевдоним фасада из массива псевдонимов файла конфигурации вашего приложения. Как правило, вы должны полностью удалить этот псевдоним и ссылаться на фасад только по его полностью определенному имени класса при использовании расширения Redis PHP.
- Laravel Docs

Мои основные вопросы:

  1. Что означает «Если вы планируете использовать расширение PhpRedis вместе с псевдонимом Redis Facade»?
  2. Когда мне следует переименовать псевдоним, удалить его или оставить как есть?
  3. В зависимости от того, переименую или удалю псевдоним, как это повлияет на использование Redis?

1 Ответ

2 голосов
/ 18 июня 2020

Есть две разные конфигурации / способы использования redis в проекте laravel.

  1. Первый - использовать predis, и он находится в вашей папке vendor. Это «Гибкий и полнофункциональный клиент Redis для PHP и HHVM», расположенный здесь . Это пакет / библиотека, написанная на php.
  2. Другой способ - использовать PhpRedis, это расширение, написанное на C и расположенное здесь .
protected function connector()
{
    switch ($this->driver) {
        case 'predis':
            return new Connectors\PredisConnector;
        case 'phpredis':
            return new Connectors\PhpRedisConnector;
    }
}

  1. Что означает «Если вы планируете использовать расширение PhpRedis вместе с псевдонимом Redis Facade»?

    В в рамке есть чек . При создании PhpRedis client Redis он проверяет, является ли экземпляр new Redis Facade, потому что PhpRedis также использует Redis, имя - вы можете видеть из здесь . Поэтому, если вы хотите использовать PhpRedis в своем фреймворке laravel, вам лучше переименовать фасад, потому что это вызовет столкновение.

  2. Когда мне следует переименовать псевдоним, удалить его или оставить как есть?

    Если вы собираетесь использовать predis в качестве клиента, то можете оставить как есть. Если вы собираетесь использовать PhpRedis в качестве клиента, вам необходимо переименовать псевдоним.

  3. В зависимости от того, переименую или удалю псевдоним, как это повлияет на использование Redis ?

    Вы будете использовать RedisManager::someMethod(), если выберете PhpRedis. Вы будете использовать Redis::someMethod(), если используете predis.

...