Cache de RBAC

¿Que es el cache en RBAC?

Ultima fecha de actualización de artículo: Actualizado: 08-Marzo-2024


El cache es una forma de poder reducir el número de consultas a la base de datos, debido a que cada vez que dentro del sistema se ejecuta un método "Yii::$app->user->can()" el modulo ejecuta una consulta al servidor de base de datos, si se multiplica el número de veces que utilizamos dicha consulta, por ejemplo en un menú dinámico que muestra opciones de acuerdo al rol del usuarios, esto hace que el número de peticiones al servidor de bases de datos se incremente considerablemente, esto en sistmas productivos podria traer beneficios en velocidad y en la nube puede reducir considerablemente los costos. 


¿Cómo se implementa el cache en RBAC?

Se puede mantener un caché del RBAC agregando el siguiente código en el archivo "config/web.php" de la plantilla básica. 

 
        'authManager' => [
            'class' => 'yii\rbac\DbManager',
            'cache' => 'cache',
            'cacheKey' => 'rbac'
            
        ],

Con este código se evita estar haciendo consultas al servidor cada vez que se ejecuta una petición para consultar los permisos del servidor.

Nota importánte

Cada vez que exista algún cambio en los permisos se debe de actualizar el caché, es decir cuando se agregan nuevos roles o permisos en el rbac.

 
 yii cache/flush-all

El siguiente comando refresca el cache del RBAC, en las ocaciones que aparentemente no actualiza nuestros permisos.


Referencias:

https://www.yiiframework.com/doc/api/2.0/yii-console-controllers-cachecontroller

Comentarios

Aprende Yii2


Lo más Visto

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Guía rápida para uso de widget kartik para select para formulario

Cómo incluir una vista dentro de un modal

Google Plus desaparecerá el 4 de Abril de 2019

Crear fomulario HTML con checkbox sin Active Record

hostinger

ventana bienvenida