Skip to content

Commit

Permalink
Updated to 1.0.8 version
Browse files Browse the repository at this point in the history
  • Loading branch information
josantonius committed Oct 30, 2017
1 parent b38bbb8 commit e2a4441
Show file tree
Hide file tree
Showing 1,128 changed files with 112,469 additions and 704 deletions.
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# CHANGELOG

## 1.0.8 - 2017-10-30

* Implemented `PSR-4 autoloader standard` from all library files.

* Implemented `PSR-2 coding standard` from all library PHP files.

* Implemented `PHPCS` to ensure that PHP code complies with `PSR2` code standards.

* Implemented `Codacy` to automates code reviews and monitors code quality over time.

* Implemented `Codecov` to coverage reports.

* Added `Hook/phpcs.ruleset.xml` file.

* Deleted `Hook/src/bootstrap.php` file.

* Deleted `Hook/tests/bootstrap.php` file.

* Deleted `Hook/vendor` folder.

* Changed `Josantonius\Hook\Test\HookTest` class to `Josantonius\Hook\HookTest` class.


## 1.0.7 - 2017-10-18

* Added `Josantonius\Hook\Hook::isAction()` method.
Expand Down
223 changes: 162 additions & 61 deletions README-ES.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
# PHP Hook library

[![Latest Stable Version](https://poser.pugx.org/josantonius/hook/v/stable)](https://packagist.org/packages/josantonius/hook) [![Total Downloads](https://poser.pugx.org/josantonius/hook/downloads)](https://packagist.org/packages/josantonius/hook) [![Latest Unstable Version](https://poser.pugx.org/josantonius/hook/v/unstable)](https://packagist.org/packages/josantonius/hook) [![License](https://poser.pugx.org/josantonius/hook/license)](https://packagist.org/packages/josantonius/hook) [![Travis](https://travis-ci.org/Josantonius/PHP-Hook.svg)](https://travis-ci.org/Josantonius/PHP-Hook)
[![Latest Stable Version](https://poser.pugx.org/josantonius/Hook/v/stable)](https://packagist.org/packages/josantonius/Hook) [![Latest Unstable Version](https://poser.pugx.org/josantonius/Hook/v/unstable)](https://packagist.org/packages/josantonius/Hook) [![License](https://poser.pugx.org/josantonius/Hook/license)](LICENSE) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/22a7928128324c3e8a7ca9ea4aa2abcb)](https://www.codacy.com/app/Josantonius/PHP-Hook?utm_source=github.com&utm_medium=referral&utm_content=Josantonius/PHP-Hook&utm_campaign=Badge_Grade) [![Total Downloads](https://poser.pugx.org/josantonius/Hook/downloads)](https://packagist.org/packages/josantonius/Hook) [![Travis](https://travis-ci.org/Josantonius/PHP-Hook.svg)](https://travis-ci.org/Josantonius/PHP-Hook) [![PSR2](https://img.shields.io/badge/PSR-2-1abc9c.svg)](http://www.php-fig.org/psr/psr-2/) [![PSR4](https://img.shields.io/badge/PSR-4-9b59b6.svg)](http://www.php-fig.org/psr/psr-4/) [![CodeCov](https://codecov.io/gh/Josantonius/PHP-Hook/branch/master/graph/badge.svg)](https://codecov.io/gh/Josantonius/PHP-Hook)

[English version](README.md)

Biblioteca para manejo de hooks.

---

- [Instalación](#instalación)
- [Requisitos](#requisitos)
- [Cómo empezar y ejemplos](#cómo-empezar-y-ejemplos)
- [Instalación](#instalación)
- [Métodos disponibles](#métodos-disponibles)
- [Cómo empezar](#cómo-empezar)
- [Uso](#uso)
- [Tests](#tests)
- [Manejador de excepciones](#manejador-de-excepciones)
- [Tareas pendientes](#-tareas-pendientes)
- [Contribuir](#contribuir)
- [Repositorio](#repositorio)
Expand All @@ -23,152 +22,254 @@ Biblioteca para manejo de hooks.

---

### Instalación

La mejor forma de instalar esta extensión es a través de [composer](http://getcomposer.org/download/).
## Requisitos

Para instalar PHP Hook library, simplemente escribe:
Esta clase es soportada por versiones de **PHP 5.6** o superiores y es compatible con versiones de **HHVM 3.0** o superiores.

$ composer require Josantonius/Hook
## Instalación

El comando anterior sólo instalará los archivos necesarios, si prefieres descargar todo el código fuente (incluyendo tests, directorio vendor, excepciones no utilizadas, documentos...) puedes utilizar:
La mejor forma de instalar esta extensión es a través de [Composer](http://getcomposer.org/download/).

$ composer require Josantonius/Hook --prefer-source
Para instalar **PHP Hook library**, simplemente escribe:

También puedes clonar el repositorio completo con Git:
$ composer require Josantonius/Hook

$ git clone https://github.com/Josantonius/PHP-Hook.git
El comando anterior sólo instalará los archivos necesarios, si prefieres **descargar todo el código fuente** puedes utilizar:

### Requisitos
$ composer require Josantonius/Hook --prefer-source

Esta biblioteca es soportada por versiones de PHP 5.6 o superiores y es compatible con versiones de HHVM 3.0 o superiores.
También puedes **clonar el repositorio** completo con Git:

Para utilizar esta biblioteca en HHVM (HipHop Virtual Machine) tendrás que activar los tipos escalares. Añade la siguiente ĺínea "hhvm.php7.scalar_types = true" en tu "/etc/hhvm/php.ini".
$ git clone https://github.com/Josantonius/PHP-Hook.git

### Cómo empezar y ejemplos
O **instalarlo manualmente**:

Para utilizar esta biblioteca, simplemente:
[Descargar Hook.php](https://raw.githubusercontent.com/Josantonius/PHP-Hook/master/src/Hook.php):

```php
require __DIR__ . '/vendor/autoload.php';
$ wget https://raw.githubusercontent.com/Josantonius/PHP-Hook/master/src/Hook.php

use Josantonius\Hook\Hook;
```
### Métodos disponibles

Métodos disponibles en esta biblioteca:

### - Obtener instancia:

**getInstance()**
```php
Hook::getInstance();
```

**setSingletonName()**
| 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:

```php
Hook::setSingletonName($method);
```

| Atributo | Descripción | Tipo | Requerido | Por defecto
| Atributo | Descripción | Tipo | Requerido | Predeterminado
| --- | --- | --- | --- | --- |
| $method | Establecer el nombre del método para utilizar el patrón singleton | string || |
| $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:

**addAction()**
```php
Hook::addAction($tag, $function, $priority, $args);
```

| Atributo | Descripción | Tipo | Requerido | Por defecto
| Atributo | Descripción | Tipo | Requerido | Predeterminado
| --- | --- | --- | --- | --- |
| $tag | Nombre del gancho de acción | string || |
| $function | Función donde insertat el gancho de acción | callable || |
| $priority | Orden en que se ejecuta la acción | int | No | 8 |
| $args | Establecer el nombre del método para utilizar el patrón singleton | int | No | 0 |
| $tag | Nombre del gancho de acción. | string || |
| $function | Función donde insertar el gancho de acción. | callable || |
| $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:

**addActions()**
```php
Hook::addActions($actions);
```

| Atributo | Descripción | Tipo | Requerido | Por defecto
| Atributo | Descripción | Tipo | Requerido | Predeterminado
| --- | --- | --- | --- | --- |
| $actions | Acciones | array || |

**doAction()**
**# 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.

```php
Hook::doAction($tag, $args, $remove);
```

| Atributo | Descripción | Tipo | Requerido | Por defecto
| Atributo | Descripción | Tipo | Requerido | Predeterminado
| --- | --- | --- | --- | --- |
| $tag | Nombre del gancho de acción | string || |
| $args | Argumentos opcionales | mixed | No | array() |
| $tag | Nombre del gancho de acción. | string || |
| $args | Argumentos opcionales. | mixed | No | array() |
| $remove | Eliminar gancho después de ejecutar acciones | boolean | No | true |

**current()**
**# Return** (mixed|false) → salida de la última acción o falso

### - Obtener el gancho de acción actual:

```php
Hook::current();
```

**isAction()**
**# Return** (string|false) → gancho de acción actual

### - Comprobar si existe determinado gancho de acción:

```php
Hook::isAction($tag);
```

| Atttribute | Description | Type | Required | Default
| Atributo | Descripción | Tipo | Requerido | Predeterminado
| --- | --- | --- | --- | --- |
| $tag | Action hook name | string | Yes | |
| $tag | Nombre del gancho de acción | string | | |

### Uso
**# Return** (boolean)

Ejemplo de uso para esta biblioteca:
### Cómo empezar

Para utilizar esta biblioteca, simplemente:

Para utilizar esta biblioteca con **Composer**:

```php
<?php
require __DIR__ . '/vendor/autoload.php';

use Josantonius\Hook\Hook;
```

Si la instalaste **manualmente**, utiliza:

```php
require_once __DIR__ . '/Hook.php';

use Josantonius\Hook\Hook;
```

/* Agregar acciones */
### Uso

### - Agregar gancho de acción:

Hook::addAction('css', ['Namespace\Class\Example', 'css'], 2, 0);
```php
Hook::addAction('css', ['Josantonius\Hook\Test\Example', 'css']);
```

$hooks = [
['meta', ['Namespace\Class\Example', 'meta'], 1, 0],
['js', ['Namespace\Class\Example', 'js'], 3, 0],
['after-body', ['Namespace\Class\Example', 'afterBody'], 4, 0],
['footer', ['Namespace\Class\Example', 'footer'], 5, 0],
];
### - Agregar gancho de acción con prioridad:

Hook::addActions($hooks);
```php
Hook::addAction('js', ['Josantonius\Hook\Test\Example', 'js'], 1);
```

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

```php
$instance = new Example;

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

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

```php
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:

```php
$instance = new Example;

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

/* Ejecutar acciones */
### - Agregar múltiples ganchos de acción y definir patrón singleton:

Hook::doAction('meta');
```php
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:

```php
Hook::setSingletonName('singletonMethod');

Hook::isAction('meta');
```

### - Ejecutar ganchos de acción:

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

### - Ejecutar ganchos de acción con argumentos:

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

### Tests

Para ejecutar las [pruebas](tests/Hook/Test) simplemente:
Para ejecutar las [pruebas](tests) necesitarás [Composer](http://getcomposer.org/download/) y seguir los siguientes pasos:

$ git clone https://github.com/Josantonius/PHP-Hook.git

$ cd PHP-Hook

$ phpunit
$ composer install

Ejecutar pruebas unitarias con [PHPUnit](https://phpunit.de/):

$ composer phpunit

Ejecutar pruebas de estándares de código [PSR2](http://www.php-fig.org/psr/psr-2/) con [PHPCS](https://github.com/squizlabs/PHP_CodeSniffer):

$ composer phpcs

### Manejador de excepciones
Ejecutar todas las pruebas anteriores:

Esta biblioteca utiliza [control de excepciones](src/Exception) que puedes personalizar a tu gusto.
$ composer tests

### ☑ Tareas pendientes

- [x] Completar tests
- [ ] Mejorar la documentación
- [x] Mejorar la documentación

### Contribuir

Expand Down
Loading

0 comments on commit e2a4441

Please sign in to comment.