Para crear y utilizar un plugin en Phalcon 3.X primero tenemos que crear la carpeta plugins dentro de app y luego crear por ejemplo el AuthPlugin.php. La estructura básica dlel plugin sería la siguiente.
<?php
use Phalcon\Mvc\User\Plugin;
class AuthPlugin extends Plugin
{
public function index()
{
die('Soy un plugin');
}
}
Ahora debemos decir a nuestro archivo config.php la ruta en la que se encuentran nuestros plugins.
'application' => [
'appDir' => APP_PATH . '/',
'controllersDir' => APP_PATH . '/controllers/',
'modelsDir' => APP_PATH . '/models/',
'migrationsDir' => APP_PATH . '/migrations/',
'viewsDir' => APP_PATH . '/views/',
'pluginsDir' => APP_PATH . '/plugins/',
'libraryDir' => APP_PATH . '/library/'
]
A continuación deberemos registrar ese directorio en nuestro loader.php
$loader->registerDirs(
[
$config->application->controllersDir,
$config->application->modelsDir,
$config->application->pluginsDir,
]
)->register();
Y por último debemos ir al services.php e instanciar nuestro plugin para poder utilizarlo dónde queramos.
$di->set(
'AuthPlugin',
function() {
$AuthPlugin = new AuthPlugin;
return $AuthPlugin;
});
Ahora ya podemos llamar al plugin con la siguiente linea de código en nuestros controladores:
$this->AuthPlugin->index();