Biblioteca para manejo de hooks.
- Requisitos
- Instalación
- Métodos disponibles
- Cómo empezar
- Uso
- Tests
- Tareas pendientes
- Contribuir
- Repositorio
- Licencia
- Copyright
Esta clase es soportada por versiones de PHP 5.6 o superiores y es compatible con versiones de HHVM 3.0 o superiores.
La mejor forma de instalar esta extensión es a través de Composer.
Para instalar PHP Hook library, simplemente escribe:
$ composer require Josantonius/Hook
El comando anterior sólo instalará los archivos necesarios, si prefieres descargar todo el código fuente puedes utilizar:
$ composer require Josantonius/Hook --prefer-source
También puedes clonar el repositorio completo con Git:
$ git clone https://github.com/Josantonius/PHP-Hook.git
O instalarlo manualmente:
$ wget https://raw.githubusercontent.com/Josantonius/PHP-Hook/master/src/Hook.php
Métodos disponibles en esta biblioteca:
Hook::getInstance();
Atributo | Descripción | Tipo | Requerido | Predeterminado |
---|---|---|---|---|
$id | ID único para multiples instancias. | string | No | '0' |
# Return (object) → instancia
Hook::setSingletonName($method);
Atributo | Descripción | Tipo | Requerido | Predeterminado |
---|---|---|---|---|
$method | Definir el nombre del método para usar el patrón singleton. | callable | No |
# Return (void)
Hook::addAction($tag, $function, $priority, $args);
Atributo | Descripción | Tipo | Requerido | Predeterminado |
---|---|---|---|---|
$tag | Nombre del gancho de acción. | string | Sí | |
$function | Función donde insertar el gancho de acción. | callable | Sí | |
$priority | Orden en que se ejecuta la acción. | int | No | 8 |
$args | Número de argumentos aceptados. | int | No | 0 |
# Return (boolean)
Hook::addActions($actions);
Atributo | Descripción | Tipo | Requerido | Predeterminado |
---|---|---|---|---|
$actions | Acciones | array | Sí |
# Return (boolean)
Por defecto, buscará el método getInstance()
para usar el patrón singleton y crear una única instancia de la clase. Si no existe, creará un nuevo objeto.
Hook::doAction($tag, $args, $remove);
Atributo | Descripción | Tipo | Requerido | Predeterminado |
---|---|---|---|---|
$tag | Nombre del gancho de acción. | string | Sí | |
$args | Argumentos opcionales. | mixed | No | array() |
$remove | Eliminar gancho después de ejecutar acciones | boolean | No | true |
# Return (mixed|false) → salida de la última acción o falso
Hook::current();
# Return (string|false) → gancho de acción actual
Hook::isAction($tag);
Atributo | Descripción | Tipo | Requerido | Predeterminado |
---|---|---|---|---|
$tag | Nombre del gancho de acción | string | Sí |
# Return (boolean)
Para utilizar esta biblioteca, simplemente:
Para utilizar esta biblioteca con Composer:
require __DIR__ . '/vendor/autoload.php';
use Josantonius\Hook\Hook;
Si la instalaste manualmente, utiliza:
require_once __DIR__ . '/Hook.php';
use Josantonius\Hook\Hook;
Hook::addAction('css', ['Josantonius\Hook\Test\Example', 'css']);
Hook::addAction('js', ['Josantonius\Hook\Test\Example', 'js'], 1);
$instance = new Example;
Hook::addAction('meta', [$instance, 'meta'], 2, 1);
Hook::setSingletonName('singletonMethod');
$instance = call_user_func(
'Josantonius\Hook\Test\Example::singletonMethod'
);
Hook::addAction('article', [$instance, 'article'], 3, 0);
$instance = new Example;
Hook::addActions([
['after-body', [$instance, 'afterBody'], 4, 0],
['footer', [$instance, 'footer'], 5, 0],
]);
Hook::setSingletonName('singletonMethod');
$instance = call_user_func(
'Josantonius\Hook\Test\Example::singletonMethod'
);
Hook::addActions([
['slide', [$instance, 'slide'], 6, 0],
['form', [$instance, 'form'], 7, 2],
]);
Hook::setSingletonName('singletonMethod');
Hook::isAction('meta');
Hook::doAction('css');
Hook::doAction('js');
Hook::doAction('after-body');
Hook::doAction('article');
Hook::doAction('footer');
Hook::doAction('meta', 'The title');
Hook::doAction('form', ['input', 'select']);
Para ejecutar las pruebas necesitarás Composer y seguir los siguientes pasos:
$ git clone https://github.com/Josantonius/PHP-Hook.git
$ cd PHP-Hook
$ composer install
Ejecutar pruebas unitarias con PHPUnit:
$ composer phpunit
Ejecutar pruebas de estándares de código PSR2 con PHPCS:
$ composer phpcs
Ejecutar pruebas con PHP Mess Detector para detectar inconsistencias en el estilo de codificación:
$ composer phpmd
Ejecutar todas las pruebas anteriores:
$ composer tests
- Añadir nueva funcionalidad.
- Mejorar pruebas.
- Mejorar documentación.
- Refactorizar código para las reglas de estilo de código deshabilitadas. Ver phpmd.xml y .php_cs.dist.
Si deseas colaborar, puedes echar un vistazo a la lista de issues o tareas pendientes.
Pull requests
- Fork and clone.
- Ejecuta el comando
composer install
para instalar dependencias. Esto también instalará las dependencias de desarrollo. - Ejecuta el comando
composer fix
para estandarizar el código. - Ejecuta las pruebas.
- Crea una nueva rama (branch), commit, push y envíame un pull request.
La estructura de archivos de este repositorio se creó con PHP-Skeleton.
Este proyecto está licenciado bajo licencia MIT. Consulta el archivo LICENSE para más información.
2017 - 2018 Josantonius, josantonius.com
Si te ha resultado útil, házmelo saber 😉
Puedes contactarme en Twitter o a través de mi correo electrónico.