mirror of
https://github.com/stan220/WildcardEventDispatcher.git
synced 2026-09-08 19:28:45 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc3257181c | ||
|
|
544fca2b55 | ||
|
|
f32bd8592f | ||
|
|
392eff7dc6 | ||
|
|
bcb29ff342 | ||
|
|
8733d7382b | ||
|
|
fe0da3a28b | ||
|
|
5ed48b24cb | ||
|
|
65d13be38c |
+18
-15
@@ -1,27 +1,30 @@
|
||||
language: php
|
||||
|
||||
dist: trusty
|
||||
sudo: false
|
||||
|
||||
php:
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
- 7.0
|
||||
- hhvm
|
||||
- 7.1
|
||||
- 7.2
|
||||
- 7.3
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- ${HOME}/.composer/cache/files
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
allow_failures:
|
||||
- php: hhvm
|
||||
- env: SYMFONY_VERSION=3.0.*
|
||||
fast_finish: true
|
||||
include:
|
||||
- php: 5.3
|
||||
dist: precise
|
||||
env: COMPOSER_FLAGS="--prefer-lowest"
|
||||
|
||||
include:
|
||||
- php: 5.3
|
||||
env: COMPOSER_FLAGS="--prefer-lowest"
|
||||
before_script:
|
||||
- phpenv config-rm xdebug.ini
|
||||
- composer update --no-interaction --no-progress --no-suggest ${COMPOSER_FLAGS}
|
||||
|
||||
before_install:
|
||||
- travis_retry composer self-update
|
||||
|
||||
install:
|
||||
- composer update ${COMPOSER_FLAGS} --no-interaction
|
||||
script:
|
||||
- vendor/bin/phpunit -v
|
||||
|
||||
+4
-1
@@ -10,7 +10,10 @@
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.3.2",
|
||||
"symfony/event-dispatcher": "^2.3 || ^3.0"
|
||||
"symfony/event-dispatcher": "^2.3 || ^3.0 || ^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.36 || ^6.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": { "Jmikola": "src/" }
|
||||
|
||||
@@ -12,18 +12,7 @@ class ListenerPattern
|
||||
protected $priority;
|
||||
protected $regex;
|
||||
|
||||
private static $replacements = array(
|
||||
// Trailing single-wildcard with separator prefix
|
||||
'/\\\\\.\\\\\*$/' => '(?:\.\w+)?',
|
||||
// Single-wildcard with separator prefix
|
||||
'/\\\\\.\\\\\*/' => '(?:\.\w+)',
|
||||
// Single-wildcard without separator prefix
|
||||
'/(?<!\\\\\.)\\\\\*/' => '(?:\w+)',
|
||||
// Multi-wildcard with separator prefix
|
||||
'/\\\\\.#/' => '(?:\.\w+)*',
|
||||
// Multi-wildcard without separator prefix
|
||||
'/(?<!\\\\\.)#/' => '(?:|\w+(?:\.\w+)*)',
|
||||
);
|
||||
private static $replacements;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
@@ -110,10 +99,52 @@ class ListenerPattern
|
||||
*/
|
||||
private function createRegex($eventPattern)
|
||||
{
|
||||
$replacements = self::getReplacements();
|
||||
|
||||
return sprintf('/^%s$/', preg_replace(
|
||||
array_keys(self::$replacements),
|
||||
array_values(self::$replacements),
|
||||
array_keys($replacements),
|
||||
array_values($replacements),
|
||||
preg_quote($eventPattern, '/')
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns preg_replace() replacements for preparing the event pattern.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private static function getReplacements()
|
||||
{
|
||||
if (null !== self::$replacements) {
|
||||
return self::$replacements;
|
||||
}
|
||||
|
||||
self::$replacements = array(
|
||||
// Trailing single-wildcard with separator prefix
|
||||
'/\\\\\.\\\\\*$/' => '(?:\.\w+)?',
|
||||
// Single-wildcard with separator prefix
|
||||
'/\\\\\.\\\\\*/' => '(?:\.\w+)',
|
||||
// Single-wildcard without separator prefix
|
||||
'/(?<!\\\\\.)\\\\\*/' => '(?:\w+)',
|
||||
);
|
||||
|
||||
// preg_quote() escapes `#` in PHP 7.3+
|
||||
if (PHP_VERSION_ID >= 70300) {
|
||||
self::$replacements += array(
|
||||
// Multi-wildcard with separator prefix
|
||||
'/\\\\\.\\\\\#/' => '(?:\.\w+)*',
|
||||
// Multi-wildcard without separator prefix
|
||||
'/(?<!\\\\\.)\\\\\#/' => '(?:|\w+(?:\.\w+)*)',
|
||||
);
|
||||
} else {
|
||||
self::$replacements += array(
|
||||
// Multi-wildcard with separator prefix
|
||||
'/\\\\\.#/' => '(?:\.\w+)*',
|
||||
// Multi-wildcard without separator prefix
|
||||
'/(?<!\\\\\.)#/' => '(?:|\w+(?:\.\w+)*)',
|
||||
);
|
||||
}
|
||||
|
||||
return self::$replacements;
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,9 @@
|
||||
namespace Jmikola\Tests\WildcardEventDispatcher;
|
||||
|
||||
use Jmikola\WildcardEventDispatcher\LazyListenerPattern;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class LazyListenerPatternTest extends \PHPUnit_Framework_TestCase
|
||||
class LazyListenerPatternTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @expectedException InvalidArgumentException
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
namespace Jmikola\Tests\WildcardEventDispatcher;
|
||||
|
||||
use Jmikola\WildcardEventDispatcher\ListenerPattern;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class ListenerPatternTest extends \PHPUnit_Framework_TestCase
|
||||
class ListenerPatternTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @dataProvider providePatternsAndMatches
|
||||
|
||||
+2
-1
@@ -4,8 +4,9 @@ namespace Jmikola\Tests\WildcardEventDispatcher;
|
||||
|
||||
use Jmikola\WildcardEventDispatcher\WildcardEventDispatcher;
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class WildcardEventDispatcherFunctionalTest extends \PHPUnit_Framework_TestCase
|
||||
class WildcardEventDispatcherFunctionalTest extends TestCase
|
||||
{
|
||||
const coreRequest = 'core.request';
|
||||
const coreException = 'core.exception';
|
||||
|
||||
@@ -4,8 +4,9 @@ namespace Jmikola\Tests\WildcardEventDispatcher;
|
||||
|
||||
use Jmikola\WildcardEventDispatcher\WildcardEventDispatcher;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class EventDispatcherTest extends \PHPUnit_Framework_TestCase
|
||||
class EventDispatcherTest extends TestCase
|
||||
{
|
||||
private $dispatcher;
|
||||
private $innerDispatcher;
|
||||
|
||||
Reference in New Issue
Block a user