Em meu artigo anterior sobre o Yii2, discuti como instalar e usar o elasticsearch com o Yii. Em outro artigo, demonstrei os recursos do framework Yii2 por meio de um aplicativo simples de tarefas. Hoje vou demonstrar como usar o Redis como cache e manipulador de sessão para Yii2. Em meus artigos anteriores sobre Redis, discuti o uso do Redis como um cache com sites PHP personalizados e Redis para gerenciamento de sessão PHP.
Para instalar o Redis no Cloudways, acesse meu artigo no link acima.
Etapa 1:Instalando a Extensão Redis do Yii 2
Abra seu composer.json arquivo e adicione a seguinte linha na seção require :
"yiisoft/yii2-redis": "~2.0.0"
Agora no console, execute o seguinte comando para instalar a extensão
composer update
Uma vez que o compositor tenha completado a instalação, abra o Yii2 no navegador. Abra a barra de depuração do Yii e localize as extensões instaladas. Você encontrará yii2-redis na lista.
Isso significa que o Redis foi instalado com sucesso e está pronto para uso.
Etapa 2:Conectando o Redis com o Yii2
Em seguida, conecte o aplicativo Yii2 ao Redis. Vá para config pasta e abra web.php. Adicione as seguintes linhas nos componentes seção.
'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => 'localhost', 'port' => 6379, 'database' => 0, ], 'session' => [ 'class' => 'yii\redis\Session', ], 'cache' => [ 'class' => 'yii\redis\Cache', ],
Feito isso, salve o arquivo. É hora de usar a extensão como o manipulador de sessão.
Etapa 3:usando o Redis como manipulador de sessão com Yii2
Agora abra sua pasta de controladores e adicione um novo controlador nele. Vamos nomeá-lo RedisController.php. Agora abra o arquivo e coloque o seguinte código nele.
<?php namespace app\controllers; use Yii; use yii\filters\AccessControl; use yii\web\Controller; use yii\filters\VerbFilter; class RedisController extends Controller { public function actionIndex() { Yii::$app->session->setFlash('contactFormSubmitted'); $a = Yii::$app->session->getFlash('contactFormSubmitted'); echo $a; } }
Agora execute este controlador no navegador e você verá a imagem abaixo assim que sua sessão for criada.
Agora vamos verificar se esta sessão foi adicionada ao cache redis . Abra o terminal SSH e digite o seguinte comando para abrir redis cli.
redis-cli
Na linha de comando, digite o seguinte comando para verificar se uma nova chave foi adicionada:
keys *
Se você encontrar uma chave alfanumérica no mix, essa chave será a chave de sessão. Isso indica que a sessão do Redis está funcionando corretamente.
Vamos manter esta janela do console aberta para verificar a chave de cache mais tarde.
Etapa 4:usando o Redis como manipulador de cache com Yii2
Agora abra o controlador que foi criado anteriormente e adicione essa nova função nele.
public function actionCaches() { $cache = Yii::$app->cache; $key = 'new'; $data = $cache->get($key); if ($data === false) { $key = 'new'; $data = 'A newly cache added'; $cache->set($key, $data); } echo $data; }
Vamos executar esta ação no navegador. Você receberá “Um cache recém-adicionado” como saída. Vamos verificar se ele está salvo no Redis ou não. Alterne para o console que foi deixado aberto e digite o seguinte comando:
keys *
Você encontrará seu novo chave de cache junto com a chave de sessão que foi gerada anteriormente.
Resumo:
Como você pode ver, é fácil usar o Redis com o Yii2. basta instalar a extensão e conectar o Yii2 com ela. Você pode usar a extensão como um manipulador de sessão e cache para seu aplicativo. Aqui está a lista completa dos tópicos abordados nesta série no Yii2. Se você precisar fazer uma pergunta sobre este artigo, por favor, deixe um comentário.