Skip to content

Commit e2a4441

Browse files
committed
Updated to 1.0.8 version
1 parent b38bbb8 commit e2a4441

File tree

1,128 files changed

+112469
-704
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,128 files changed

+112469
-704
lines changed

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
# CHANGELOG
22

3+
## 1.0.8 - 2017-10-30
4+
5+
* Implemented `PSR-4 autoloader standard` from all library files.
6+
7+
* Implemented `PSR-2 coding standard` from all library PHP files.
8+
9+
* Implemented `PHPCS` to ensure that PHP code complies with `PSR2` code standards.
10+
11+
* Implemented `Codacy` to automates code reviews and monitors code quality over time.
12+
13+
* Implemented `Codecov` to coverage reports.
14+
15+
* Added `Hook/phpcs.ruleset.xml` file.
16+
17+
* Deleted `Hook/src/bootstrap.php` file.
18+
19+
* Deleted `Hook/tests/bootstrap.php` file.
20+
21+
* Deleted `Hook/vendor` folder.
22+
23+
* Changed `Josantonius\Hook\Test\HookTest` class to `Josantonius\Hook\HookTest` class.
24+
25+
326
## 1.0.7 - 2017-10-18
427

528
* Added `Josantonius\Hook\Hook::isAction()` method.

README-ES.md

Lines changed: 162 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
# PHP Hook library
22

3-
[![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)
3+
[![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)
44

55
[English version](README.md)
66

77
Biblioteca para manejo de hooks.
88

99
---
1010

11-
- [Instalación](#instalación)
1211
- [Requisitos](#requisitos)
13-
- [Cómo empezar y ejemplos](#cómo-empezar-y-ejemplos)
12+
- [Instalación](#instalación)
1413
- [Métodos disponibles](#métodos-disponibles)
14+
- [Cómo empezar](#cómo-empezar)
1515
- [Uso](#uso)
1616
- [Tests](#tests)
17-
- [Manejador de excepciones](#manejador-de-excepciones)
1817
- [Tareas pendientes](#-tareas-pendientes)
1918
- [Contribuir](#contribuir)
2019
- [Repositorio](#repositorio)
@@ -23,152 +22,254 @@ Biblioteca para manejo de hooks.
2322

2423
---
2524

26-
### Instalación
27-
28-
La mejor forma de instalar esta extensión es a través de [composer](http://getcomposer.org/download/).
25+
## Requisitos
2926

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

32-
$ composer require Josantonius/Hook
29+
## Instalación
3330

34-
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:
31+
La mejor forma de instalar esta extensión es a través de [Composer](http://getcomposer.org/download/).
3532

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

38-
También puedes clonar el repositorio completo con Git:
35+
$ composer require Josantonius/Hook
3936

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

42-
### Requisitos
39+
$ composer require Josantonius/Hook --prefer-source
4340

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

46-
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".
43+
$ git clone https://github.com/Josantonius/PHP-Hook.git
4744

48-
### Cómo empezar y ejemplos
45+
O **instalarlo manualmente**:
4946

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

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

55-
use Josantonius\Hook\Hook;
56-
```
5751
### Métodos disponibles
5852

5953
Métodos disponibles en esta biblioteca:
6054

55+
### - Obtener instancia:
6156

62-
**getInstance()**
6357
```php
6458
Hook::getInstance();
6559
```
6660

67-
**setSingletonName()**
61+
| Atributo | Descripción | Tipo | Requerido | Predeterminado
62+
| --- | --- | --- | --- | --- |
63+
| $id | ID único para multiples instancias. | string | No | '0' |
64+
65+
**# Return** (object) → instancia
66+
67+
### - Definir el nombre del método para usar el patrón singleton:
68+
6869
```php
6970
Hook::setSingletonName($method);
7071
```
7172

72-
| Atributo | Descripción | Tipo | Requerido | Por defecto
73+
| Atributo | Descripción | Tipo | Requerido | Predeterminado
7374
| --- | --- | --- | --- | --- |
74-
| $method | Establecer el nombre del método para utilizar el patrón singleton | string || |
75+
| $method | Definir el nombre del método para usar el patrón singleton. | callable | No | |
76+
77+
**# Return** (void)
78+
79+
### - Agregar función personalizado al gancho de acción:
7580

76-
**addAction()**
7781
```php
7882
Hook::addAction($tag, $function, $priority, $args);
7983
```
8084

81-
| Atributo | Descripción | Tipo | Requerido | Por defecto
85+
| Atributo | Descripción | Tipo | Requerido | Predeterminado
8286
| --- | --- | --- | --- | --- |
83-
| $tag | Nombre del gancho de acción | string || |
84-
| $function | Función donde insertat el gancho de acción | callable || |
85-
| $priority | Orden en que se ejecuta la acción | int | No | 8 |
86-
| $args | Establecer el nombre del método para utilizar el patrón singleton | int | No | 0 |
87+
| $tag | Nombre del gancho de acción. | string || |
88+
| $function | Función donde insertar el gancho de acción. | callable || |
89+
| $priority | Orden en que se ejecuta la acción. | int | No | 8 |
90+
| $args | Número de argumentos aceptados. | int | No | 0 |
91+
92+
**# Return** (boolean)
93+
94+
### - Agregar acciones desde array:
8795

88-
**addActions()**
8996
```php
9097
Hook::addActions($actions);
9198
```
9299

93-
| Atributo | Descripción | Tipo | Requerido | Por defecto
100+
| Atributo | Descripción | Tipo | Requerido | Predeterminado
94101
| --- | --- | --- | --- | --- |
95102
| $actions | Acciones | array || |
96103

97-
**doAction()**
104+
**# Return** (boolean)
105+
106+
### - Ejecutar todos los ganchos de determinada acción:
107+
108+
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.
109+
98110
```php
99111
Hook::doAction($tag, $args, $remove);
100112
```
101113

102-
| Atributo | Descripción | Tipo | Requerido | Por defecto
114+
| Atributo | Descripción | Tipo | Requerido | Predeterminado
103115
| --- | --- | --- | --- | --- |
104-
| $tag | Nombre del gancho de acción | string || |
105-
| $args | Argumentos opcionales | mixed | No | array() |
116+
| $tag | Nombre del gancho de acción. | string || |
117+
| $args | Argumentos opcionales. | mixed | No | array() |
106118
| $remove | Eliminar gancho después de ejecutar acciones | boolean | No | true |
107119

108-
**current()**
120+
**# Return** (mixed|false) → salida de la última acción o falso
121+
122+
### - Obtener el gancho de acción actual:
123+
109124
```php
110125
Hook::current();
111126
```
112127

113-
**isAction()**
128+
**# Return** (string|false) → gancho de acción actual
129+
130+
### - Comprobar si existe determinado gancho de acción:
131+
114132
```php
115133
Hook::isAction($tag);
116134
```
117135

118-
| Atttribute | Description | Type | Required | Default
136+
| Atributo | Descripción | Tipo | Requerido | Predeterminado
119137
| --- | --- | --- | --- | --- |
120-
| $tag | Action hook name | string | Yes | |
138+
| $tag | Nombre del gancho de acción | string | | |
121139

122-
### Uso
140+
**# Return** (boolean)
123141

124-
Ejemplo de uso para esta biblioteca:
142+
### Cómo empezar
143+
144+
Para utilizar esta biblioteca, simplemente:
145+
146+
Para utilizar esta biblioteca con **Composer**:
125147

126148
```php
127-
<?php
128149
require __DIR__ . '/vendor/autoload.php';
129150

130151
use Josantonius\Hook\Hook;
152+
```
153+
154+
Si la instalaste **manualmente**, utiliza:
155+
156+
```php
157+
require_once __DIR__ . '/Hook.php';
158+
159+
use Josantonius\Hook\Hook;
160+
```
131161

132-
/* Agregar acciones */
162+
### Uso
163+
164+
### - Agregar gancho de acción:
133165

134-
Hook::addAction('css', ['Namespace\Class\Example', 'css'], 2, 0);
166+
```php
167+
Hook::addAction('css', ['Josantonius\Hook\Test\Example', 'css']);
168+
```
135169

136-
$hooks = [
137-
['meta', ['Namespace\Class\Example', 'meta'], 1, 0],
138-
['js', ['Namespace\Class\Example', 'js'], 3, 0],
139-
['after-body', ['Namespace\Class\Example', 'afterBody'], 4, 0],
140-
['footer', ['Namespace\Class\Example', 'footer'], 5, 0],
141-
];
170+
### - Agregar gancho de acción con prioridad:
142171

143-
Hook::addActions($hooks);
172+
```php
173+
Hook::addAction('js', ['Josantonius\Hook\Test\Example', 'js'], 1);
174+
```
175+
176+
### - Agregar gancho de acción con prioridad y número de argumentos:
177+
178+
```php
179+
$instance = new Example;
180+
181+
Hook::addAction('meta', [$instance, 'meta'], 2, 1);
182+
```
183+
184+
### - Agregar gancho de acción y definir patrón singleton:
185+
186+
```php
187+
Hook::setSingletonName('singletonMethod');
188+
189+
$instance = call_user_func(
190+
'Josantonius\Hook\Test\Example::singletonMethod'
191+
);
192+
193+
Hook::addAction('article', [$instance, 'article'], 3, 0);
194+
```
195+
196+
### - Agregar múltiples ganchos de acción:
197+
198+
```php
199+
$instance = new Example;
200+
201+
Hook::addActions([
202+
['after-body', [$instance, 'afterBody'], 4, 0],
203+
['footer', [$instance, 'footer'], 5, 0],
204+
]);
205+
```
144206

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

147-
Hook::doAction('meta');
209+
```php
210+
Hook::setSingletonName('singletonMethod');
211+
212+
$instance = call_user_func(
213+
'Josantonius\Hook\Test\Example::singletonMethod'
214+
);
215+
216+
Hook::addActions([
217+
['slide', [$instance, 'slide'], 6, 0],
218+
['form', [$instance, 'form'], 7, 2],
219+
]);
220+
```
221+
222+
### - Comprobar si una acción ha sido definida:
223+
224+
```php
225+
Hook::setSingletonName('singletonMethod');
226+
227+
Hook::isAction('meta');
228+
```
229+
230+
### - Ejecutar ganchos de acción:
231+
232+
```php
148233
Hook::doAction('css');
149234
Hook::doAction('js');
150235
Hook::doAction('after-body');
236+
Hook::doAction('article');
151237
Hook::doAction('footer');
152238
```
153239

240+
### - Ejecutar ganchos de acción con argumentos:
241+
242+
```php
243+
Hook::doAction('meta', 'The title');
244+
Hook::doAction('form', ['input', 'select']);
245+
```
246+
154247
### Tests
155248

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

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

160253
$ cd PHP-Hook
161254

162-
$ phpunit
255+
$ composer install
256+
257+
Ejecutar pruebas unitarias con [PHPUnit](https://phpunit.de/):
258+
259+
$ composer phpunit
260+
261+
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):
262+
263+
$ composer phpcs
163264

164-
### Manejador de excepciones
265+
Ejecutar todas las pruebas anteriores:
165266

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

168269
### ☑ Tareas pendientes
169270

170271
- [x] Completar tests
171-
- [ ] Mejorar la documentación
272+
- [x] Mejorar la documentación
172273

173274
### Contribuir
174275

0 commit comments

Comments
 (0)