PHP Classes
elePHPant
Icontem

File: README-ES.md

Recommend this page to a friend!
  Classes of Josantonius  >  PHP Hook Function Call  >  README-ES.md  >  Download  
File: README-ES.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP Hook Function Call
Register hooks and execute associated actions
Author: By
Last change:
Date: 1 year ago
Size: 9,003 bytes
 

 

Contents

Class file image Download

PHP Hook library

Latest Stable Version Latest Unstable Version License Codacy Badge Total Downloads Travis PSR2 PSR4 CodeCov

English version

Biblioteca para manejo de hooks.

Requisitos

Esta clase es soportada por versiones de PHP 5.6 o superiores y es compatible con versiones de HHVM 3.0 o superiores.

Instalación

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:

Descargar Hook.php:

$ wget https://raw.githubusercontent.com/Josantonius/PHP-Hook/master/src/Hook.php

Métodos disponibles

Métodos disponibles en esta biblioteca:

- Obtener instancia:

Hook::getInstance();

| Atributo | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | | $id | ID único para multiples instancias. | string | No | '0' |

# Return (object) ? instancia

- Definir el nombre del método para usar el patrón singleton:

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)

- Agregar función personalizado al gancho de acción:

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)

- Agregar acciones desde array:

Hook::addActions($actions);

| Atributo | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | | $actions | Acciones | array | Sí | |

# Return (boolean)

- Ejecutar todos los ganchos de determinada acción:

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

- Obtener el gancho de acción actual:

Hook::current();

# Return (string|false) ? gancho de acción actual

- Comprobar si existe determinado gancho de acción:

Hook::isAction($tag);

| Atributo | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | | $tag | Nombre del gancho de acción | string | Sí | |

# Return (boolean)

Cómo empezar

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;

Uso

- Agregar gancho de acción:

Hook::addAction('css', ['Josantonius\Hook\Test\Example', 'css']);

- Agregar gancho de acción con prioridad:

Hook::addAction('js', ['Josantonius\Hook\Test\Example', 'js'], 1);

- Agregar gancho de acción con prioridad y número de argumentos:

$instance = new Example;

Hook::addAction('meta', [$instance, 'meta'], 2, 1);

- Agregar gancho de acción y definir patrón singleton:

Hook::setSingletonName('singletonMethod');

$instance = call_user_func(
    'Josantonius\Hook\Test\Example::singletonMethod'
);

Hook::addAction('article', [$instance, 'article'], 3, 0);

- Agregar múltiples ganchos de acción:

$instance = new Example;
        
Hook::addActions([
    ['after-body', [$instance, 'afterBody'], 4, 0],
    ['footer', [$instance, 'footer'], 5, 0],
]);

- Agregar múltiples ganchos de acción y definir patrón singleton:

Hook::setSingletonName('singletonMethod');

$instance = call_user_func(
    'Josantonius\Hook\Test\Example::singletonMethod'
);

Hook::addActions([
    ['slide', [$instance, 'slide'], 6, 0],
    ['form', [$instance, 'form'], 7, 2],
]);

- Comprobar si una acción ha sido definida:

Hook::setSingletonName('singletonMethod');

Hook::isAction('meta');

- Ejecutar ganchos de acción:

Hook::doAction('css');
Hook::doAction('js');
Hook::doAction('after-body');
Hook::doAction('article');
Hook::doAction('footer');

- Ejecutar ganchos de acción con argumentos:

Hook::doAction('meta', 'The title');
Hook::doAction('form', ['input', 'select']);

Tests

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

? Tareas pendientes

  • [ ] 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.

Contribuir

Si deseas colaborar, puedes echar un vistazo a la lista de issues o tareas pendientes.

Pull requests

Repositorio

La estructura de archivos de este repositorio se creó con PHP-Skeleton.

Licencia

Este proyecto está licenciado bajo licencia MIT. Consulta el archivo LICENSE para más información.

Copyright

2017 - 2018 Josantonius, josantonius.com

Si te ha resultado útil, házmelo saber :wink:

Puedes contactarme en Twitter o a través de mi correo electrónico.