Resumen

El sistema de plugins del CMS grav cuenta con una serie de funcionalidades, entre ellos los hooks y la priorización de inicio de estos dentro del sistema. Este sistema funciona como una cadena para iniciar las funcionalidades de grav una por una y en el orden que se le determina, de esta manera determinar que funciones son más importantes o por la tarea a realizar deben estar antes o después de otra.

Detalle

Antes de entrar en materia de la priorización de plugins en Grav, hay varios conceptos a tener en cuenta:

El CMS de grav cuenta con un sistema de plugins similar a la mayoría de CMS, en el cual se puede ampliar las funcionalidades originales del CMS.

Cada plugin puede contener un sistema de hooks, con los cuales puedes llamar funciones entre plugins y compartir funcionalidades. Estos hooks son llamados por medio de eventos, estos eventos determinan en que momento se debe realizar una acción.

La lista de estos eventos la puedes encontrar aquí, por orden de ejecución:

Event Hooks | Grav Documentation (getgrav.org)

Si revisamos el archivo php principal de un plugin de grav, podrémos encontrar una estructura similar a esta:

‘onPluginsInitialized’ => [‘onPluginsInitialized’, 0],

Esta estructura inicializa las funciones con un evento, siendo:

evento => [función, prioridad].

Entre más alto el número de prioridad, antes se iniciará la función.

¿Para qué funciona el número de prioridad?

Si existen dos funciones con el mismo evento (por ejemplo: ‘onPluginsInitialize’), pero se necesita que una de las dos inicie antes de la otra, porque por ejemplo: una depende de la otra, se debe utilizar el número de prioridad.

¿Cómo se puede cambiar la prioridad de un plugin existente sin cambiar el plugin desde su raíz?

Para hacer esto, se debe crear un nuevo archivo, en la dirección:

user/config/priorities.yaml

En el cual podemos crear una priorización personalizada para las funciones, utilizando el siguiente formato:

pluginName:
    eventName:
        handlerName: [integer]

En el cual pluginName sería el nombre del plugin a personalizar, eventName el nombre del evento que inicia la función y el handlerName, el nombre de la función, algo como lo siguiente:

vitalPlugin:
    onPluginInitialized:
        FuncionPrioritaria: 100

Como vemos el número 100 significa que tendrá una prioridad muy alta y empezará antes de prácticamente cualquier otra función.

De esta manera afectará únicamente a esa función.

Eso sería todo, muchas gracias por leer.

Referencias externas

Plugin Prioritization | Grav Documentation (getgrav.org)

Event Hooks | Grav Documentation (getgrav.org)

  

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Current day month ye@r *

ecofirma

Visita Nuestro Gestor Documental Ecofirma.

Visita ecofirma

Pasantía en Desarrollo de Software. 

Envia tu curriculum a la dirección:  talento@rolosa.com

Descripción de la pasantía

Esta pasantía se caracteriza por incrementar las capacidades de programación de la persona, y perfeccionamiento de lenguajes con el tinte de incursión en desarrollo de software, páginas web y mantenimiento de las mismas. 

Conocimientos y requisitos

Beneficios y Compensación
Una pasantía en ROLOSA le permite al/la pasante no solo ganar experiencia sino desarrollar habilidades para mejorar confianza, seguridad y comunicación necesarias en los primeros años de actividad profesional, además de desarrollar las destrezas técnicas.

La pasantía en ROLOSA es de 6 meses, horario de 8 am a 5pm, NO renovable y tiene una asistencia económica de 100.000 colones mensuales. Al finalizar la pasantía, cabe la posibilidad de obtener una plaza fija, sujeta a disponibilidad.

ROLOSA se dedica al desarrollo y distribución de diferentes tecnologías.