Incluye y ejecuta una o más funciones a pedido.
Devuelve un objeto Plugins o null en caso de no hallar al menos una función para ejecutar.
static Plugins::get ( string $name, string $hook, string|array $plugins ): object
Para el framework, un plugin es un archivo que devuelve una función. El plugin, una vez incluido, queda listo para ser ejecutado. Para incluir un plugin, deben definirse todos los parámetros, los que convinados darán una ruta de inclusión.
El nombre identifica al plugin de forma única para todo el framework. Dentro de un plugin puede haber muchas funciones, cada una de ellas será un gancho diferente. Por último, una extensión puede tener varias alternativas para el mismo nombre de plugin, por eso, una extentensión puede llamar a sus plugins de la siguiente manera:
{extension_alias} // plugin por defecto
{extension_alias}.{alter_plugin} // plugin alternativo
La ruta de inclusión se define por:
cms/plugins/{extension_alias}/{plugin_name}/{alter_plugin}/{plugin_name}.{plugin_hook}.php
Ejecuta las funciones listadas. El primer parámetro se llama por referencia y será el que las funciones podrán modificar. Opcionalmente, podrán pasarse otros parámetros.
Plugins::run ( mixed &$ref [, ...]): void
$plugins = Plugins::get('plugin_name', 'plugin_hook', ['extension','extension.alter']);
$output = $plugins?->run($output);