diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..f22f096
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,6 @@
+/test export-ignore
+.gitattributes export-ignore
+.gitignore export-ignore
+.travis.yml export-ignore
+phpcs.xml export-ignore
+phpunit.xml.dist export-ignore
diff --git a/.gitignore b/.gitignore
index d8a7996..27e7103 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
-composer.lock
vendor/
+.idea/
+phpunit.xml
diff --git a/.travis.yml b/.travis.yml
index e5160dd..63f6a85 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,20 +5,44 @@ language: php
cache:
directories:
- $HOME/.composer/cache
+ - vendor
+
+env:
+ global:
+ - COMPOSER_ARGS="--no-interaction --ignore-platform-reqs"
matrix:
fast_finish: true
include:
- - php: 5.5
+ - php: 5.6
+ env:
+ - DEPS=lowest
+ - php: 5.6
env:
- - EXECUTE_CS_CHECK=true
+ - DEPS=locked
- php: 5.6
env:
- - EXECUTE_COVERAGE=true
+ - DEPS=latest
+ - php: 7
+ env:
+ - DEPS=lowest
+ - php: 7
+ env:
+ - DEPS=locked
+ - CS_CHECK=true
- php: 7
+ env:
+ - DEPS=latest
+ - php: hhvm
+ env:
+ - DEPS=lowest
- php: hhvm
+ env:
+ - DEPS=locked
+ - php: hhvm
+ env:
+ - DEPS=latest
allow_failures:
- - php: 7
- php: hhvm
notifications:
@@ -26,12 +50,15 @@ notifications:
email: false
before_install:
- - if [[ $EXECUTE_COVERAGE != 'true' ]]; then phpenv config-rm xdebug.ini || return 0 ; fi
- - composer self-update
+ - if [[ $TEST_COVERAGE != 'true' ]]; then phpenv config-rm xdebug.ini || return 0 ; fi
+ - travis_retry composer self-update
install:
- - travis_retry composer install --no-interaction --ignore-platform-reqs --prefer-source
+ - if [[ $DEPS == 'latest' ]]; then travis_retry composer update $COMPOSER_ARGS ; fi
+ - if [[ $DEPS == 'lowest' ]]; then travis_retry composer update --prefer-lowest --prefer-stable $COMPOSER_ARGS ; fi
+ - travis_retry composer install $COMPOSER_ARGS
+ - composer show
script:
- - ./vendor/bin/phpunit
- - if [[ $EXECUTE_CS_CHECK == 'true' ]]; then ./vendor/bin/phpcs ; fi
+ - composer test
+ - if [[ $CS_CHECK == 'true' ]]; then composer cs-check ; fi
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..edcd948
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,31 @@
+# Changelog
+
+All notable changes to this project will be documented in this file, in reverse chronological order by release.
+
+## 1.2.0 - TBD
+
+### Added
+
+- [#24](https://github.com/zfcampus/zf-apigility-documentation-swagger/pull/24)
+ adds support for v3 releases of Zend Framework components, keeping
+ compatibility for v2 releases.
+- [#14](https://github.com/zfcampus/zf-apigility-documentation-swagger/pull/14) and
+ [#19](https://github.com/zfcampus/zf-apigility-documentation-swagger/pull/19) add
+ support for retrieving the field type as both the type and dataType.
+
+### Deprecated
+
+- Nothing.
+
+### Removed
+
+- [#24](https://github.com/zfcampus/zf-apigility-documentation-swagger/pull/24)
+ removes support for PHP 5.5.
+- [#21](https://github.com/zfcampus/zf-apigility-documentation-swagger/pull/21)
+ removes the verbiage "Operation for {Api}" as a default service description
+ from the swagger templates.
+
+### Fixed
+
+- [#23](https://github.com/zfcampus/zf-apigility-documentation-swagger/pull/23)
+ updates the link to the Swagger website to point to the new swagger.io URL.
diff --git a/CONDUCT.md b/CONDUCT.md
new file mode 100644
index 0000000..c663d2b
--- /dev/null
+++ b/CONDUCT.md
@@ -0,0 +1,43 @@
+# Contributor Code of Conduct
+
+The Zend Framework project adheres to [The Code Manifesto](http://codemanifesto.com)
+as its guidelines for contributor interactions.
+
+## The Code Manifesto
+
+We want to work in an ecosystem that empowers developers to reach their
+potential — one that encourages growth and effective collaboration. A space that
+is safe for all.
+
+A space such as this benefits everyone that participates in it. It encourages
+new developers to enter our field. It is through discussion and collaboration
+that we grow, and through growth that we improve.
+
+In the effort to create such a place, we hold to these values:
+
+1. **Discrimination limits us.** This includes discrimination on the basis of
+ race, gender, sexual orientation, gender identity, age, nationality, technology
+ and any other arbitrary exclusion of a group of people.
+2. **Boundaries honor us.** Your comfort levels are not everyone’s comfort
+ levels. Remember that, and if brought to your attention, heed it.
+3. **We are our biggest assets.** None of us were born masters of our trade.
+ Each of us has been helped along the way. Return that favor, when and where
+ you can.
+4. **We are resources for the future.** As an extension of #3, share what you
+ know. Make yourself a resource to help those that come after you.
+5. **Respect defines us.** Treat others as you wish to be treated. Make your
+ discussions, criticisms and debates from a position of respectfulness. Ask
+ yourself, is it true? Is it necessary? Is it constructive? Anything less is
+ unacceptable.
+6. **Reactions require grace.** Angry responses are valid, but abusive language
+ and vindictive actions are toxic. When something happens that offends you,
+ handle it assertively, but be respectful. Escalate reasonably, and try to
+ allow the offender an opportunity to explain themselves, and possibly correct
+ the issue.
+7. **Opinions are just that: opinions.** Each and every one of us, due to our
+ background and upbringing, have varying opinions. The fact of the matter, is
+ that is perfectly acceptable. Remember this: if you respect your own
+ opinions, you should respect the opinions of others.
+8. **To err is human.** You might not intend it, but mistakes do happen and
+ contribute to build experience. Tolerate honest mistakes, and don't hesitate
+ to apologize if you make one yourself.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d7d8743..62fdd14 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -50,25 +50,31 @@ First, use [Composer](https://getcomposer.org) to install all dependencies:
$ composer install
```
-To run tests, use the PHPUnit executable installed by Composer:
+To run tests:
```console
-$ ./vendor/bin/phpunit
+$ composer test
```
## CODING STANDARDS
While Apigility uses Zend Framework 2 coding standards, in practice, we check
-standards using [php-cs-fixer](https://github.com/fabpot/PHP-CS-Fixer) (which is
-installed via Composer with other dependencies). To check for CS issues:
+standards against PSR-1/2. To check for CS issues:
```console
-$ ./vendor/bin/php-cs-fixer fix . --dry-run
+$ composer cs-check
```
-This will report CS issues. Alternately, you can have the tool fix them for you
-by omitting the `--dry-run` switch:
+This will report CS issues. You can also attempt to fix many reported errors
+automatically:
```console
-$ ./vendor/bin/php-cs-fixer fix .
+$ composer cs-fix
```
+
+If you use `cs-fix` to fix issues, make certain you add and commit any files
+changed!
+
+## Conduct
+
+Please see our [CONDUCT.md](CONDUCT.md) to understand expected behavior when interacting with others in the project.
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..94fe586
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,28 @@
+Copyright (c) 2014-2016, Zend Technologies USA, Inc.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+- Neither the name of Zend Technologies USA, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Module.php b/Module.php
deleted file mode 100644
index b1800c0..0000000
--- a/Module.php
+++ /dev/null
@@ -1,47 +0,0 @@
- array(
- 'namespaces' => array(
- __NAMESPACE__ => __DIR__ . '/src/'
- )
- )
- );
- }
-
- public function onBootstrap($e)
- {
- $app = $e->getApplication();
- $events = $app->getEventManager();
- $events->attach('render', array($this, 'onRender'), 100);
- }
-
- public function onRender($e)
- {
- $model = $e->getResult();
- if (! $model instanceof ViewModel) {
- return;
- }
-
- $app = $e->getApplication();
- $services = $app->getServiceManager();
- $view = $services->get('View');
- $events = $view->getEventManager();
- $events->attach($services->get(__NAMESPACE__ . '\SwaggerViewStrategy'));
- }
-}
diff --git a/README.md b/README.md
index df43d32..7f08a3b 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Introduction
------------
This module provides Apigility the ability to show API documentation through a
-[Swagger UI](http://swagger.wordnik.com/).
+[Swagger UI](http://swagger.io/).
The Swagger UI is immediately accessible after enabling this module at the URI path `/apigility/swagger`.
@@ -28,14 +28,14 @@ Installation
Run the following `composer` command:
```console
-$ composer require "zfcampus/zf-apigility-documentation-swagger:~1.0-dev"
+$ composer require zfcampus/zf-apigility-documentation-swagger
```
Alternately, manually add the following to your `composer.json`, in the `require` section:
```javascript
"require": {
- "zfcampus/zf-apigility-documentation-swagger": "~1.0-dev"
+ "zfcampus/zf-apigility-documentation-swagger": "^1.2"
}
```
@@ -45,16 +45,21 @@ Finally, add the module name to your project's `config/application.config.php` u
key:
```php
-return array(
+return [
/* ... */
- 'modules' => array(
+ 'modules' => [
/* ... */
'ZF\Apigility\Documentation\Swagger',
- ),
+ ],
/* ... */
-);
+];
```
+> ### zf-component-installer
+>
+> If you use [zf-component-installer](https://github.com/zendframework/zf-component-installer),
+> that plugin will install zf-apigility-documentation-swagger as a module for you.
+
Routes
------
@@ -76,73 +81,82 @@ The following is required to ensure the module works within a ZF2 and/or Apigili
application:
```php
-'router' => array(
- 'routes' => array(
- 'zf-apigility' => array(
- 'child_routes' => array(
- 'swagger' => array(
- 'type' => 'Zend\Mvc\Router\Http\Segment',
- 'options' => array(
- 'route' => '/swagger',
- 'defaults' => array(
- 'controller' => 'ZF\Apigility\Documentation\Swagger\SwaggerUi',
- 'action' => 'list',
- ),
- ),
- 'may_terminate' => true,
- 'child_routes' => array(
- 'api' => array(
- 'type' => 'Segment',
- 'options' => array(
- 'route' => '/:api',
- 'defaults' => array(
- 'action' => 'show',
- ),
- ),
- 'may_terminate' => true,
- ),
- ),
- ),
- ),
- ),
- ),
-),
-'service_manager' => array(
- 'factories' => array(
- 'ZF\Apigility\Documentation\Swagger\SwaggerViewStrategy' => 'ZF\Apigility\Documentation\Swagger\SwaggerViewStrategyFactory',
- ),
-),
-'controllers' => array(
- 'factories' => array(
- 'ZF\Apigility\Documentation\Swagger\SwaggerUi' => 'ZF\Apigility\Documentation\Swagger\SwaggerUiControllerFactory',
- ),
-),
-'view_manager' => array(
- 'template_path_stack' => array(
- 'zf-apigility-documentation-swagger' => __DIR__ . '/../view',
- ),
-),
-'asset_manager' => array(
- 'resolver_configs' => array(
- 'paths' => array(
- __DIR__ . '/../asset',
- ),
- ),
-),
-'zf-content-negotiation' => array(
- 'accept_whitelist' => array(
- 'ZF\Apigility\Documentation\Controller' => array(
- 0 => 'application/vnd.swagger+json',
- ),
- ),
- 'selectors' => array(
- 'Documentation' => array(
- 'ZF\Apigility\Documentation\Swagger\ViewModel' => array(
- 'application/vnd.swagger+json',
- ),
- )
- )
-),
+namespace ZF\Apigility\Documentation\Swagger;
+
+return [
+ 'router' => [
+ 'routes' => [
+ 'zf-apigility' => [
+ 'child_routes' => [
+ 'swagger' => [
+ 'type' => 'segment',
+ 'options' => [
+ 'route' => '/swagger',
+ 'defaults' => [
+ 'controller' => SwaggerUi::class,
+ 'action' => 'list',
+ ],
+ ],
+ 'may_terminate' => true,
+ 'child_routes' => [
+ 'api' => [
+ 'type' => 'segment',
+ 'options' => [
+ 'route' => '/:api',
+ 'defaults' => [
+ 'action' => 'show',
+ ],
+ ],
+ 'may_terminate' => true,
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+
+ 'service_manager' => [
+ 'factories' => [
+ SwaggerViewStrategy::class => SwaggerViewStrategyFactory::class,
+ ],
+ ],
+
+ 'controllers' => [
+ 'factories' => [
+ SwaggerUi::class => SwaggerUiControllerFactory::class,
+ ],
+ ],
+
+ 'view_manager' => [
+ 'template_path_stack' => [
+ 'zf-apigility-documentation-swagger' => __DIR__ . '/../view',
+ ],
+ ],
+
+ 'asset_manager' => [
+ 'resolver_configs' => [
+ 'paths' => [
+ __DIR__ . '/../asset',
+ ],
+ ],
+ ],
+
+ 'zf-content-negotiation' => [
+ 'accept_whitelist' => [
+ 'ZF\Apigility\Documentation\Controller' => [
+ 0 => 'application/vnd.swagger+json',
+ ],
+ ],
+ 'selectors' => [
+ 'Documentation' => [
+ ViewModel::class => [
+ 'application/vnd.swagger+json',
+ ],
+ ],
+ ],
+ ],
+];
```
ZF2 Events
diff --git a/asset/zf-apigility-documentation-swagger/lib/swagger.js b/asset/zf-apigility-documentation-swagger/lib/swagger.js
index e181a92..584ed38 100644
--- a/asset/zf-apigility-documentation-swagger/lib/swagger.js
+++ b/asset/zf-apigility-documentation-swagger/lib/swagger.js
@@ -503,7 +503,7 @@ SwaggerModel.prototype.createJSONSample = function(modelsToIgnore) {
var SwaggerModelProperty = function(name, obj) {
this.name = name;
- this.dataType = obj.type || obj.dataType || obj["$ref"];
+ this.dataType = obj.dataType || obj.type || obj["$ref"];
this.isCollection = this.dataType && (this.dataType.toLowerCase() === 'array' || this.dataType.toLowerCase() === 'list' || this.dataType.toLowerCase() === 'set');
this.descr = obj.description;
this.required = obj.required;
diff --git a/composer.json b/composer.json
index bbf06b3..7895e4a 100644
--- a/composer.json
+++ b/composer.json
@@ -22,36 +22,44 @@
"branch-alias": {
"dev-master": "1.1-dev",
"dev-develop": "1.2-dev"
+ },
+ "zf": {
+ "module": "ZF\\Apigility\\Documentation\\Swagger"
}
},
"require": {
- "php": ">=5.5",
- "zendframework/zend-eventmanager": "~2.3",
- "zendframework/zend-mvc": "~2.3",
- "zendframework/zend-servicemanager": "~2.3",
- "zendframework/zend-view": "~2.3",
- "zfcampus/zf-api-problem": "~1.0",
- "zfcampus/zf-apigility-documentation": "~1.0",
- "zfcampus/zf-content-negotiation": "~1.0"
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-eventmanager": "^2.6.3 || ^3.0.1",
+ "zendframework/zend-mvc": "^2.7.9 || ^3.0.2",
+ "zendframework/zend-servicemanager": "^2.7.6 || ^3.1",
+ "zendframework/zend-view": "^2.8.1",
+ "zfcampus/zf-api-problem": "^1.2.1",
+ "zfcampus/zf-apigility-documentation": "^1.2",
+ "zfcampus/zf-content-negotiation": "^1.2.1"
},
"require-dev": {
- "phpunit/phpunit": "~4.7",
+ "phpunit/phpunit": "^4.7",
"squizlabs/php_codesniffer": "^2.3.1",
- "zendframework/zend-http": "~2.3",
- "zendframework/zend-loader": "~2.3",
- "zendframework/zend-stdlib": "~2.3"
+ "zendframework/zend-http": "^2.5.4",
+ "zendframework/zend-stdlib": "^2.7.7 || ^3.0.1"
},
"autoload": {
"psr-4": {
"ZF\\Apigility\\Documentation\\Swagger\\": "src/"
- },
- "classmap": [
- "Module.php"
- ]
+ }
},
"autoload-dev": {
"psr-4": {
"ZFTest\\Apigility\\Documentation\\Swagger\\": "test/"
}
+ },
+ "scripts": {
+ "check": [
+ "@cs-check",
+ "@test"
+ ],
+ "cs-check": "phpcs",
+ "cs-fix": "phpcbf",
+ "test": "phpunit"
}
}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..4a8c2e0
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,2466 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "This file is @generated automatically"
+ ],
+ "hash": "9ea46b44169a9193e953f8f036bb952f",
+ "content-hash": "d63cc98bb6b6baefe6a82065736a24f6",
+ "packages": [
+ {
+ "name": "container-interop/container-interop",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/container-interop/container-interop.git",
+ "reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/container-interop/container-interop/zipball/fc08354828f8fd3245f77a66b9e23a6bca48297e",
+ "reference": "fc08354828f8fd3245f77a66b9e23a6bca48297e",
+ "shasum": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Interop\\Container\\": "src/Interop/Container/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
+ "time": "2014-12-30 15:22:37"
+ },
+ {
+ "name": "michelf/php-markdown",
+ "version": "1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/michelf/php-markdown.git",
+ "reference": "156e56ee036505ec637d761ee62dc425d807183c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/michelf/php-markdown/zipball/156e56ee036505ec637d761ee62dc425d807183c",
+ "reference": "156e56ee036505ec637d761ee62dc425d807183c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-lib": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Michelf": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Michel Fortin",
+ "email": "michel.fortin@michelf.ca",
+ "homepage": "https://michelf.ca/",
+ "role": "Developer"
+ },
+ {
+ "name": "John Gruber",
+ "homepage": "https://daringfireball.net/"
+ }
+ ],
+ "description": "PHP Markdown",
+ "homepage": "https://michelf.ca/projects/php-markdown/",
+ "keywords": [
+ "markdown"
+ ],
+ "time": "2015-12-24 01:37:31"
+ },
+ {
+ "name": "zendframework/zend-config",
+ "version": "2.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-config.git",
+ "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-config/zipball/2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
+ "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0",
+ "zendframework/zend-filter": "^2.6",
+ "zendframework/zend-i18n": "^2.5",
+ "zendframework/zend-json": "^2.6.1",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+ },
+ "suggest": {
+ "zendframework/zend-filter": "Zend\\Filter component",
+ "zendframework/zend-i18n": "Zend\\I18n component",
+ "zendframework/zend-json": "Zend\\Json to use the Json reader or writer classes",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager for use with the Config Factory to retrieve reader and writer instances"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev",
+ "dev-develop": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Config\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "provides a nested object property based user interface for accessing this configuration data within application code",
+ "homepage": "https://github.com/zendframework/zend-config",
+ "keywords": [
+ "config",
+ "zf2"
+ ],
+ "time": "2016-02-04 23:01:10"
+ },
+ {
+ "name": "zendframework/zend-escaper",
+ "version": "2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-escaper.git",
+ "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/2dcd14b61a72d8b8e27d579c6344e12c26141d4e",
+ "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5-dev",
+ "dev-develop": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Escaper\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-escaper",
+ "keywords": [
+ "escaper",
+ "zf2"
+ ],
+ "time": "2016-06-30 19:48:38"
+ },
+ {
+ "name": "zendframework/zend-eventmanager",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-eventmanager.git",
+ "reference": "5c80bdee0e952be112dcec0968bad770082c3a6e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/5c80bdee0e952be112dcec0968bad770082c3a6e",
+ "reference": "5c80bdee0e952be112dcec0968bad770082c3a6e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0"
+ },
+ "require-dev": {
+ "athletic/athletic": "^0.1",
+ "container-interop/container-interop": "^1.1.0",
+ "phpunit/phpunit": "~4.0",
+ "squizlabs/php_codesniffer": "^2.0",
+ "zendframework/zend-stdlib": "^2.7.3 || ^3.0"
+ },
+ "suggest": {
+ "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
+ "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev",
+ "dev-develop": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\EventManager\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Trigger and listen to events within a PHP application",
+ "homepage": "https://github.com/zendframework/zend-eventmanager",
+ "keywords": [
+ "event",
+ "eventmanager",
+ "events",
+ "zf2"
+ ],
+ "time": "2016-02-18 20:53:00"
+ },
+ {
+ "name": "zendframework/zend-filter",
+ "version": "2.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-filter.git",
+ "reference": "84c50246428efb0a1e52868e162dab3e149d5b80"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/84c50246428efb0a1e52868e162dab3e149d5b80",
+ "reference": "84c50246428efb0a1e52868e162dab3e149d5b80",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "pear/archive_tar": "^1.4",
+ "phpunit/phpunit": "~4.0",
+ "zendframework/zend-crypt": "^2.6",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+ "zendframework/zend-uri": "^2.5"
+ },
+ "suggest": {
+ "zendframework/zend-crypt": "Zend\\Crypt component, for encryption filters",
+ "zendframework/zend-i18n": "Zend\\I18n component for filters depending on i18n functionality",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for using the filter chain functionality",
+ "zendframework/zend-uri": "Zend\\Uri component, for the UriNormalize filter"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev",
+ "dev-develop": "2.8-dev"
+ },
+ "zf": {
+ "component": "Zend\\Filter",
+ "config-provider": "Zend\\Filter\\ConfigProvider"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Filter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "provides a set of commonly needed data filters",
+ "homepage": "https://github.com/zendframework/zend-filter",
+ "keywords": [
+ "filter",
+ "zf2"
+ ],
+ "time": "2016-04-18 18:32:43"
+ },
+ {
+ "name": "zendframework/zend-http",
+ "version": "2.5.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-http.git",
+ "reference": "7b920b4ec34b5ee58f76eb4e8c408b083121953c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-http/zipball/7b920b4ec34b5ee58f76eb4e8c408b083121953c",
+ "reference": "7b920b4ec34b5ee58f76eb4e8c408b083121953c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-loader": "^2.5",
+ "zendframework/zend-stdlib": "^2.5 || ^3.0",
+ "zendframework/zend-uri": "^2.5",
+ "zendframework/zend-validator": "^2.5"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "^4.0",
+ "zendframework/zend-config": "^2.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5-dev",
+ "dev-develop": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Http\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests",
+ "homepage": "https://github.com/zendframework/zend-http",
+ "keywords": [
+ "http",
+ "zf2"
+ ],
+ "time": "2016-02-04 20:36:48"
+ },
+ {
+ "name": "zendframework/zend-inputfilter",
+ "version": "2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-inputfilter.git",
+ "reference": "5630ef49e8c16a6fe0c2bd0d2a519869b14d5b12"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-inputfilter/zipball/5630ef49e8c16a6fe0c2bd0d2a519869b14d5b12",
+ "reference": "5630ef49e8c16a6fe0c2bd0d2a519869b14d5b12",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-filter": "^2.6",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0",
+ "zendframework/zend-validator": "^2.6"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "^4.5",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+ },
+ "suggest": {
+ "zendframework/zend-servicemanager": "To support plugin manager support"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev",
+ "dev-develop": "2.8-dev"
+ },
+ "zf": {
+ "component": "Zend\\InputFilter",
+ "config-provider": "Zend\\InputFilter\\ConfigProvider"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\InputFilter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-inputfilter",
+ "keywords": [
+ "inputfilter",
+ "zf2"
+ ],
+ "time": "2016-06-11 19:35:33"
+ },
+ {
+ "name": "zendframework/zend-json",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-json.git",
+ "reference": "f42a1588e75c2a3e338cd94c37906231e616daab"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-json/zipball/f42a1588e75c2a3e338cd94c37906231e616daab",
+ "reference": "f42a1588e75c2a3e338cd94c37906231e616daab",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0",
+ "squizlabs/php_codesniffer": "^2.3",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "suggest": {
+ "zendframework/zend-json-server": "For implementing JSON-RPC servers",
+ "zendframework/zend-xml2json": "For converting XML documents to JSON"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev",
+ "dev-develop": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Json\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP",
+ "homepage": "https://github.com/zendframework/zend-json",
+ "keywords": [
+ "json",
+ "zf2"
+ ],
+ "time": "2016-04-01 02:34:00"
+ },
+ {
+ "name": "zendframework/zend-loader",
+ "version": "2.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-loader.git",
+ "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/c5fd2f071bde071f4363def7dea8dec7393e135c",
+ "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.23"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5-dev",
+ "dev-develop": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Loader\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-loader",
+ "keywords": [
+ "loader",
+ "zf2"
+ ],
+ "time": "2015-06-03 14:05:47"
+ },
+ {
+ "name": "zendframework/zend-modulemanager",
+ "version": "2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-modulemanager.git",
+ "reference": "2a59ab9a0dd7699a55050dff659ab0f28272b46e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-modulemanager/zipball/2a59ab9a0dd7699a55050dff659ab0f28272b46e",
+ "reference": "2a59ab9a0dd7699a55050dff659ab0f28272b46e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-config": "^2.6",
+ "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0",
+ "zendframework/zend-console": "^2.6",
+ "zendframework/zend-di": "^2.6",
+ "zendframework/zend-loader": "^2.5",
+ "zendframework/zend-mvc": "^2.7",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+ },
+ "suggest": {
+ "zendframework/zend-config": "Zend\\Config component",
+ "zendframework/zend-console": "Zend\\Console component",
+ "zendframework/zend-loader": "Zend\\Loader component",
+ "zendframework/zend-mvc": "Zend\\Mvc component",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager component"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev",
+ "dev-develop": "2.8-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\ModuleManager\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-modulemanager",
+ "keywords": [
+ "modulemanager",
+ "zf2"
+ ],
+ "time": "2016-05-16 21:21:11"
+ },
+ {
+ "name": "zendframework/zend-mvc",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-mvc.git",
+ "reference": "3c6c9e570e01a8b8fcb0605d2f8eb25812c0c273"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-mvc/zipball/3c6c9e570e01a8b8fcb0605d2f8eb25812c0c273",
+ "reference": "3c6c9e570e01a8b8fcb0605d2f8eb25812c0c273",
+ "shasum": ""
+ },
+ "require": {
+ "container-interop/container-interop": "^1.1",
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-eventmanager": "^3.0",
+ "zendframework/zend-http": "^2.5.4",
+ "zendframework/zend-modulemanager": "^2.7.1",
+ "zendframework/zend-router": "^3.0.1",
+ "zendframework/zend-servicemanager": "^3.0.3",
+ "zendframework/zend-stdlib": "^3.0",
+ "zendframework/zend-view": "^2.6.7"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "^4.5",
+ "zendframework/zend-json": "^2.6.1 || ^3.0",
+ "zendframework/zend-psr7bridge": "^0.2"
+ },
+ "suggest": {
+ "zendframework/zend-json": "(^2.6.1 || ^3.0) To auto-deserialize JSON body content in AbstractRestfulController extensions, when json_decode is unavailable",
+ "zendframework/zend-mvc-console": "zend-mvc-console provides the ability to expose zend-mvc as a console application",
+ "zendframework/zend-mvc-i18n": "zend-mvc-i18n provides integration with zend-i18n, including a translation bridge and translatable route segments",
+ "zendframework/zend-mvc-plugin-fileprg": "To provide Post/Redirect/Get functionality around forms that container file uploads",
+ "zendframework/zend-mvc-plugin-flashmessenger": "To provide flash messaging capabilities between requests",
+ "zendframework/zend-mvc-plugin-identity": "To access the authenticated identity (per zend-authentication) in controllers",
+ "zendframework/zend-mvc-plugin-prg": "To provide Post/Redirect/Get functionality within controllers",
+ "zendframework/zend-psr7bridge": "(^0.2) To consume PSR-7 middleware within the MVC workflow",
+ "zendframework/zend-servicemanager-di": "zend-servicemanager-di provides utilities for integrating zend-di and zend-servicemanager in your zend-mvc application"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev",
+ "dev-develop": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Mvc\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-mvc",
+ "keywords": [
+ "mvc",
+ "zf2"
+ ],
+ "time": "2016-06-30 20:30:28"
+ },
+ {
+ "name": "zendframework/zend-router",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-router.git",
+ "reference": "03763610632a9022aff22a0e8f340852e68392a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-router/zipball/03763610632a9022aff22a0e8f340852e68392a1",
+ "reference": "03763610632a9022aff22a0e8f340852e68392a1",
+ "shasum": ""
+ },
+ "require": {
+ "container-interop/container-interop": "^1.1",
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-http": "^2.5",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+ "zendframework/zend-stdlib": "^2.7.5 || ^3.0"
+ },
+ "conflict": {
+ "zendframework/zend-mvc": "<3.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.5",
+ "sebastian/version": "^1.0.4",
+ "squizlabs/php_codesniffer": "^2.3",
+ "zendframework/zend-i18n": "^2.6"
+ },
+ "suggest": {
+ "zendframework/zend-i18n": "^2.6, if defining translatable HTTP path segments"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev",
+ "dev-develop": "3.1-dev"
+ },
+ "zf": {
+ "component": "Zend\\Router",
+ "config-provider": "Zend\\Router\\ConfigProvider"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Router\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-router",
+ "keywords": [
+ "mvc",
+ "routing",
+ "zf2"
+ ],
+ "time": "2016-05-31 20:47:48"
+ },
+ {
+ "name": "zendframework/zend-servicemanager",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-servicemanager.git",
+ "reference": "90b88339a4b937c6bb0055ee04b2567e7e628f25"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/90b88339a4b937c6bb0055ee04b2567e7e628f25",
+ "reference": "90b88339a4b937c6bb0055ee04b2567e7e628f25",
+ "shasum": ""
+ },
+ "require": {
+ "container-interop/container-interop": "~1.0",
+ "php": "^5.5 || ^7.0"
+ },
+ "provide": {
+ "container-interop/container-interop-implementation": "^1.1"
+ },
+ "require-dev": {
+ "ocramius/proxy-manager": "^1.0 || ^2.0",
+ "phpbench/phpbench": "^0.10.0",
+ "phpunit/phpunit": "^4.6 || ^5.2.10",
+ "squizlabs/php_codesniffer": "^2.5.1"
+ },
+ "suggest": {
+ "ocramius/proxy-manager": "ProxyManager 1.* to handle lazy initialization of services",
+ "zendframework/zend-stdlib": "zend-stdlib ^2.5 if you wish to use the MergeReplaceKey or MergeRemoveKey features in Config instances"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev",
+ "dev-develop": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\ServiceManager\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-servicemanager",
+ "keywords": [
+ "service-manager",
+ "servicemanager",
+ "zf"
+ ],
+ "time": "2016-06-01 16:50:58"
+ },
+ {
+ "name": "zendframework/zend-stdlib",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-stdlib.git",
+ "reference": "8bafa58574204bdff03c275d1d618aaa601588ae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/8bafa58574204bdff03c275d1d618aaa601588ae",
+ "reference": "8bafa58574204bdff03c275d1d618aaa601588ae",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0"
+ },
+ "require-dev": {
+ "athletic/athletic": "~0.1",
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev",
+ "dev-develop": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Stdlib\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-stdlib",
+ "keywords": [
+ "stdlib",
+ "zf2"
+ ],
+ "time": "2016-04-12 21:19:36"
+ },
+ {
+ "name": "zendframework/zend-uri",
+ "version": "2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-uri.git",
+ "reference": "0bf717a239432b1a1675ae314f7c4acd742749ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/0bf717a239432b1a1675ae314f7c4acd742749ed",
+ "reference": "0bf717a239432b1a1675ae314f7c4acd742749ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-escaper": "^2.5",
+ "zendframework/zend-validator": "^2.5"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5-dev",
+ "dev-develop": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Uri\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "a component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)",
+ "homepage": "https://github.com/zendframework/zend-uri",
+ "keywords": [
+ "uri",
+ "zf2"
+ ],
+ "time": "2016-02-17 22:38:51"
+ },
+ {
+ "name": "zendframework/zend-validator",
+ "version": "2.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-validator.git",
+ "reference": "8ec9f57a717dd37340308aa632f148a2c2be1cfc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/8ec9f57a717dd37340308aa632f148a2c2be1cfc",
+ "reference": "8ec9f57a717dd37340308aa632f148a2c2be1cfc",
+ "shasum": ""
+ },
+ "require": {
+ "container-interop/container-interop": "^1.1",
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "^4.0",
+ "zendframework/zend-cache": "^2.6.1",
+ "zendframework/zend-config": "^2.6",
+ "zendframework/zend-db": "^2.7",
+ "zendframework/zend-filter": "^2.6",
+ "zendframework/zend-http": "^2.5.4",
+ "zendframework/zend-i18n": "^2.6",
+ "zendframework/zend-math": "^2.6",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+ "zendframework/zend-session": "^2.6.2",
+ "zendframework/zend-uri": "^2.5"
+ },
+ "suggest": {
+ "zendframework/zend-db": "Zend\\Db component",
+ "zendframework/zend-filter": "Zend\\Filter component, required by the Digits validator",
+ "zendframework/zend-i18n": "Zend\\I18n component to allow translation of validation error messages as well as to use the various Date validators",
+ "zendframework/zend-i18n-resources": "Translations of validator messages",
+ "zendframework/zend-math": "Zend\\Math component",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains",
+ "zendframework/zend-session": "Zend\\Session component",
+ "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.8-dev",
+ "dev-develop": "2.9-dev"
+ },
+ "zf": {
+ "component": "Zend\\Validator",
+ "config-provider": "Zend\\Validator\\ConfigProvider"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Validator\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "provides a set of commonly needed validators",
+ "homepage": "https://github.com/zendframework/zend-validator",
+ "keywords": [
+ "validator",
+ "zf2"
+ ],
+ "time": "2016-06-23 13:44:31"
+ },
+ {
+ "name": "zendframework/zend-view",
+ "version": "2.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-view.git",
+ "reference": "71b4ebd0c4c9a2d0e0438f9d3a435e08dd769ff8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-view/zipball/71b4ebd0c4c9a2d0e0438f9d3a435e08dd769ff8",
+ "reference": "71b4ebd0c4c9a2d0e0438f9d3a435e08dd769ff8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
+ "zendframework/zend-loader": "^2.5",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "^4.5",
+ "zendframework/zend-authentication": "^2.5",
+ "zendframework/zend-cache": "^2.6.1",
+ "zendframework/zend-config": "^2.6",
+ "zendframework/zend-console": "^2.6",
+ "zendframework/zend-escaper": "^2.5",
+ "zendframework/zend-feed": "^2.7",
+ "zendframework/zend-filter": "^2.6.1",
+ "zendframework/zend-http": "^2.5.4",
+ "zendframework/zend-i18n": "^2.6",
+ "zendframework/zend-json": "^2.6.1",
+ "zendframework/zend-log": "^2.7",
+ "zendframework/zend-modulemanager": "^2.7.1",
+ "zendframework/zend-mvc": "^2.7 || ^3.0",
+ "zendframework/zend-navigation": "^2.5",
+ "zendframework/zend-paginator": "^2.5",
+ "zendframework/zend-permissions-acl": "^2.6",
+ "zendframework/zend-router": "^3.0.1",
+ "zendframework/zend-serializer": "^2.6.1",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+ "zendframework/zend-session": "^2.6.2",
+ "zendframework/zend-uri": "^2.5"
+ },
+ "suggest": {
+ "zendframework/zend-authentication": "Zend\\Authentication component",
+ "zendframework/zend-escaper": "Zend\\Escaper component",
+ "zendframework/zend-feed": "Zend\\Feed component",
+ "zendframework/zend-filter": "Zend\\Filter component",
+ "zendframework/zend-http": "Zend\\Http component",
+ "zendframework/zend-i18n": "Zend\\I18n component",
+ "zendframework/zend-json": "Zend\\Json component",
+ "zendframework/zend-mvc": "Zend\\Mvc component",
+ "zendframework/zend-navigation": "Zend\\Navigation component",
+ "zendframework/zend-paginator": "Zend\\Paginator component",
+ "zendframework/zend-permissions-acl": "Zend\\Permissions\\Acl component",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager component",
+ "zendframework/zend-uri": "Zend\\Uri component"
+ },
+ "bin": [
+ "bin/templatemap_generator.php"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.8-dev",
+ "dev-develop": "2.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\View\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "provides a system of helpers, output filters, and variable escaping",
+ "homepage": "https://github.com/zendframework/zend-view",
+ "keywords": [
+ "view",
+ "zf2"
+ ],
+ "time": "2016-06-30 22:28:07"
+ },
+ {
+ "name": "zfcampus/zf-api-problem",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zfcampus/zf-api-problem.git",
+ "reference": "3d2cb9f91aace74d4ca00d865d1ed95b593c6187"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zfcampus/zf-api-problem/zipball/3d2cb9f91aace74d4ca00d865d1ed95b593c6187",
+ "reference": "3d2cb9f91aace74d4ca00d865d1ed95b593c6187",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-eventmanager": "^2.6.3 || ^3.0.1",
+ "zendframework/zend-http": "^2.5.4",
+ "zendframework/zend-json": "^2.6.1 || ^3.0",
+ "zendframework/zend-mvc": "^2.7.9 || ^3.0.2",
+ "zendframework/zend-view": "^2.8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8",
+ "squizlabs/php_codesniffer": "^2.3.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev",
+ "dev-develop": "1.3-dev"
+ },
+ "zf": {
+ "module": "ZF\\ApiProblem"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ZF\\ApiProblem\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "ZF2 Module providing API-Problem assets and rendering",
+ "homepage": "http://apigility.org/",
+ "keywords": [
+ "api-problem",
+ "module",
+ "rest",
+ "zend",
+ "zf2"
+ ],
+ "time": "2016-07-07 13:52:00"
+ },
+ {
+ "name": "zfcampus/zf-apigility-documentation",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zfcampus/zf-apigility-documentation.git",
+ "reference": "fd5ed08a77355ff7b44e8788568709e3eab0099c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zfcampus/zf-apigility-documentation/zipball/fd5ed08a77355ff7b44e8788568709e3eab0099c",
+ "reference": "fd5ed08a77355ff7b44e8788568709e3eab0099c",
+ "shasum": ""
+ },
+ "require": {
+ "michelf/php-markdown": "^1.5",
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-inputfilter": "^2.7.2",
+ "zendframework/zend-modulemanager": "^2.7.2",
+ "zendframework/zend-mvc": "^2.7.9 || ^3.0.2",
+ "zendframework/zend-servicemanager": "^2.7.6 || ^3.1",
+ "zendframework/zend-view": "^2.8.1",
+ "zfcampus/zf-apigility-provider": "^1.2",
+ "zfcampus/zf-configuration": "^1.2",
+ "zfcampus/zf-content-negotiation": "^1.2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8 || ^5.0",
+ "squizlabs/php_codesniffer": "^2.3.1",
+ "zendframework/zend-stdlib": "^2.7.7 || ^3.0.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev",
+ "dev-develop": "1.3-dev"
+ },
+ "zf": {
+ "module": "ZF\\Apigility\\Documentation"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ZF\\Apigility\\Documentation\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Apigility API documentation module",
+ "homepage": "http://apigility.org/",
+ "keywords": [
+ "apigiltiy",
+ "documentation",
+ "module",
+ "zend",
+ "zf2"
+ ],
+ "time": "2016-07-14 15:34:14"
+ },
+ {
+ "name": "zfcampus/zf-apigility-provider",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zfcampus/zf-apigility-provider.git",
+ "reference": "cb138d5f0a08fabac74b1f1410561464a890357f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zfcampus/zf-apigility-provider/zipball/cb138d5f0a08fabac74b1f1410561464a890357f",
+ "reference": "cb138d5f0a08fabac74b1f1410561464a890357f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0"
+ },
+ "require-dev": {
+ "squizlabs/php_codesniffer": "^2.3.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev",
+ "dev-develop": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ZF\\Apigility\\Provider\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Apigility interfaces",
+ "homepage": "http://apigility.org/",
+ "keywords": [
+ "api",
+ "apigility",
+ "framework",
+ "zf2"
+ ],
+ "time": "2016-07-13 18:03:54"
+ },
+ {
+ "name": "zfcampus/zf-configuration",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zfcampus/zf-configuration.git",
+ "reference": "9bea29e0ac86d7fa7e0cbee13fc75965b0c5aee7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zfcampus/zf-configuration/zipball/9bea29e0ac86d7fa7e0cbee13fc75965b0c5aee7",
+ "reference": "9bea29e0ac86d7fa7e0cbee13fc75965b0c5aee7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-config": "^2.6",
+ "zendframework/zend-modulemanager": "^2.7.1",
+ "zendframework/zend-stdlib": "^2.7.7 || ^3.0.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8 || ^5.0",
+ "squizlabs/php_codesniffer": "^2.3.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev",
+ "dev-develop": "1.3-dev"
+ },
+ "zf": {
+ "module": "ZF\\Configuration"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ZF\\Configuration\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Zend Framework module providing a REST resource for manipulating configuration",
+ "homepage": "http://apigility.org/",
+ "keywords": [
+ "config",
+ "module",
+ "rest",
+ "zend",
+ "zf2"
+ ],
+ "time": "2016-07-13 20:58:45"
+ },
+ {
+ "name": "zfcampus/zf-content-negotiation",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zfcampus/zf-content-negotiation.git",
+ "reference": "2f7c52af7ef7517509eb7fe9404a54bdc9944829"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zfcampus/zf-content-negotiation/zipball/2f7c52af7ef7517509eb7fe9404a54bdc9944829",
+ "reference": "2f7c52af7ef7517509eb7fe9404a54bdc9944829",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-eventmanager": "^2.6.3 || ^3.0.1",
+ "zendframework/zend-filter": "^2.7.1",
+ "zendframework/zend-http": "^2.5.4",
+ "zendframework/zend-json": "^2.6.1 || ^3.0",
+ "zendframework/zend-mvc": "^2.7.9 || ^3.0.2",
+ "zendframework/zend-servicemanager": "^2.7.6 || ^3.1",
+ "zendframework/zend-stdlib": "^2.7.7 || ^3.0.1",
+ "zendframework/zend-validator": "^2.8.1",
+ "zendframework/zend-view": "^2.8.1",
+ "zfcampus/zf-api-problem": "^1.2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8",
+ "squizlabs/php_codesniffer": "^2.3.1",
+ "zfcampus/zf-hal": "^1.4"
+ },
+ "suggest": {
+ "zendframework/zend-console": "^2.3, if you intend to use the RequestFactory"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev",
+ "dev-develop": "1.3-dev"
+ },
+ "zf": {
+ "module": "ZF\\ContentNegotiation"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ZF\\ContentNegotiation\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "ZF2 Module providing content-negotiation features",
+ "homepage": "http://apigility.org/",
+ "keywords": [
+ "content-negotiation",
+ "module",
+ "zend",
+ "zf2"
+ ],
+ "time": "2016-07-07 21:13:40"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3,<8.0-DEV"
+ },
+ "require-dev": {
+ "athletic/athletic": "~0.1.8",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpunit/phpunit": "~4.0",
+ "squizlabs/php_codesniffer": "~2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.com/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://github.com/doctrine/instantiator",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "time": "2015-06-14 21:17:01"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
+ "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": "2015-12-27 11:43:31"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "9270140b940ff02e58ec577c237274e92cd40cdd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9270140b940ff02e58ec577c237274e92cd40cdd",
+ "reference": "9270140b940ff02e58ec577c237274e92cd40cdd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5",
+ "phpdocumentor/reflection-common": "^1.0@dev",
+ "phpdocumentor/type-resolver": "^0.2.0",
+ "webmozart/assert": "^1.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9.4",
+ "phpunit/phpunit": "^4.4"
+ },
+ "type": "library",
+ "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": "2016-06-10 09:48:41"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443",
+ "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5",
+ "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": "1.0.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"
+ }
+ ],
+ "time": "2016-06-10 07:14:17"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "v1.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "58a8137754bc24b25740d4281399a4a3596058e0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0",
+ "reference": "58a8137754bc24b25740d4281399a4a3596058e0",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": "^5.3|^7.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
+ "sebastian/comparator": "^1.1",
+ "sebastian/recursion-context": "^1.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Prophecy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "time": "2016-06-07 08:13:47"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "2.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
+ "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"
+ },
+ "require-dev": {
+ "ext-xdebug": ">=2.1.4",
+ "phpunit/phpunit": "~4"
+ },
+ "suggest": {
+ "ext-dom": "*",
+ "ext-xdebug": ">=2.2.1",
+ "ext-xmlwriter": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "time": "2015-10-06 15:47:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "time": "2015-06-21 13:08:43"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "time": "2015-06-21 13:50:34"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4|~5"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "time": "2016-05-12 18:03:57"
+ },
+ {
+ "name": "phpunit/php-token-stream",
+ "version": "1.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Wrapper around PHP's tokenizer extension.",
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "keywords": [
+ "tokenizer"
+ ],
+ "time": "2015-09-15 10:49:45"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "4.8.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fc1d8cd5b5de11625979125c5639347896ac2c74",
+ "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-spl": "*",
+ "php": ">=5.3.3",
+ "phpspec/prophecy": "^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.3",
+ "sebastian/exporter": "~1.2",
+ "sebastian/global-state": "~1.0",
+ "sebastian/version": "~1.0",
+ "symfony/yaml": "~2.1|~3.0"
+ },
+ "suggest": {
+ "phpunit/php-invoker": "~1.1"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.8.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "time": "2016-05-17 03:09:28"
+ },
+ {
+ "name": "phpunit/phpunit-mock-objects",
+ "version": "2.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
+ "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": ">=5.3.3",
+ "phpunit/php-text-template": "~1.2",
+ "sebastian/exporter": "~1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "suggest": {
+ "ext-soap": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Mock Object library for PHPUnit",
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+ "keywords": [
+ "mock",
+ "xunit"
+ ],
+ "time": "2015-10-02 06:51:40"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "sebastian/diff": "~1.2",
+ "sebastian/exporter": "~1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "time": "2015-07-26 15:48:44"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff"
+ ],
+ "time": "2015-12-08 07:14:41"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "1.3.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716",
+ "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.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 functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "time": "2016-05-17 03:18:57"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "1.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "sebastian/recursion-context": "~1.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "time": "2016-06-17 09:04:28"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.2"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "time": "2015-10-12 03:26:01"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "913401df809e99e4f47b27cdd781f4a258d58791"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
+ "reference": "913401df809e99e4f47b27cdd781f4a258d58791",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "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": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "time": "2015-11-11 19:50:13"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "1.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+ "shasum": ""
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "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"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "2.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
+ "reference": "4edb770cb853def6e60c93abb088ad5ac2010c83"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/4edb770cb853def6e60c93abb088ad5ac2010c83",
+ "reference": "4edb770cb853def6e60c93abb088ad5ac2010c83",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": ">=5.1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "bin": [
+ "scripts/phpcs",
+ "scripts/phpcbf"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "CodeSniffer.php",
+ "CodeSniffer/CLI.php",
+ "CodeSniffer/Exception.php",
+ "CodeSniffer/File.php",
+ "CodeSniffer/Fixer.php",
+ "CodeSniffer/Report.php",
+ "CodeSniffer/Reporting.php",
+ "CodeSniffer/Sniff.php",
+ "CodeSniffer/Tokens.php",
+ "CodeSniffer/Reports/",
+ "CodeSniffer/Tokenizers/",
+ "CodeSniffer/DocGenerators/",
+ "CodeSniffer/Standards/AbstractPatternSniff.php",
+ "CodeSniffer/Standards/AbstractScopeSniff.php",
+ "CodeSniffer/Standards/AbstractVariableSniff.php",
+ "CodeSniffer/Standards/IncorrectPatternException.php",
+ "CodeSniffer/Standards/Generic/Sniffs/",
+ "CodeSniffer/Standards/MySource/Sniffs/",
+ "CodeSniffer/Standards/PEAR/Sniffs/",
+ "CodeSniffer/Standards/PSR1/Sniffs/",
+ "CodeSniffer/Standards/PSR2/Sniffs/",
+ "CodeSniffer/Standards/Squiz/Sniffs/",
+ "CodeSniffer/Standards/Zend/Sniffs/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Greg Sherwood",
+ "role": "lead"
+ }
+ ],
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "homepage": "http://www.squizlabs.com/php-codesniffer",
+ "keywords": [
+ "phpcs",
+ "standards"
+ ],
+ "time": "2016-07-13 23:29:13"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v3.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "2884c26ce4c1d61aebf423a8b912950fe7c764de"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/2884c26ce4c1d61aebf423a8b912950fe7c764de",
+ "reference": "2884c26ce4c1d61aebf423a8b912950fe7c764de",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Yaml Component",
+ "homepage": "https://symfony.com",
+ "time": "2016-06-29 05:41:56"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/assert.git",
+ "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde",
+ "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "time": "2015-08-24 13:29:44"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^5.6 || ^7.0"
+ },
+ "platform-dev": []
+}
diff --git a/config/module.config.php b/config/module.config.php
index 7ee91fb..1261d25 100644
--- a/config/module.config.php
+++ b/config/module.config.php
@@ -4,77 +4,79 @@
* @copyright Copyright (c) 2014 Zend Technologies USA Inc. (http://www.zend.com)
*/
-return array(
- 'router' => array(
- 'routes' => array(
- 'zf-apigility' => array(
- 'child_routes' => array(
- 'swagger' => array(
- 'type' => 'Zend\Mvc\Router\Http\Segment',
- 'options' => array(
+namespace ZF\Apigility\Documentation\Swagger;
+
+return [
+ 'router' => [
+ 'routes' => [
+ 'zf-apigility' => [
+ 'child_routes' => [
+ 'swagger' => [
+ 'type' => 'segment',
+ 'options' => [
'route' => '/swagger',
- 'defaults' => array(
- 'controller' => 'ZF\Apigility\Documentation\Swagger\SwaggerUi',
+ 'defaults' => [
+ 'controller' => SwaggerUi::class,
'action' => 'list',
- ),
- ),
+ ],
+ ],
'may_terminate' => true,
- 'child_routes' => array(
- 'api' => array(
- 'type' => 'Segment',
- 'options' => array(
+ 'child_routes' => [
+ 'api' => [
+ 'type' => 'segment',
+ 'options' => [
'route' => '/:api',
- 'defaults' => array(
+ 'defaults' => [
'action' => 'show',
- ),
- ),
+ ],
+ ],
'may_terminate' => true,
- ),
- ),
- ),
- ),
- ),
- ),
- ),
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
- 'service_manager' => array(
- 'factories' => array(
- 'ZF\Apigility\Documentation\Swagger\SwaggerViewStrategy' => 'ZF\Apigility\Documentation\Swagger\SwaggerViewStrategyFactory',
- ),
- ),
+ 'service_manager' => [
+ 'factories' => [
+ SwaggerViewStrategy::class => SwaggerViewStrategyFactory::class,
+ ],
+ ],
- 'controllers' => array(
- 'factories' => array(
- 'ZF\Apigility\Documentation\Swagger\SwaggerUi' => 'ZF\Apigility\Documentation\Swagger\SwaggerUiControllerFactory',
- ),
- ),
+ 'controllers' => [
+ 'factories' => [
+ SwaggerUi::class => SwaggerUiControllerFactory::class,
+ ],
+ ],
- 'view_manager' => array(
- 'template_path_stack' => array(
+ 'view_manager' => [
+ 'template_path_stack' => [
'zf-apigility-documentation-swagger' => __DIR__ . '/../view',
- ),
- ),
+ ],
+ ],
- 'asset_manager' => array(
- 'resolver_configs' => array(
- 'paths' => array(
+ 'asset_manager' => [
+ 'resolver_configs' => [
+ 'paths' => [
__DIR__ . '/../asset',
- ),
- ),
- ),
+ ],
+ ],
+ ],
- 'zf-content-negotiation' => array(
- 'accept_whitelist' => array(
- 'ZF\Apigility\Documentation\Controller' => array(
+ 'zf-content-negotiation' => [
+ 'accept_whitelist' => [
+ 'ZF\Apigility\Documentation\Controller' => [
0 => 'application/vnd.swagger+json',
- ),
- ),
- 'selectors' => array(
- 'Documentation' => array(
- 'ZF\Apigility\Documentation\Swagger\ViewModel' => array(
+ ],
+ ],
+ 'selectors' => [
+ 'Documentation' => [
+ ViewModel::class => [
'application/vnd.swagger+json',
- ),
- )
- )
- ),
-);
+ ],
+ ],
+ ],
+ ],
+];
diff --git a/phpcs.xml b/phpcs.xml
index e994eae..1737a9d 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -16,6 +16,7 @@
+ config
src
test
diff --git a/phpunit.xml b/phpunit.xml.dist
similarity index 100%
rename from phpunit.xml
rename to phpunit.xml.dist
diff --git a/src/Api.php b/src/Api.php
index 6dd7d4d..a992d1a 100644
--- a/src/Api.php
+++ b/src/Api.php
@@ -33,7 +33,7 @@ public function toArray()
$services[] = [
'description' => ($description = $service->getDescription())
? $description
- : 'Operations for ' . $service->getName(),
+ : '',
'path' => '/' . $service->getName()
];
}
diff --git a/src/Module.php b/src/Module.php
new file mode 100644
index 0000000..a327568
--- /dev/null
+++ b/src/Module.php
@@ -0,0 +1,59 @@
+getApplication();
+ $events = $app->getEventManager();
+ $events->attach('render', [$this, 'onRender'], 100);
+ }
+
+ /**
+ * Listen to render event.
+ *
+ * Attaches the SwaggerViewStrategy to the view event manager instance if
+ * a Swagger view model is detected.
+ *
+ * @param \Zend\Mvc\MvcEvent $e
+ * @return void
+ */
+ public function onRender($e)
+ {
+ $model = $e->getResult();
+ if (! $model instanceof ViewModel) {
+ return;
+ }
+
+ $app = $e->getApplication();
+ $services = $app->getServiceManager();
+ $view = $services->get('View');
+ $events = $view->getEventManager();
+ $services->get(SwaggerViewStrategy::class)->attach($events);
+ }
+}
diff --git a/src/Service.php b/src/Service.php
index 59a5399..533f296 100644
--- a/src/Service.php
+++ b/src/Service.php
@@ -1,7 +1,7 @@
'path',
- 'name' => $paramSegmentName,
+ 'paramType' => 'path',
+ 'name' => $paramSegmentName,
'description' => 'URL parameter ' . $paramSegmentName,
- 'dataType' => 'string',
- 'required' => false,
- 'minimum' => 0,
- 'maximum' => 1
+ 'dataType' => 'string',
+ 'required' => false,
+ 'minimum' => 0,
+ 'maximum' => 1
];
}
$postPatchPutBodyParameter = [
- 'name' => 'body',
+ 'name' => 'body',
'paramType' => 'body',
- 'required' => true,
- 'type' => $service->getName()
+ 'required' => true,
+ 'type' => $service->getName()
];
$operationGroups = [];
// if there is a routeIdentifierName, this is REST service, need to enumerate
if ($service->routeIdentifierName) {
- $entityOperations = [];
+ $entityOperations = [];
$collectionOperations = [];
// find all COLLECTION operations
foreach ($service->operations as $collectionOperation) {
- $method = $collectionOperation->getHttpMethod();
+ $method = $collectionOperation->getHttpMethod();
// collection parameters
$collectionParameters = $templateParameters;
@@ -125,8 +125,8 @@ public function toArray()
// find all other operations
$operations = [];
foreach ($service->operations as $operation) {
- $method = $operation->getHttpMethod();
- $parameters = array_values($templateParameters);
+ $method = $operation->getHttpMethod();
+ $parameters = array_values($templateParameters);
if (in_array($method, ['POST', 'PUT', 'PATCH'])) {
$parameters[] = $postPatchPutBodyParameter;
@@ -157,7 +157,8 @@ public function toArray()
$requiredProperties = $properties = [];
foreach ($fields as $field) {
$properties[$field->getName()] = [
- 'type' => method_exists($field, 'getType') ? $field->getType() : 'string',
+ 'type' => method_exists($field, 'getFieldType') ? $field->getFieldType() : 'string',
+ 'dataType' => method_exists($field, 'getFieldType') ? $field->getFieldType() : 'string',
'description' => $field->getDescription()
];
if ($field->isRequired()) {
diff --git a/src/SwaggerUiControllerFactory.php b/src/SwaggerUiControllerFactory.php
index 6357eaf..441e3aa 100644
--- a/src/SwaggerUiControllerFactory.php
+++ b/src/SwaggerUiControllerFactory.php
@@ -1,32 +1,53 @@
getServiceLocator();
- if (!$services->has('ZF\Apigility\Documentation\ApiFactory')) {
+ if (! $container->has(ApiFactory::class)) {
throw new ServiceNotCreatedException(sprintf(
- '%s\SwaggerUiController requires the service ZF\Apigility\Documentation\ApiFactory, '
- . 'which was not found',
- __NAMESPACE__
+ '%s requires the service %s, which was not found',
+ SwaggerUiController::class,
+ ApiFactory::class
));
}
- return new SwaggerUiController($services->get('ZF\Apigility\Documentation\ApiFactory'));
+
+ return new SwaggerUiController($services->get(ApiFactory::class));
+ }
+
+ /**
+ * Create and return a SwaggerUiController instance.
+ *
+ * Provided for backwards compatibility; proxies to __invoke().
+ *
+ * @param ServiceLocatorInterface $controllers
+ * @return SwaggerUiController
+ * @throws ServiceNotCreatedException when ApiFactory service is missing.
+ */
+ public function createService(ServiceLocatorInterface $controllers)
+ {
+ $container = $controllers->getServiceLocator() ?: $controllers;
+ return $this($container, SwaggerUiController::class);
}
}
diff --git a/src/SwaggerViewStrategy.php b/src/SwaggerViewStrategy.php
index 0f80fa4..62c3390 100644
--- a/src/SwaggerViewStrategy.php
+++ b/src/SwaggerViewStrategy.php
@@ -1,18 +1,21 @@
get('ViewJsonRenderer'));
+ return new SwaggerViewStrategy($container->get('ViewJsonRenderer'));
}
}
diff --git a/src/ViewModel.php b/src/ViewModel.php
index c74444e..070a616 100644
--- a/src/ViewModel.php
+++ b/src/ViewModel.php
@@ -1,7 +1,7 @@
variables)
+ if (! array_key_exists('type', $this->variables)
|| empty($this->variables['type'])
) {
return $this->variables;
diff --git a/test/SwaggerViewStrategyTest.php b/test/SwaggerViewStrategyTest.php
index b388557..0d89c8f 100644
--- a/test/SwaggerViewStrategyTest.php
+++ b/test/SwaggerViewStrategyTest.php
@@ -8,6 +8,7 @@
use PHPUnit_Framework_TestCase as TestCase;
use Zend\EventManager\EventManager;
+use Zend\EventManager\Test\EventListenerIntrospectionTrait;
use Zend\Http\Response as HttpResponse;
use Zend\Stdlib\Response as StdlibResponse;
use Zend\View\Renderer\JsonRenderer;
@@ -17,6 +18,8 @@
class SwaggerViewStrategyTest extends TestCase
{
+ use EventListenerIntrospectionTrait;
+
public function setUp()
{
$this->events = new EventManager();
@@ -27,17 +30,19 @@ public function setUp()
public function testStrategyAttachesToViewEventsAtPriority200()
{
- $listeners = $this->events->getListeners(ViewEvent::EVENT_RENDERER);
- $this->assertEquals(1, count($listeners));
- $listener = $listeners->top();
- $this->assertEquals([$this->strategy, 'selectRenderer'], $listener->getCallback());
- $this->assertEquals(200, $listener->getMetadatum('priority'));
+ $this->assertListenerAtPriority(
+ [$this->strategy, 'selectRenderer'],
+ 200,
+ ViewEvent::EVENT_RENDERER,
+ $this->events
+ );
- $listeners = $this->events->getListeners(ViewEvent::EVENT_RESPONSE);
- $this->assertEquals(1, count($listeners));
- $listener = $listeners->top();
- $this->assertEquals([$this->strategy, 'injectResponse'], $listener->getCallback());
- $this->assertEquals(200, $listener->getMetadatum('priority'));
+ $this->assertListenerAtPriority(
+ [$this->strategy, 'injectResponse'],
+ 200,
+ ViewEvent::EVENT_RESPONSE,
+ $this->events
+ );
}
public function testSelectRendererReturnsJsonRendererWhenSwaggerViewModelIsPresentInEvent()