diff --git a/.gitignore b/.gitignore
index 9f2a41e..61cdf08 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
vendor
index.php
phpunit.xml
+.idea
diff --git a/.travis.yml b/.travis.yml
index 43d801a..9f18e71 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,9 +1,10 @@
language: php
php:
- - 5.4
- - 5.5
- 5.6
+ - 7.0
+ - 7.1
+ - 7.2
# faster builds on new travis setup not using sudo
sudo: false
diff --git a/README.md b/README.md
index 5386398..fcb56aa 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,25 @@
-Yii2 Hashids
-------------
+
+
+
+
+
Yii2 Hashids
+
+
+
[![Build Status](https://img.shields.io/travis/lichunqiang/hashids.svg?style=flat-square)](http://travis-ci.org/lichunqiang/hashids)
[![version](https://img.shields.io/packagist/v/light/hashids.svg?style=flat-square)](https://packagist.org/packages/light/hashids)
[![Download](https://img.shields.io/packagist/dt/light/hashids.svg?style=flat-square)](https://packagist.org/packages/light/hashids)
[![Issues](https://img.shields.io/github/issues/lichunqiang/hashids.svg?style=flat-square)](https://github.com/lichunqiang/hashids/issues)
+__NOTE__: The master branch for 2.0 version, that require mini php version is 5.6. You can require `light/hashids:^1.0`to use old version.
+
## Installation
Install this package via [Composer](https://getcomposer.org/):
```
-$ composer require light/hashids=*
+$ composer require light/hashids=^2.0
```
## Usage
diff --git a/composer.json b/composer.json
index 4614382..4638a0b 100644
--- a/composer.json
+++ b/composer.json
@@ -1,25 +1,35 @@
{
- "name": "light/hashids",
- "description": "Hashids for Yii2",
- "keywords": ["hashids", "yii2", "hash", "hashid", "ids", "youtube", "biyly", "encrypt", "decrypt"],
- "require": {
- "php": ">=5.4.0",
- "yiisoft/yii2": "2.0.*",
- "hashids/hashids": "1.0.5"
- },
- "license": "MIT",
- "authors": [
- {
- "name": "lichunqiang",
- "email": "light-li@hotmail.com"
- }
- ],
- "autoload": {
- "psr-4": {
- "light\\hashids\\": "src/"
- }
- },
- "require-dev": {
- "phpunit/phpunit": "^4.7"
+ "name": "light/hashids",
+ "description": "Hashids for Yii2",
+ "keywords": ["hashids", "yii2", "hash", "hashid", "ids", "youtube", "biyly", "encrypt", "decrypt"],
+ "require": {
+ "php": "^5.6.4 || ^7.0",
+ "yiisoft/yii2": "~2.0.14",
+ "hashids/hashids": "^2.0"
+ },
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "lichunqiang",
+ "email": "light-li@hotmail.com"
}
+ ],
+ "autoload": {
+ "psr-4": {
+ "light\\hashids\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "light\\tests\\": "tests/"
+ }
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ }
}
diff --git a/composer.lock b/composer.lock
index f99101f..9dfc748 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,103 +4,99 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "57ef4600207fdab284c64f853276f0d1",
+ "content-hash": "08a6cf5cb45c909ab849b847736d931b",
"packages": [
{
- "name": "bower-asset/jquery",
- "version": "2.1.4",
+ "name": "bower-asset/inputmask",
+ "version": "3.3.11",
"source": {
"type": "git",
- "url": "https://github.com/jquery/jquery.git",
- "reference": "7751e69b615c6eca6f783a81e292a55725af6b85"
+ "url": "https://github.com/RobinHerbots/Inputmask.git",
+ "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/jquery/jquery/zipball/7751e69b615c6eca6f783a81e292a55725af6b85",
- "reference": "7751e69b615c6eca6f783a81e292a55725af6b85",
+ "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5e670ad62f50c738388d4dcec78d2888505ad77b",
+ "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b",
"shasum": ""
},
- "require-dev": {
- "bower-asset/qunit": "1.14.0",
- "bower-asset/requirejs": "2.1.10",
- "bower-asset/sinon": "1.8.1",
- "bower-asset/sizzle": "2.1.1-patch2"
+ "require": {
+ "bower-asset/jquery": ">=1.7"
},
"type": "bower-asset-library",
"extra": {
- "bower-asset-main": "dist/jquery.js",
+ "bower-asset-main": [
+ "./dist/inputmask/inputmask.js",
+ "./dist/inputmask/inputmask.extensions.js",
+ "./dist/inputmask/inputmask.date.extensions.js",
+ "./dist/inputmask/inputmask.numeric.extensions.js",
+ "./dist/inputmask/inputmask.phone.extensions.js",
+ "./dist/inputmask/jquery.inputmask.js",
+ "./dist/inputmask/global/document.js",
+ "./dist/inputmask/global/window.js",
+ "./dist/inputmask/phone-codes/phone.js",
+ "./dist/inputmask/phone-codes/phone-be.js",
+ "./dist/inputmask/phone-codes/phone-nl.js",
+ "./dist/inputmask/phone-codes/phone-ru.js",
+ "./dist/inputmask/phone-codes/phone-uk.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js",
+ "./dist/inputmask/bindings/inputmask.binding.js"
+ ],
"bower-asset-ignore": [
- "**/.*",
- "build",
- "dist/cdn",
- "speed",
- "test",
- "*.md",
- "AUTHORS.txt",
- "Gruntfile.js",
- "package.json"
+ "**/*",
+ "!dist/*",
+ "!dist/inputmask/*",
+ "!dist/min/*",
+ "!dist/min/inputmask/*"
]
},
"license": [
- "MIT"
+ "http://opensource.org/licenses/mit-license.php"
],
+ "description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.",
"keywords": [
- "javascript",
+ "form",
+ "input",
+ "inputmask",
"jquery",
- "library"
- ]
+ "mask",
+ "plugins"
+ ],
+ "time": "2017-11-21T11:46:23+00:00"
},
{
- "name": "bower-asset/jquery.inputmask",
- "version": "3.1.63",
+ "name": "bower-asset/jquery",
+ "version": "3.2.1",
"source": {
"type": "git",
- "url": "https://github.com/RobinHerbots/jquery.inputmask.git",
- "reference": "c40c7287eadc31e341ebbf0c02352eb55b9cbc48"
+ "url": "https://github.com/jquery/jquery-dist.git",
+ "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/RobinHerbots/jquery.inputmask/zipball/c40c7287eadc31e341ebbf0c02352eb55b9cbc48",
- "reference": "c40c7287eadc31e341ebbf0c02352eb55b9cbc48",
+ "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/77d2a51d0520d2ee44173afdf4e40a9201f5964e",
+ "reference": "77d2a51d0520d2ee44173afdf4e40a9201f5964e",
"shasum": ""
},
- "require": {
- "bower-asset/jquery": ">=1.7"
- },
"type": "bower-asset-library",
"extra": {
- "bower-asset-main": [
- "./dist/inputmask/jquery.inputmask.js",
- "./dist/inputmask/jquery.inputmask.extensions.js",
- "./dist/inputmask/jquery.inputmask.date.extensions.js",
- "./dist/inputmask/jquery.inputmask.numeric.extensions.js",
- "./dist/inputmask/jquery.inputmask.phone.extensions.js",
- "./dist/inputmask/jquery.inputmask.regex.extensions.js"
- ],
+ "bower-asset-main": "dist/jquery.js",
"bower-asset-ignore": [
- "**/.*",
- "qunit/",
- "nuget/",
- "tools/",
- "js/",
- "*.md",
- "build.properties",
- "build.xml",
- "jquery.inputmask.jquery.json"
+ "package.json"
]
},
"license": [
- "http://opensource.org/licenses/mit-license.php"
+ "MIT"
],
- "description": "jquery.inputmask is a jquery plugin which create an input mask.",
"keywords": [
- "form",
- "input",
- "inputmask",
+ "browser",
+ "javascript",
"jquery",
- "mask",
- "plugins"
- ]
+ "library"
+ ],
+ "time": "2017-03-20T19:02:00+00:00"
},
{
"name": "bower-asset/punycode",
@@ -132,16 +128,16 @@
},
{
"name": "bower-asset/yii2-pjax",
- "version": "v2.0.4",
+ "version": "2.0.7.1",
"source": {
"type": "git",
"url": "https://github.com/yiisoft/jquery-pjax.git",
- "reference": "3f20897307cca046fca5323b318475ae9dac0ca0"
+ "reference": "aef7b953107264f00234902a3880eb50dafc48be"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/3f20897307cca046fca5323b318475ae9dac0ca0",
- "reference": "3f20897307cca046fca5323b318475ae9dac0ca0",
+ "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be",
+ "reference": "aef7b953107264f00234902a3880eb50dafc48be",
"shasum": ""
},
"require": {
@@ -154,6 +150,7 @@
".travis.yml",
"Gemfile",
"Gemfile.lock",
+ "CONTRIBUTING.md",
"vendor/",
"script/",
"test/"
@@ -161,20 +158,21 @@
},
"license": [
"MIT"
- ]
+ ],
+ "time": "2017-10-12T10:11:14+00:00"
},
{
"name": "cebe/markdown",
- "version": "1.1.0",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/cebe/markdown.git",
- "reference": "54a2c49de31cc44e864ebf0500a35ef21d0010b2"
+ "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/cebe/markdown/54a2c49de31cc44e864ebf0500a35ef21d0010b2.zip",
- "reference": "54a2c49de31cc44e864ebf0500a35ef21d0010b2",
+ "url": "https://files.phpcomposer.com/files/cebe/markdown/25b28bae8a6f185b5030673af77b32e1163d5c6e.zip",
+ "reference": "25b28bae8a6f185b5030673af77b32e1163d5c6e",
"shasum": ""
},
"require": {
@@ -221,25 +219,28 @@
"markdown",
"markdown-extra"
],
- "time": "2015-03-06 05:28:07"
+ "time": "2017-07-16T21:13:23+00:00"
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.6.0",
+ "version": "v4.10.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "6f389f0f25b90d0b495308efcfa073981177f0fd"
+ "reference": "d85d39da4576a6934b72480be6978fb10c860021"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/ezyang/htmlpurifier/6f389f0f25b90d0b495308efcfa073981177f0fd.zip",
- "reference": "6f389f0f25b90d0b495308efcfa073981177f0fd",
+ "url": "https://files.phpcomposer.com/files/ezyang/htmlpurifier/d85d39da4576a6934b72480be6978fb10c860021.zip",
+ "reference": "d85d39da4576a6934b72480be6978fb10c860021",
"shasum": ""
},
"require": {
"php": ">=5.2"
},
+ "require-dev": {
+ "simpletest/simpletest": "^1.1"
+ },
"type": "library",
"autoload": {
"psr-0": {
@@ -265,37 +266,41 @@
"keywords": [
"html"
],
- "time": "2013-11-30 08:25:19"
+ "time": "2018-02-23T01:58:20+00:00"
},
{
"name": "hashids/hashids",
- "version": "1.0.5",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/ivanakimov/hashids.php.git",
- "reference": "991a88b01b01b053fbd39a56780a66e572f1dc1a"
+ "reference": "7a945a5192d4a5c8888364970feece9bc26179df"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/ivanakimov/hashids.php/991a88b01b01b053fbd39a56780a66e572f1dc1a.zip",
- "reference": "991a88b01b01b053fbd39a56780a66e572f1dc1a",
+ "url": "https://files.phpcomposer.com/files/ivanakimov/hashids.php/7a945a5192d4a5c8888364970feece9bc26179df.zip",
+ "reference": "7a945a5192d4a5c8888364970feece9bc26179df",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": "^5.6.4 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "3.7.*"
+ "phpunit/phpunit": "^5.7 || ^6.3"
+ },
+ "suggest": {
+ "ext-bcmatch": "Required to use BC Math arbitrary precision mathematics (*).",
+ "ext-gmp": "Required to use GNU multiple precision mathematics (*)."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-master": "2.1-dev"
}
},
"autoload": {
- "psr-0": {
- "Hashids": "lib/"
+ "psr-4": {
+ "Hashids\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -307,14 +312,19 @@
"name": "Ivan Akimov",
"email": "ivan@barreleye.com",
"homepage": "https://twitter.com/IvanAkimov"
+ },
+ {
+ "name": "Vincent Klaiber",
+ "email": "hello@vinkla.com",
+ "homepage": "https://vinkla.com"
}
],
- "description": "Generate hashids like YouTube or Bitly from numbers to obfuscate your database primary ids, or navigate to the right shard.",
+ "description": "Generate short, unique, non-sequential ids (like YouTube and Bitly) from numbers",
"homepage": "http://hashids.org/php",
"keywords": [
"bitly",
- "decrypt",
- "encrypt",
+ "decode",
+ "encode",
"hash",
"hashid",
"hashids",
@@ -322,33 +332,34 @@
"obfuscate",
"youtube"
],
- "time": "2015-01-21 00:49:41"
+ "time": "2017-10-28T11:24:20+00:00"
},
{
"name": "yiisoft/yii2",
- "version": "2.0.5",
+ "version": "2.0.14.1",
"source": {
"type": "git",
"url": "https://github.com/yiisoft/yii2-framework.git",
- "reference": "ea8c13b9f5cd437bd7bf73cad8a3457a155f3727"
+ "reference": "d99969394c66dc3606134af092b8ec561ea5d7c6"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/yiisoft/yii2-framework/ea8c13b9f5cd437bd7bf73cad8a3457a155f3727.zip",
- "reference": "ea8c13b9f5cd437bd7bf73cad8a3457a155f3727",
+ "url": "https://files.phpcomposer.com/files/yiisoft/yii2-framework/d99969394c66dc3606134af092b8ec561ea5d7c6.zip",
+ "reference": "d99969394c66dc3606134af092b8ec561ea5d7c6",
"shasum": ""
},
"require": {
- "bower-asset/jquery": "2.1.*@stable | 1.11.*@stable",
- "bower-asset/jquery.inputmask": "3.1.*",
+ "bower-asset/inputmask": "~3.2.2 | ~3.3.5",
+ "bower-asset/jquery": "3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable",
"bower-asset/punycode": "1.3.*",
- "bower-asset/yii2-pjax": ">=2.0.1",
+ "bower-asset/yii2-pjax": "~2.0.1",
"cebe/markdown": "~1.0.0 | ~1.1.0",
+ "ext-ctype": "*",
"ext-mbstring": "*",
- "ezyang/htmlpurifier": "4.6.*",
+ "ezyang/htmlpurifier": "~4.6",
"lib-pcre": "*",
"php": ">=5.4.0",
- "yiisoft/yii2-composer": "*"
+ "yiisoft/yii2-composer": "~2.0.4"
},
"bin": [
"yii"
@@ -402,6 +413,17 @@
"name": "Paul Klimov",
"email": "klimov.paul@gmail.com",
"role": "Core framework development"
+ },
+ {
+ "name": "Dmitry Naumenko",
+ "email": "d.naumenko.a@gmail.com",
+ "role": "Core framework development"
+ },
+ {
+ "name": "Boudewijn Vahrmeijer",
+ "email": "info@dynasource.eu",
+ "homepage": "http://dynasource.eu",
+ "role": "Core framework development"
}
],
"description": "Yii PHP Framework Version 2",
@@ -410,24 +432,27 @@
"framework",
"yii2"
],
- "time": "2015-07-11 02:37:59"
+ "time": "2018-02-24T20:23:06+00:00"
},
{
"name": "yiisoft/yii2-composer",
- "version": "2.0.3",
+ "version": "2.0.5",
"source": {
"type": "git",
"url": "https://github.com/yiisoft/yii2-composer.git",
- "reference": "ca8d23707ae47d20b0454e4b135c156f6da6d7be"
+ "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/yiisoft/yii2-composer/ca8d23707ae47d20b0454e4b135c156f6da6d7be.zip",
- "reference": "ca8d23707ae47d20b0454e4b135c156f6da6d7be",
+ "url": "https://files.phpcomposer.com/files/yiisoft/yii2-composer/3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2.zip",
+ "reference": "3f4923c2bde6caf3f5b88cc22fdd5770f52f8df2",
"shasum": ""
},
"require": {
- "composer-plugin-api": "1.0.0"
+ "composer-plugin-api": "^1.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0"
},
"type": "composer-plugin",
"extra": {
@@ -457,38 +482,38 @@
"extension installer",
"yii2"
],
- "time": "2015-03-01 06:22:44"
+ "time": "2016-12-20T13:26:02+00:00"
}
],
"packages-dev": [
{
"name": "doctrine/instantiator",
- "version": "1.0.5",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/doctrine/instantiator/8e884e78f9f0eb1329e445619e04456e64d8051d.zip",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
+ "url": "https://files.phpcomposer.com/files/doctrine/instantiator/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda.zip",
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"shasum": ""
},
"require": {
- "php": ">=5.3,<8.0-DEV"
+ "php": "^7.1"
},
"require-dev": {
"athletic/athletic": "~0.1.8",
"ext-pdo": "*",
"ext-phar": "*",
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~2.0"
+ "phpunit/phpunit": "^6.2.3",
+ "squizlabs/php_codesniffer": "^3.0.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.2.x-dev"
}
},
"autoload": {
@@ -513,41 +538,291 @@
"constructor",
"instantiate"
],
- "time": "2015-06-14 21:17:01"
+ "time": "2017-07-22T11:58:36+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/myclabs/DeepCopy/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e.zip",
+ "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^4.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "time": "2017-10-19T19:58:43+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/phar-io/manifest/2df402786ab5368a0169091f61a7c1e0eb6852d0.zip",
+ "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "phar-io/version": "^1.0.1",
+ "php": "^5.6 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "time": "2017-03-05T18:14:27+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/phar-io/version/a70c0ced4be299a63d32fa96d9281d03e94041df.zip",
+ "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "time": "2017-03-05T17:38:23+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/phpDocumentor/ReflectionCommon/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6.zip",
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": [
+ "src"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "time": "2017-09-11T18:02:19+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "2.0.4",
+ "version": "4.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/phpDocumentor/ReflectionDocBlock/d68dbdc53dc358a816f00b300704702b2eaff7b8.zip",
- "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
+ "url": "https://files.phpcomposer.com/files/phpDocumentor/ReflectionDocBlock/94fd0001232e47129dd3504189fa1c7225010d08.zip",
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.0",
+ "phpdocumentor/reflection-common": "^1.0.0",
+ "phpdocumentor/type-resolver": "^0.4.0",
+ "webmozart/assert": "^1.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.0"
+ "doctrine/instantiator": "~1.0.5",
+ "mockery/mockery": "^1.0",
+ "phpunit/phpunit": "^6.4"
},
- "suggest": {
- "dflydev/markdown": "~1.0",
- "erusev/parsedown": "~1.0"
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "time": "2017-11-30T07:14:17+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "0.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/phpDocumentor/TypeResolver/9c977708995954784726e25d0cd1dddf4e65b0f7.zip",
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "phpdocumentor/reflection-common": "^1.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9.4",
+ "phpunit/phpunit": "^5.2||^4.8.24"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
- "psr-0": {
- "phpDocumentor": [
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": [
"src/"
]
}
@@ -559,37 +834,40 @@
"authors": [
{
"name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
+ "email": "me@mikevanriel.com"
}
],
- "time": "2015-02-03 12:10:50"
+ "time": "2017-07-14T14:27:02+00:00"
},
{
"name": "phpspec/prophecy",
- "version": "v1.4.1",
+ "version": "1.7.5",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373"
+ "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/phpspec/prophecy/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373.zip",
- "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
+ "url": "https://files.phpcomposer.com/files/phpspec/prophecy/dfd6be44111a7c41c2e884a336cc4f461b3b2401.zip",
+ "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
- "phpdocumentor/reflection-docblock": "~2.0",
- "sebastian/comparator": "~1.1"
+ "php": "^5.3|^7.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
+ "sebastian/comparator": "^1.1|^2.0",
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0"
},
"require-dev": {
- "phpspec/phpspec": "~2.0"
+ "phpspec/phpspec": "^2.5|^3.2",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4.x-dev"
+ "dev-master": "1.7.x-dev"
}
},
"autoload": {
@@ -622,43 +900,44 @@
"spy",
"stub"
],
- "time": "2015-04-27 22:15:08"
+ "time": "2018-02-19T10:16:54+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "2.2.2",
+ "version": "5.3.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c"
+ "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/php-code-coverage/2d7c03c0e4e080901b8f33b2897b0577be18a13c.zip",
- "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/php-code-coverage/661f34d0bd3f1a7225ef491a70a020ad23a057a1.zip",
+ "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1",
"shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "phpunit/php-file-iterator": "~1.3",
- "phpunit/php-text-template": "~1.2",
- "phpunit/php-token-stream": "~1.3",
- "sebastian/environment": "^1.3.2",
- "sebastian/version": "~1.0"
+ "ext-dom": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.0",
+ "phpunit/php-file-iterator": "^1.4.2",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-token-stream": "^2.0.1",
+ "sebastian/code-unit-reverse-lookup": "^1.0.1",
+ "sebastian/environment": "^3.0",
+ "sebastian/version": "^2.0.1",
+ "theseer/tokenizer": "^1.1"
},
"require-dev": {
- "ext-xdebug": ">=2.1.4",
- "phpunit/phpunit": "~4"
+ "phpunit/phpunit": "^6.0"
},
"suggest": {
- "ext-dom": "*",
- "ext-xdebug": ">=2.2.1",
- "ext-xmlwriter": "*"
+ "ext-xdebug": "^2.5.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-master": "5.3.x-dev"
}
},
"autoload": {
@@ -673,7 +952,7 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
+ "email": "sebastian@phpunit.de",
"role": "lead"
}
],
@@ -684,20 +963,20 @@
"testing",
"xunit"
],
- "time": "2015-08-04 03:42:39"
+ "time": "2017-12-06T09:29:45+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "1.4.1",
+ "version": "1.4.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/php-file-iterator/6150bf2c35d3fc379e50c7602b75caceaa39dbf0.zip",
- "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/php-file-iterator/730b01bc3e867237eaac355e06a36b85dd93a8b4.zip",
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
"shasum": ""
},
"require": {
@@ -731,7 +1010,7 @@
"filesystem",
"iterator"
],
- "time": "2015-06-21 13:08:43"
+ "time": "2017-11-27T13:52:08+00:00"
},
{
"name": "phpunit/php-text-template",
@@ -743,7 +1022,7 @@
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/php-text-template/31f8b717e51d9a2afca6c9f046f5d69fc27c8686.zip",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/php-text-template/31f8b717e51d9a2afca6c9f046f5d69fc27c8686.zip",
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
"shasum": ""
},
@@ -772,26 +1051,34 @@
"keywords": [
"template"
],
- "time": "2015-06-21 13:50:34"
+ "time": "2015-06-21T13:50:34+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "1.0.7",
+ "version": "1.0.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/php-timer/3e82f4e9fc92665fafd9157568e4dcb01d014e5b.zip",
- "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/php-timer/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f.zip",
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^5.3.3 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
"autoload": {
"classmap": [
"src/"
@@ -813,33 +1100,33 @@
"keywords": [
"timer"
],
- "time": "2015-06-21 08:01:12"
+ "time": "2017-02-26T11:10:40+00:00"
},
{
"name": "phpunit/php-token-stream",
- "version": "1.4.3",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9"
+ "reference": "791198a2c6254db10131eecfe8c06670700904db"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/php-token-stream/7a9b0969488c3c54fd62b4d504b3ec758fd005d9.zip",
- "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/php-token-stream/791198a2c6254db10131eecfe8c06670700904db.zip",
+ "reference": "791198a2c6254db10131eecfe8c06670700904db",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.2"
+ "phpunit/phpunit": "^6.2.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -862,45 +1149,57 @@
"keywords": [
"tokenizer"
],
- "time": "2015-06-19 03:43:16"
+ "time": "2017-11-27T05:48:46+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "4.7.7",
+ "version": "6.5.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "9b97f9d807b862c2de2a36e86690000801c85724"
+ "reference": "6bd77b57707c236833d2b57b968e403df060c9d9"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/phpunit/9b97f9d807b862c2de2a36e86690000801c85724.zip",
- "reference": "9b97f9d807b862c2de2a36e86690000801c85724",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/phpunit/6bd77b57707c236833d2b57b968e403df060c9d9.zip",
+ "reference": "6bd77b57707c236833d2b57b968e403df060c9d9",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-json": "*",
- "ext-pcre": "*",
- "ext-reflection": "*",
- "ext-spl": "*",
- "php": ">=5.3.3",
- "phpspec/prophecy": "~1.3,>=1.3.1",
- "phpunit/php-code-coverage": "~2.1",
- "phpunit/php-file-iterator": "~1.4",
- "phpunit/php-text-template": "~1.2",
- "phpunit/php-timer": ">=1.0.6",
- "phpunit/phpunit-mock-objects": "~2.3",
- "sebastian/comparator": "~1.1",
- "sebastian/diff": "~1.2",
- "sebastian/environment": "~1.2",
- "sebastian/exporter": "~1.2",
- "sebastian/global-state": "~1.0",
- "sebastian/version": "~1.0",
- "symfony/yaml": "~2.1|~3.0"
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "myclabs/deep-copy": "^1.6.1",
+ "phar-io/manifest": "^1.0.1",
+ "phar-io/version": "^1.0",
+ "php": "^7.0",
+ "phpspec/prophecy": "^1.7",
+ "phpunit/php-code-coverage": "^5.3",
+ "phpunit/php-file-iterator": "^1.4.3",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-timer": "^1.0.9",
+ "phpunit/phpunit-mock-objects": "^5.0.5",
+ "sebastian/comparator": "^2.1",
+ "sebastian/diff": "^2.0",
+ "sebastian/environment": "^3.1",
+ "sebastian/exporter": "^3.1",
+ "sebastian/global-state": "^2.0",
+ "sebastian/object-enumerator": "^3.0.3",
+ "sebastian/resource-operations": "^1.0",
+ "sebastian/version": "^2.0.1"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "3.0.2",
+ "phpunit/dbunit": "<3.0"
+ },
+ "require-dev": {
+ "ext-pdo": "*"
},
"suggest": {
- "phpunit/php-invoker": "~1.1"
+ "ext-xdebug": "*",
+ "phpunit/php-invoker": "^1.1"
},
"bin": [
"phpunit"
@@ -908,7 +1207,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.7.x-dev"
+ "dev-master": "6.5.x-dev"
}
},
"autoload": {
@@ -934,30 +1233,33 @@
"testing",
"xunit"
],
- "time": "2015-07-13 11:28:34"
+ "time": "2018-02-26T07:01:09+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
- "version": "2.3.6",
+ "version": "5.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42"
+ "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/phpunit-mock-objects/18dfbcb81d05e2296c0bcddd4db96cade75e6f42.zip",
- "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/phpunit-mock-objects/33fd41a76e746b8fa96d00b49a23dadfa8334cdf.zip",
+ "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "~1.0,>=1.0.2",
- "php": ">=5.3.3",
- "phpunit/php-text-template": "~1.2",
- "sebastian/exporter": "~1.2"
+ "doctrine/instantiator": "^1.0.5",
+ "php": "^7.0",
+ "phpunit/php-text-template": "^1.2.1",
+ "sebastian/exporter": "^3.1"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<6.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "phpunit/phpunit": "^6.5"
},
"suggest": {
"ext-soap": "*"
@@ -965,7 +1267,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.3.x-dev"
+ "dev-master": "5.0.x-dev"
}
},
"autoload": {
@@ -980,7 +1282,7 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
+ "email": "sebastian@phpunit.de",
"role": "lead"
}
],
@@ -990,34 +1292,79 @@
"mock",
"xunit"
],
- "time": "2015-07-10 06:54:24"
+ "time": "2018-01-06T05:45:45+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/code-unit-reverse-lookup/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18.zip",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7 || ^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "time": "2017-03-04T06:30:41+00:00"
},
{
"name": "sebastian/comparator",
- "version": "1.2.0",
+ "version": "2.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
+ "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/comparator/937efb279bd37a375bcadf584dec0726f84dbf22.zip",
- "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/comparator/34369daee48eafb2651bea869b4b15d75ccc35f9.zip",
+ "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
"shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "sebastian/diff": "~1.2",
- "sebastian/exporter": "~1.2"
+ "php": "^7.0",
+ "sebastian/diff": "^2.0 || ^3.0",
+ "sebastian/exporter": "^3.1"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "phpunit/phpunit": "^6.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2.x-dev"
+ "dev-master": "2.1.x-dev"
}
},
"autoload": {
@@ -1048,38 +1395,38 @@
}
],
"description": "Provides the functionality to compare PHP values for equality",
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
"keywords": [
"comparator",
"compare",
"equality"
],
- "time": "2015-07-26 15:48:44"
+ "time": "2018-02-01T13:46:46+00:00"
},
{
"name": "sebastian/diff",
- "version": "1.3.0",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
+ "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/diff/863df9687835c62aa423a22412d26fa2ebde3fd3.zip",
- "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/diff/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd.zip",
+ "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.2"
+ "phpunit/phpunit": "^6.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -1102,36 +1449,36 @@
}
],
"description": "Diff implementation",
- "homepage": "http://www.github.com/sebastianbergmann/diff",
+ "homepage": "https://github.com/sebastianbergmann/diff",
"keywords": [
"diff"
],
- "time": "2015-02-22 15:13:53"
+ "time": "2017-08-03T08:09:46+00:00"
},
{
"name": "sebastian/environment",
- "version": "1.3.2",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44"
+ "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/environment/6324c907ce7a52478eeeaede764f48733ef5ae44.zip",
- "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/environment/cd0871b3975fb7fc44d11314fd1ee20925fce4f5.zip",
+ "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "phpunit/phpunit": "^6.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3.x-dev"
+ "dev-master": "3.1.x-dev"
}
},
"autoload": {
@@ -1156,33 +1503,34 @@
"environment",
"hhvm"
],
- "time": "2015-08-03 06:14:51"
+ "time": "2017-07-01T08:51:00+00:00"
},
{
"name": "sebastian/exporter",
- "version": "1.2.1",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/exporter/7ae5513327cb536431847bcc0c10edba2701064e.zip",
- "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/exporter/234199f4528de6d12aaa58b612e98f7d36adb937.zip",
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
"shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "sebastian/recursion-context": "~1.0"
+ "php": "^7.0",
+ "sebastian/recursion-context": "^3.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2.x-dev"
+ "dev-master": "3.1.x-dev"
}
},
"autoload": {
@@ -1222,27 +1570,27 @@
"export",
"exporter"
],
- "time": "2015-06-21 07:55:53"
+ "time": "2017-04-03T13:19:02+00:00"
},
{
"name": "sebastian/global-state",
- "version": "1.0.0",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/global-state/c7428acdb62ece0a45e6306f1ae85e1c05b09c01.zip",
- "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/global-state/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4.zip",
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.2"
+ "phpunit/phpunit": "^6.0"
},
"suggest": {
"ext-uopz": "*"
@@ -1250,7 +1598,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -1273,32 +1621,124 @@
"keywords": [
"global state"
],
- "time": "2014-10-06 09:23:50"
+ "time": "2017-04-27T15:39:26+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/object-enumerator/7cfd9e65d11ffb5af41198476395774d4c8a84c5.zip",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "time": "2017-08-03T12:35:26+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/object-reflector/773f97c67f28de00d397be301821b06708fca0be.zip",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "time": "2017-03-29T09:07:27+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "1.0.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "994d4a811bafe801fb06dccbee797863ba2792ba"
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/recursion-context/994d4a811bafe801fb06dccbee797863ba2792ba.zip",
- "reference": "994d4a811bafe801fb06dccbee797863ba2792ba",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/recursion-context/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8.zip",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "phpunit/phpunit": "^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "3.0.x-dev"
}
},
"autoload": {
@@ -1326,23 +1766,73 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2015-06-21 08:04:50"
+ "time": "2017-03-03T06:23:57+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/resource-operations/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52.zip",
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "time": "2015-07-28T20:34:47+00:00"
},
{
"name": "sebastian/version",
- "version": "1.0.6",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/sebastianbergmann/version/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6.zip",
- "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+ "url": "https://files.phpcomposer.com/files/sebastianbergmann/version/99732be0ddb3361e16ad77b68ba41efc8e979019.zip",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
"shasum": ""
},
+ "require": {
+ "php": ">=5.6"
+ },
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
"autoload": {
"classmap": [
"src/"
@@ -1361,37 +1851,78 @@
],
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version",
- "time": "2015-06-21 13:59:46"
+ "time": "2016-10-03T07:35:21+00:00"
},
{
- "name": "symfony/yaml",
- "version": "v2.7.3",
+ "name": "theseer/tokenizer",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Yaml.git",
- "reference": "71340e996171474a53f3d29111d046be4ad8a0ff"
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
},
"dist": {
"type": "zip",
- "url": "http://packagist.phpcomposer.com/files/symfony/Yaml/71340e996171474a53f3d29111d046be4ad8a0ff.zip",
- "reference": "71340e996171474a53f3d29111d046be4ad8a0ff",
+ "url": "https://files.phpcomposer.com/files/theseer/tokenizer/cb2f008f3f05af2893a87208fe6a6c4985483f8b.zip",
+ "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
"shasum": ""
},
"require": {
- "php": ">=5.3.9"
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "time": "2017-04-07T12:08:54+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/assert.git",
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://files.phpcomposer.com/files/webmozart/assert/0df1908962e7a3071564e857d86874dad1ef204a.zip",
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "~2.7"
+ "phpunit/phpunit": "^4.6",
+ "sebastian/version": "^1.0.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.7-dev"
+ "dev-master": "1.3-dev"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Component\\Yaml\\": ""
+ "Webmozart\\Assert\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1400,17 +1931,17 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
}
],
- "description": "Symfony Yaml Component",
- "homepage": "https://symfony.com",
- "time": "2015-07-28 14:07:07"
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "time": "2018-01-29T19:49:41+00:00"
}
],
"aliases": [],
@@ -1419,7 +1950,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=5.4.0"
+ "php": "^5.6.4 || ^7.0"
},
"platform-dev": []
}
diff --git a/src/Hashids.php b/src/Hashids.php
index e0c0906..7dc225d 100644
--- a/src/Hashids.php
+++ b/src/Hashids.php
@@ -17,12 +17,17 @@
/**
* This is a wrapper for Hashids.
*
+ * @method string encode(...$params)
+ * @method mixed decode(string $id)
+ * @method string encodeHex(string $id)
+ * @method string decodeHex(string $id)
+ *
* @version 1.0.2
*
* @author lichunqiang
* @license MIT
*/
-class Hashids extends Object
+class Hashids extends BaseObject
{
/**
* The salt.
@@ -41,14 +46,14 @@ class Hashids extends Object
*
* @var string
*/
- public $alphabet;
+ public $alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
/**
* The instance of the Hashids.
*
- * @var Hashids\Hashids
+ * @var \Hashids\Hashids
*/
private $_hashids;
-
+
/**
* {@inheritdoc}
*/
@@ -57,6 +62,7 @@ public function init()
parent::init();
$this->_hashids = new BaseHashids($this->salt, $this->minHashLength, $this->alphabet);
}
+
/**
* {@inheritdoc}
*/
@@ -65,7 +71,7 @@ public function __call($name, $params)
if (method_exists($this->_hashids, $name)) {
return call_user_func_array([$this->_hashids, $name], $params);
}
-
+
return parent::__call($name, $params);
}
}
diff --git a/src/HashidsBehavior.php b/src/HashidsBehavior.php
new file mode 100644
index 0000000..d6e44c0
--- /dev/null
+++ b/src/HashidsBehavior.php
@@ -0,0 +1,42 @@
+
+ * @since 2.0.0
+ */
+class HashidsBehavior extends Behavior
+{
+ /**
+ * @var string|array|Hashids The `hashids` component
+ */
+ public $hashids = 'hashids';
+
+ /**
+ * @inheritdoc
+ */
+ public function init()
+ {
+ parent::init();
+
+ $this->hashids = Instance::ensure($this->hashids, Hashids::class);
+ }
+
+ /**
+ * @return string
+ */
+ public function getHashid()
+ {
+ $primaryKey = $this->owner->getPrimaryKey();
+
+ return $this->hashids->encode($this->owner->{$primaryKey});
+ }
+
+}
diff --git a/tests/TestModel.php b/tests/TestModel.php
new file mode 100644
index 0000000..eb680e8
--- /dev/null
+++ b/tests/TestModel.php
@@ -0,0 +1,26 @@
+ [
+ 'class' => HashidsBehavior::class,
+ ],
+ ];
+ }
+}
diff --git a/tests/hashids/HashidsBehaviorTest.php b/tests/hashids/HashidsBehaviorTest.php
new file mode 100644
index 0000000..48503e0
--- /dev/null
+++ b/tests/hashids/HashidsBehaviorTest.php
@@ -0,0 +1,34 @@
+ 'testApp',
+ 'basePath' => __DIR__,
+ 'components' => [
+ 'hashids' => [
+ 'class' => Hashids::class,
+ 'minHashLength' => 10,
+ ],
+ ],
+ ]);
+ }
+
+ public function testGetHashid()
+ {
+ $model = new TestModel();
+
+ $this->assertTrue(isset($model['hashid']));
+ $this->assertTrue(isset($model->hashid));
+
+ $this->assertEquals('jnegp26awZ', $model->getHashid());
+ }
+}
diff --git a/tests/hashids/HashidsTest.php b/tests/hashids/HashidsTest.php
index 36e79ac..f65c860 100644
--- a/tests/hashids/HashidsTest.php
+++ b/tests/hashids/HashidsTest.php
@@ -1,15 +1,113 @@
-hashids = Yii::createObject([
+ 'class' => Hashids::class,
+ ]);
+ }
+
public function testEncode()
{
- $hashids = \Yii::createObject([
- 'class' => 'light\hashids\Hashids'
+
+ $id = $this->hashids->encode(1, 2, 3);
+
+ $this->assertEquals('o2fXhV', $id);
+ $this->assertEquals($this->hashids->decode($id), [1, 2, 3]);
+ }
+
+ public function testMultiEncode()
+ {
+ $this->assertEquals('o2fXhV', $this->hashids->encode(1, 2, 3));
+ $this->assertEquals('o2fXhV', $this->hashids->encode('1', '2', '3'));
+ $this->assertEquals('o2fXhV', $this->hashids->encode(['1', '2', '3']));
+ }
+
+ public function testPrimaryKeyEncode()
+ {
+ $encoded = $this->hashids->encode(1000012);
+
+ $this->assertEquals('x73xr', $encoded);
+
+ return $encoded;
+ }
+
+ /**
+ * @throws \yii\base\InvalidConfigException
+ */
+ public function testUniqueEncodeResult()
+ {
+ $otherHashIds = Yii::createObject([
+ 'class' => Hashids::class,
+ 'salt' => 'test',
]);
-
- $id = $hashids->encode(1, 2, 3);
-
- $this->assertEquals($hashids->decode($id), [1, 2, 3]);
+
+
+ $this->assertNotEquals($this->hashids->encode(1), $otherHashIds->encode(1));
+ }
+
+ /**
+ * @throws \yii\base\InvalidConfigException
+ */
+ public function testAddPadding()
+ {
+ $otherHashIds = Yii::createObject([
+ 'class' => Hashids::class,
+ 'minHashLength' => 10,
+ ]);
+
+ $encode = $otherHashIds->encode(1);
+
+ $this->assertNotEquals($this->hashids->encode(1), $encode);
+ $this->assertEquals('VolejRejNm', $encode);
+ }
+
+
+ /**
+ * @depends testPrimaryKeyEncode
+ */
+ public function testPrimaryKeyDecode($encoded)
+ {
+ $this->assertEquals([1000012], $this->hashids->decode($encoded));
+ }
+
+ /**
+ * @param int $origin
+ * @param string $encoded
+ *
+ * @dataProvider encodeProvider
+ */
+ public function testEncodePair($origin, $encoded)
+ {
+ $this->assertEquals($encoded, $this->hashids->encode($origin));
+
+ $this->assertEquals([$origin], $this->hashids->decode($encoded));
+ }
+
+ /**
+ * @return array
+ */
+ public function encodeProvider()
+ {
+ return [
+ [1, 'jR'],
+ [10000, 'gp26'],
+ ];
}
}