├── .gitignore ├── tests ├── autoload.php └── Unit │ └── GeneratorTest.php ├── .travis.yml ├── phpcs.xml ├── resources └── config │ └── gravatar.php ├── phpunit.xml ├── src ├── Facades │ └── GravatarFacade.php ├── Providers │ └── GravatarServiceProvider.php └── Generator.php ├── composer.json ├── LICENSE ├── README.md └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | .idea 4 | 5 | composer.phar 6 | vendor/ 7 | -------------------------------------------------------------------------------- /tests/autoload.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | Configuration for MyBB Gravatar package 4 | 5 | resources 6 | src 7 | tests 8 | 9 | 10 | 11 | 12 | */resources/* 13 | 14 | 15 | -------------------------------------------------------------------------------- /resources/config/gravatar.php: -------------------------------------------------------------------------------- 1 | true, 15 | 'extension' => '.png', 16 | 'size' => 80, 17 | 'default' => 'mm', 18 | 'force_default' => false, 19 | 'rating' => 'g', 20 | ]; 21 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | ./tests/unit 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/Facades/GravatarFacade.php: -------------------------------------------------------------------------------- 1 | =7.0.0", 23 | "illuminate/support": "^5.3" 24 | }, 25 | "require-dev": { 26 | "phpunit/phpunit": "5.5.*", 27 | "squizlabs/php_codesniffer": "~2.0@dev" 28 | }, 29 | "minimum-stability": "dev", 30 | "prefer-stable": true, 31 | "config": { 32 | "vendor-dir": "vendor", 33 | "preferred-install": "dist" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright © 2015, MyBB Group 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. 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. 9 | 10 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | 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 HOLDER 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. 13 | -------------------------------------------------------------------------------- /src/Providers/GravatarServiceProvider.php: -------------------------------------------------------------------------------- 1 | publishes([$configPath => $publishPath], 'config'); 41 | } 42 | 43 | /** 44 | * Register the service provider. 45 | * 46 | * @return void 47 | */ 48 | public function register() 49 | { 50 | $this->app->singleton('gravatar', function ($app) { 51 | return new Generator(config('gravatar')); 52 | }); 53 | } 54 | 55 | /** 56 | * Get the services provided by the provider. 57 | * 58 | * @return array 59 | */ 60 | public function provides() 61 | { 62 | return ['gravatar']; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #Gravatar 2 | 3 | Easy Gravatar generation for Laravel 5.0 4 | 5 | [![Circle CI](https://circleci.com/gh/mybb/gravatar.svg?style=svg)](https://circleci.com/gh/mybb/gravatar) 6 | 7 | ##Installation 8 | 9 | Install via composer: 10 | 11 | ```json 12 | "require": { 13 | "mybb/gravatar": "~2.0.0" 14 | } 15 | ``` 16 | 17 | Register Service provider and Facade: 18 | 19 | Edit `config/app.php` 20 | 21 | ```php 22 | 'providers' => [ 23 | ... 24 | 'MyBB\Gravatar\Providers\GravatarServiceProvider', 25 | ... 26 | ], 27 | 'aliases' => [ 28 | ... 29 | 'Gravatar' => 'MyBB\Gravatar\Facades\GravatarFacade', 30 | ... 31 | ], 32 | ``` 33 | 34 | ##Configuration 35 | 36 | You may publish the config file to config/gravatar.php allowing you to set the defaults: 37 | 38 | ```bash 39 | php artisan vendor:publish --provider='MyBB\Gravatar\Providers\GravatarServiceProvider' 40 | ``` 41 | 42 | ##Usage 43 | 44 | ```php 45 | getGravatar('mail@domain.com'); 52 | 53 | // OR set some options and fetch: 54 | 55 | $generator->setSecure(false)->setExtension('jpg')->setSize(32)->setDefault('identicon')->setEmail('mail@domain.com'); 56 | $gravatarUrl = (string) $generator; 57 | 58 | // OR call using Laravel's facade 59 | 60 | $gravatarUrl = Gravatar::setSize(32)->getGravatar('mail@domain.com'); 61 | 62 | ``` 63 | 64 | ##License 65 | 66 | The MIT License (MIT) 67 | 68 | Copyright (c) 2015 MyBB Group 69 | 70 | Permission is hereby granted, free of charge, to any person obtaining a copy 71 | of this software and associated documentation files (the "Software"), to deal 72 | in the Software without restriction, including without limitation the rights 73 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 74 | copies of the Software, and to permit persons to whom the Software is 75 | furnished to do so, subject to the following conditions: 76 | 77 | The above copyright notice and this permission notice shall be included in all 78 | copies or substantial portions of the Software. 79 | 80 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 81 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 82 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 83 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 84 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 85 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 86 | SOFTWARE. 87 | -------------------------------------------------------------------------------- /tests/Unit/GeneratorTest.php: -------------------------------------------------------------------------------- 1 | false]); 26 | $generator->setEmail($email); 27 | 28 | $expected = "http://www.gravatar.com/avatar/{$emailHash}.png?s=80&d=mm&rating=g"; 29 | 30 | $this->assertEquals($expected, $generator->getGravatar()); 31 | } 32 | 33 | public function testBasicEmailSecure() 34 | { 35 | $email = 'test@email.com'; 36 | $emailHash = md5($email); 37 | 38 | $generator = new Generator(); 39 | $generator->setEmail($email); 40 | $generator->setSecure(true); 41 | 42 | $expected = "https://secure.gravatar.com/avatar/{$emailHash}.png?s=80&d=mm&rating=g"; 43 | 44 | $this->assertEquals($expected, $generator->getGravatar()); 45 | } 46 | 47 | public function testInvalidEmail() 48 | { 49 | $this->setExpectedException('InvalidArgumentException'); 50 | 51 | $email = 'test'; 52 | 53 | $generator = new Generator(); 54 | $generator->setEmail($email); 55 | } 56 | 57 | public function testSetExtension() 58 | { 59 | $email = 'test@email.com'; 60 | $emailHash = md5($email); 61 | $extension = 'jpg'; 62 | 63 | $generator = new Generator(['secure' => false,]); 64 | $generator->setEmail($email); 65 | $generator->setExtension($extension); 66 | 67 | $expected = "http://www.gravatar.com/avatar/{$emailHash}.{$extension}?s=80&d=mm&rating=g"; 68 | 69 | $this->assertEquals($expected, $generator->getGravatar()); 70 | } 71 | 72 | public function testSetExtensionSecure() 73 | { 74 | $email = 'test@email.com'; 75 | $emailHash = md5($email); 76 | $extension = 'jpg'; 77 | 78 | $generator = new Generator(); 79 | $generator->setEmail($email); 80 | $generator->setExtension($extension); 81 | $generator->setSecure(true); 82 | 83 | $expected = "https://secure.gravatar.com/avatar/{$emailHash}.{$extension}?s=80&d=mm&rating=g"; 84 | 85 | $this->assertEquals($expected, $generator->getGravatar()); 86 | } 87 | 88 | public function testSetSize() 89 | { 90 | $email = 'test@email.com'; 91 | $emailHash = md5($email); 92 | $size = 100; 93 | 94 | $generator = new Generator(['secure' => false]); 95 | $generator->setEmail($email); 96 | $generator->setSize($size); 97 | 98 | $expected = "http://www.gravatar.com/avatar/{$emailHash}.png?s={$size}&d=mm&rating=g"; 99 | 100 | $this->assertEquals($expected, $generator->getGravatar()); 101 | } 102 | 103 | public function testSetSizeSecure() 104 | { 105 | $email = 'test@email.com'; 106 | $emailHash = md5($email); 107 | $size = 100; 108 | 109 | $generator = new Generator(); 110 | $generator->setEmail($email); 111 | $generator->setSize($size); 112 | $generator->setSecure(true); 113 | 114 | $expected = "https://secure.gravatar.com/avatar/{$emailHash}.png?s={$size}&d=mm&rating=g"; 115 | 116 | $this->assertEquals($expected, $generator->getGravatar()); 117 | } 118 | 119 | public function testSetDefault() 120 | { 121 | $email = 'test@email.com'; 122 | $emailHash = md5($email); 123 | $default = 'retro'; 124 | 125 | $generator = new Generator(['secure' => false]); 126 | $generator->setEmail($email); 127 | $generator->setDefault($default); 128 | 129 | $expected = "http://www.gravatar.com/avatar/{$emailHash}.png?s=80&d={$default}&rating=g"; 130 | 131 | $this->assertEquals($expected, $generator->getGravatar()); 132 | } 133 | 134 | public function testSetDefaultSecure() 135 | { 136 | $email = 'test@email.com'; 137 | $emailHash = md5($email); 138 | $default = 'retro'; 139 | 140 | $generator = new Generator(['secure' => false]); 141 | $generator->setEmail($email); 142 | $generator->setDefault($default); 143 | $generator->setSecure(true); 144 | 145 | $expected = "https://secure.gravatar.com/avatar/{$emailHash}.png?s=80&d={$default}&rating=g"; 146 | 147 | $this->assertEquals($expected, $generator->getGravatar()); 148 | } 149 | 150 | public function testForceDefault() 151 | { 152 | $email = 'test@email.com'; 153 | $emailHash = md5($email); 154 | $default = 'retro'; 155 | 156 | $generator = new Generator(['secure' => false]); 157 | $generator->setEmail($email); 158 | $generator->setDefault($default); 159 | $generator->setForceDefault(true); 160 | 161 | $expected = "http://www.gravatar.com/avatar/{$emailHash}.png?s=80&d={$default}&forcedefault=y&rating=g"; 162 | 163 | $this->assertEquals($expected, $generator->getGravatar()); 164 | } 165 | 166 | public function testForceDefaultSecure() 167 | { 168 | $email = 'test@email.com'; 169 | $emailHash = md5($email); 170 | $default = 'retro'; 171 | 172 | $generator = new Generator(); 173 | $generator->setEmail($email); 174 | $generator->setDefault($default); 175 | $generator->setForceDefault(true); 176 | $generator->setSecure(true); 177 | 178 | $expected = "https://secure.gravatar.com/avatar/{$emailHash}.png?s=80&d={$default}&forcedefault=y&rating=g"; 179 | 180 | $this->assertEquals($expected, $generator->getGravatar()); 181 | } 182 | 183 | public function testSetRating() 184 | { 185 | $email = 'test@email.com'; 186 | $emailHash = md5($email); 187 | $rating = 'pg'; 188 | 189 | $generator = new Generator(['secure' => false]); 190 | $generator->setEmail($email); 191 | $generator->setRating($rating); 192 | 193 | $expected = "http://www.gravatar.com/avatar/{$emailHash}.png?s=80&d=mm&rating={$rating}"; 194 | 195 | $this->assertEquals($expected, $generator->getGravatar()); 196 | } 197 | 198 | public function testSetRatingSecure() 199 | { 200 | $email = 'test@email.com'; 201 | $emailHash = md5($email); 202 | $rating = 'pg'; 203 | 204 | $generator = new Generator(); 205 | $generator->setEmail($email); 206 | $generator->setRating($rating); 207 | $generator->setSecure(true); 208 | 209 | $expected = "https://secure.gravatar.com/avatar/{$emailHash}.png?s=80&d=mm&rating={$rating}"; 210 | 211 | $this->assertEquals($expected, $generator->getGravatar()); 212 | } 213 | } 214 | -------------------------------------------------------------------------------- /src/Generator.php: -------------------------------------------------------------------------------- 1 | true, 94 | 'extension' => '.png', 95 | 'size' => 80, 96 | 'default' => 'mm', 97 | 'force_default' => false, 98 | 'rating' => 'g', 99 | ]; 100 | 101 | if ($settings !== null) { 102 | $defaults = array_merge($defaults, $settings); 103 | } 104 | 105 | $this->setSecure($defaults['secure']); 106 | $this->setExtension($defaults['extension']); 107 | $this->setSize($defaults['size']); 108 | $this->setDefault($defaults['default']); 109 | $this->setForceDefault($defaults['force_default']); 110 | $this->setRating($defaults['rating']); 111 | } 112 | 113 | /** 114 | * Whether to use Https for gravatars. 115 | * 116 | * @param boolean $secure 117 | * 118 | * @return $this 119 | */ 120 | public function setSecure($secure = true) 121 | { 122 | $this->secure = (bool)$secure; 123 | 124 | return $this; 125 | } 126 | 127 | /** 128 | * Set image extension. 129 | * 130 | * @param string $extension 131 | * 132 | * @return $this 133 | */ 134 | public function setExtension($extension = '.png') 135 | { 136 | if (substr($extension, 0, 1) != '.') { 137 | $extension = '.' . $extension; 138 | } 139 | 140 | $this->extension = $extension; 141 | 142 | return $this; 143 | } 144 | 145 | /** 146 | * Set image size. 147 | * 148 | * @param integer $size The size to be used 149 | * 150 | * @return $this 151 | */ 152 | public function setSize($size = 32) 153 | { 154 | $size = (int)$size; 155 | 156 | // Gravatars can be sized 1px up to 2048px square: https://en.gravatar.com/site/implement/images/#size 157 | if ($size < 1) { 158 | $size = 1; 159 | } 160 | 161 | if ($size > 2048) { 162 | $size = 2048; 163 | } 164 | 165 | $this->size = $size; 166 | 167 | return $this; 168 | } 169 | 170 | /** 171 | * Set the default gravatar should one not exist for the email. 172 | * 173 | * @param string $default 174 | * 175 | * @return $this 176 | */ 177 | public function setDefault($default) 178 | { 179 | $default = trim($default); 180 | 181 | if (in_array((string)$default, static::$defaultGravatars)) { 182 | $this->default = (string)$default; 183 | } elseif (strpos($default, 'http') !== false && filter_var($default, FILTER_VALIDATE_URL)) { 184 | $this->default = urlencode($default); 185 | } 186 | 187 | return $this; 188 | } 189 | 190 | /** 191 | * Force the default avatar. 192 | * 193 | * @param boolean $force 194 | * 195 | * @return $this 196 | */ 197 | public function setForceDefault($force = true) 198 | { 199 | $this->forceDefault = (bool)$force; 200 | } 201 | 202 | /** 203 | * Set age rating. 204 | * 205 | * @param string $rating 206 | * 207 | * @return $this 208 | */ 209 | public function setRating($rating = 'g') 210 | { 211 | $rating = (string)$rating; 212 | 213 | if (in_array($rating, static::$ageRatings)) { 214 | $this->rating = $rating; 215 | } 216 | 217 | return $this; 218 | } 219 | 220 | /** 221 | * Shortcut method to get Gravatar. 222 | * 223 | * @return string 224 | */ 225 | public function __toString() 226 | { 227 | return $this->getGravatar(); 228 | } 229 | 230 | /** 231 | * Get the gravatar. 232 | * 233 | * @param string $email 234 | * 235 | * @return string 236 | */ 237 | public function getGravatar($email = null) 238 | { 239 | if (isset($email)) { 240 | $this->setEmail((string)$email); 241 | } 242 | 243 | $url = self::BASE_URL; 244 | if ($this->secure) { 245 | $url = self::BASE_URL_SECURE; 246 | } 247 | 248 | $url .= $this->email; 249 | $url .= $this->extension; 250 | $url .= '?s=' . $this->size; 251 | $url .= '&d=' . $this->default; 252 | 253 | if ($this->forceDefault) { 254 | $url .= '&forcedefault=y'; 255 | } 256 | 257 | $url .= '&rating=' . $this->rating; 258 | 259 | return $url; 260 | } 261 | 262 | /** 263 | * Set email address. 264 | * 265 | * @param String $email The email address 266 | * 267 | * @return $this 268 | */ 269 | public function setEmail($email = '') 270 | { 271 | $email = (string)$email; 272 | 273 | // According to the docs, emails should be lowercase: https://en.gravatar.com/site/implement/hash/ 274 | $email = trim($email); 275 | $email = strtolower($email); 276 | 277 | if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 278 | throw new \InvalidArgumentException('Email should be a valid email address'); 279 | } 280 | 281 | $this->email = md5($email); 282 | 283 | return $this; 284 | } 285 | } 286 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "hash": "6d21ca10ba3d379d9c17016cf2dfc873", 8 | "content-hash": "e96470fe1d13f5826991568fecdf0154", 9 | "packages": [ 10 | { 11 | "name": "doctrine/inflector", 12 | "version": "v1.1.0", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/doctrine/inflector.git", 16 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", 21 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": ">=5.3.2" 26 | }, 27 | "require-dev": { 28 | "phpunit/phpunit": "4.*" 29 | }, 30 | "type": "library", 31 | "extra": { 32 | "branch-alias": { 33 | "dev-master": "1.1.x-dev" 34 | } 35 | }, 36 | "autoload": { 37 | "psr-0": { 38 | "Doctrine\\Common\\Inflector\\": "lib/" 39 | } 40 | }, 41 | "notification-url": "https://packagist.org/downloads/", 42 | "license": [ 43 | "MIT" 44 | ], 45 | "authors": [ 46 | { 47 | "name": "Roman Borschel", 48 | "email": "roman@code-factory.org" 49 | }, 50 | { 51 | "name": "Benjamin Eberlei", 52 | "email": "kontakt@beberlei.de" 53 | }, 54 | { 55 | "name": "Guilherme Blanco", 56 | "email": "guilhermeblanco@gmail.com" 57 | }, 58 | { 59 | "name": "Jonathan Wage", 60 | "email": "jonwage@gmail.com" 61 | }, 62 | { 63 | "name": "Johannes Schmitt", 64 | "email": "schmittjoh@gmail.com" 65 | } 66 | ], 67 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 68 | "homepage": "http://www.doctrine-project.org", 69 | "keywords": [ 70 | "inflection", 71 | "pluralize", 72 | "singularize", 73 | "string" 74 | ], 75 | "time": "2015-11-06 14:35:42" 76 | }, 77 | { 78 | "name": "illuminate/contracts", 79 | "version": "v5.3.23", 80 | "source": { 81 | "type": "git", 82 | "url": "https://github.com/illuminate/contracts.git", 83 | "reference": "ce5d73c6015b2054d32f3f8530767847b358ae4e" 84 | }, 85 | "dist": { 86 | "type": "zip", 87 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/ce5d73c6015b2054d32f3f8530767847b358ae4e", 88 | "reference": "ce5d73c6015b2054d32f3f8530767847b358ae4e", 89 | "shasum": "" 90 | }, 91 | "require": { 92 | "php": ">=5.6.4" 93 | }, 94 | "type": "library", 95 | "extra": { 96 | "branch-alias": { 97 | "dev-master": "5.3-dev" 98 | } 99 | }, 100 | "autoload": { 101 | "psr-4": { 102 | "Illuminate\\Contracts\\": "" 103 | } 104 | }, 105 | "notification-url": "https://packagist.org/downloads/", 106 | "license": [ 107 | "MIT" 108 | ], 109 | "authors": [ 110 | { 111 | "name": "Taylor Otwell", 112 | "email": "taylor@laravel.com" 113 | } 114 | ], 115 | "description": "The Illuminate Contracts package.", 116 | "homepage": "https://laravel.com", 117 | "time": "2016-09-26 20:36:27" 118 | }, 119 | { 120 | "name": "illuminate/support", 121 | "version": "v5.3.23", 122 | "source": { 123 | "type": "git", 124 | "url": "https://github.com/illuminate/support.git", 125 | "reference": "050d0ed3e1c0e1d129d73b2eaa14044e46a66f77" 126 | }, 127 | "dist": { 128 | "type": "zip", 129 | "url": "https://api.github.com/repos/illuminate/support/zipball/050d0ed3e1c0e1d129d73b2eaa14044e46a66f77", 130 | "reference": "050d0ed3e1c0e1d129d73b2eaa14044e46a66f77", 131 | "shasum": "" 132 | }, 133 | "require": { 134 | "doctrine/inflector": "~1.0", 135 | "ext-mbstring": "*", 136 | "illuminate/contracts": "5.3.*", 137 | "paragonie/random_compat": "~1.4|~2.0", 138 | "php": ">=5.6.4" 139 | }, 140 | "replace": { 141 | "tightenco/collect": "self.version" 142 | }, 143 | "suggest": { 144 | "illuminate/filesystem": "Required to use the composer class (5.2.*).", 145 | "symfony/process": "Required to use the composer class (3.1.*).", 146 | "symfony/var-dumper": "Required to use the dd function (3.1.*)." 147 | }, 148 | "type": "library", 149 | "extra": { 150 | "branch-alias": { 151 | "dev-master": "5.3-dev" 152 | } 153 | }, 154 | "autoload": { 155 | "psr-4": { 156 | "Illuminate\\Support\\": "" 157 | }, 158 | "files": [ 159 | "helpers.php" 160 | ] 161 | }, 162 | "notification-url": "https://packagist.org/downloads/", 163 | "license": [ 164 | "MIT" 165 | ], 166 | "authors": [ 167 | { 168 | "name": "Taylor Otwell", 169 | "email": "taylor@laravel.com" 170 | } 171 | ], 172 | "description": "The Illuminate Support package.", 173 | "homepage": "https://laravel.com", 174 | "time": "2016-11-03 15:25:28" 175 | }, 176 | { 177 | "name": "paragonie/random_compat", 178 | "version": "v2.0.4", 179 | "source": { 180 | "type": "git", 181 | "url": "https://github.com/paragonie/random_compat.git", 182 | "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e" 183 | }, 184 | "dist": { 185 | "type": "zip", 186 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", 187 | "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", 188 | "shasum": "" 189 | }, 190 | "require": { 191 | "php": ">=5.2.0" 192 | }, 193 | "require-dev": { 194 | "phpunit/phpunit": "4.*|5.*" 195 | }, 196 | "suggest": { 197 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 198 | }, 199 | "type": "library", 200 | "autoload": { 201 | "files": [ 202 | "lib/random.php" 203 | ] 204 | }, 205 | "notification-url": "https://packagist.org/downloads/", 206 | "license": [ 207 | "MIT" 208 | ], 209 | "authors": [ 210 | { 211 | "name": "Paragon Initiative Enterprises", 212 | "email": "security@paragonie.com", 213 | "homepage": "https://paragonie.com" 214 | } 215 | ], 216 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", 217 | "keywords": [ 218 | "csprng", 219 | "pseudorandom", 220 | "random" 221 | ], 222 | "time": "2016-11-07 23:38:38" 223 | } 224 | ], 225 | "packages-dev": [ 226 | { 227 | "name": "doctrine/instantiator", 228 | "version": "1.0.5", 229 | "source": { 230 | "type": "git", 231 | "url": "https://github.com/doctrine/instantiator.git", 232 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 233 | }, 234 | "dist": { 235 | "type": "zip", 236 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 237 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 238 | "shasum": "" 239 | }, 240 | "require": { 241 | "php": ">=5.3,<8.0-DEV" 242 | }, 243 | "require-dev": { 244 | "athletic/athletic": "~0.1.8", 245 | "ext-pdo": "*", 246 | "ext-phar": "*", 247 | "phpunit/phpunit": "~4.0", 248 | "squizlabs/php_codesniffer": "~2.0" 249 | }, 250 | "type": "library", 251 | "extra": { 252 | "branch-alias": { 253 | "dev-master": "1.0.x-dev" 254 | } 255 | }, 256 | "autoload": { 257 | "psr-4": { 258 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 259 | } 260 | }, 261 | "notification-url": "https://packagist.org/downloads/", 262 | "license": [ 263 | "MIT" 264 | ], 265 | "authors": [ 266 | { 267 | "name": "Marco Pivetta", 268 | "email": "ocramius@gmail.com", 269 | "homepage": "http://ocramius.github.com/" 270 | } 271 | ], 272 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 273 | "homepage": "https://github.com/doctrine/instantiator", 274 | "keywords": [ 275 | "constructor", 276 | "instantiate" 277 | ], 278 | "time": "2015-06-14 21:17:01" 279 | }, 280 | { 281 | "name": "myclabs/deep-copy", 282 | "version": "1.5.5", 283 | "source": { 284 | "type": "git", 285 | "url": "https://github.com/myclabs/DeepCopy.git", 286 | "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108" 287 | }, 288 | "dist": { 289 | "type": "zip", 290 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/399c1f9781e222f6eb6cc238796f5200d1b7f108", 291 | "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108", 292 | "shasum": "" 293 | }, 294 | "require": { 295 | "php": ">=5.4.0" 296 | }, 297 | "require-dev": { 298 | "doctrine/collections": "1.*", 299 | "phpunit/phpunit": "~4.1" 300 | }, 301 | "type": "library", 302 | "autoload": { 303 | "psr-4": { 304 | "DeepCopy\\": "src/DeepCopy/" 305 | } 306 | }, 307 | "notification-url": "https://packagist.org/downloads/", 308 | "license": [ 309 | "MIT" 310 | ], 311 | "description": "Create deep copies (clones) of your objects", 312 | "homepage": "https://github.com/myclabs/DeepCopy", 313 | "keywords": [ 314 | "clone", 315 | "copy", 316 | "duplicate", 317 | "object", 318 | "object graph" 319 | ], 320 | "time": "2016-10-31 17:19:45" 321 | }, 322 | { 323 | "name": "phpdocumentor/reflection-common", 324 | "version": "1.0", 325 | "source": { 326 | "type": "git", 327 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 328 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" 329 | }, 330 | "dist": { 331 | "type": "zip", 332 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 333 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 334 | "shasum": "" 335 | }, 336 | "require": { 337 | "php": ">=5.5" 338 | }, 339 | "require-dev": { 340 | "phpunit/phpunit": "^4.6" 341 | }, 342 | "type": "library", 343 | "extra": { 344 | "branch-alias": { 345 | "dev-master": "1.0.x-dev" 346 | } 347 | }, 348 | "autoload": { 349 | "psr-4": { 350 | "phpDocumentor\\Reflection\\": [ 351 | "src" 352 | ] 353 | } 354 | }, 355 | "notification-url": "https://packagist.org/downloads/", 356 | "license": [ 357 | "MIT" 358 | ], 359 | "authors": [ 360 | { 361 | "name": "Jaap van Otterdijk", 362 | "email": "opensource@ijaap.nl" 363 | } 364 | ], 365 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 366 | "homepage": "http://www.phpdoc.org", 367 | "keywords": [ 368 | "FQSEN", 369 | "phpDocumentor", 370 | "phpdoc", 371 | "reflection", 372 | "static analysis" 373 | ], 374 | "time": "2015-12-27 11:43:31" 375 | }, 376 | { 377 | "name": "phpdocumentor/reflection-docblock", 378 | "version": "3.1.1", 379 | "source": { 380 | "type": "git", 381 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 382 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e" 383 | }, 384 | "dist": { 385 | "type": "zip", 386 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e", 387 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e", 388 | "shasum": "" 389 | }, 390 | "require": { 391 | "php": ">=5.5", 392 | "phpdocumentor/reflection-common": "^1.0@dev", 393 | "phpdocumentor/type-resolver": "^0.2.0", 394 | "webmozart/assert": "^1.0" 395 | }, 396 | "require-dev": { 397 | "mockery/mockery": "^0.9.4", 398 | "phpunit/phpunit": "^4.4" 399 | }, 400 | "type": "library", 401 | "autoload": { 402 | "psr-4": { 403 | "phpDocumentor\\Reflection\\": [ 404 | "src/" 405 | ] 406 | } 407 | }, 408 | "notification-url": "https://packagist.org/downloads/", 409 | "license": [ 410 | "MIT" 411 | ], 412 | "authors": [ 413 | { 414 | "name": "Mike van Riel", 415 | "email": "me@mikevanriel.com" 416 | } 417 | ], 418 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 419 | "time": "2016-09-30 07:12:33" 420 | }, 421 | { 422 | "name": "phpdocumentor/type-resolver", 423 | "version": "0.2.1", 424 | "source": { 425 | "type": "git", 426 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 427 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb" 428 | }, 429 | "dist": { 430 | "type": "zip", 431 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", 432 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", 433 | "shasum": "" 434 | }, 435 | "require": { 436 | "php": ">=5.5", 437 | "phpdocumentor/reflection-common": "^1.0" 438 | }, 439 | "require-dev": { 440 | "mockery/mockery": "^0.9.4", 441 | "phpunit/phpunit": "^5.2||^4.8.24" 442 | }, 443 | "type": "library", 444 | "extra": { 445 | "branch-alias": { 446 | "dev-master": "1.0.x-dev" 447 | } 448 | }, 449 | "autoload": { 450 | "psr-4": { 451 | "phpDocumentor\\Reflection\\": [ 452 | "src/" 453 | ] 454 | } 455 | }, 456 | "notification-url": "https://packagist.org/downloads/", 457 | "license": [ 458 | "MIT" 459 | ], 460 | "authors": [ 461 | { 462 | "name": "Mike van Riel", 463 | "email": "me@mikevanriel.com" 464 | } 465 | ], 466 | "time": "2016-11-25 06:54:22" 467 | }, 468 | { 469 | "name": "phpspec/prophecy", 470 | "version": "v1.6.2", 471 | "source": { 472 | "type": "git", 473 | "url": "https://github.com/phpspec/prophecy.git", 474 | "reference": "6c52c2722f8460122f96f86346600e1077ce22cb" 475 | }, 476 | "dist": { 477 | "type": "zip", 478 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb", 479 | "reference": "6c52c2722f8460122f96f86346600e1077ce22cb", 480 | "shasum": "" 481 | }, 482 | "require": { 483 | "doctrine/instantiator": "^1.0.2", 484 | "php": "^5.3|^7.0", 485 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", 486 | "sebastian/comparator": "^1.1", 487 | "sebastian/recursion-context": "^1.0|^2.0" 488 | }, 489 | "require-dev": { 490 | "phpspec/phpspec": "^2.0", 491 | "phpunit/phpunit": "^4.8 || ^5.6.5" 492 | }, 493 | "type": "library", 494 | "extra": { 495 | "branch-alias": { 496 | "dev-master": "1.6.x-dev" 497 | } 498 | }, 499 | "autoload": { 500 | "psr-0": { 501 | "Prophecy\\": "src/" 502 | } 503 | }, 504 | "notification-url": "https://packagist.org/downloads/", 505 | "license": [ 506 | "MIT" 507 | ], 508 | "authors": [ 509 | { 510 | "name": "Konstantin Kudryashov", 511 | "email": "ever.zet@gmail.com", 512 | "homepage": "http://everzet.com" 513 | }, 514 | { 515 | "name": "Marcello Duarte", 516 | "email": "marcello.duarte@gmail.com" 517 | } 518 | ], 519 | "description": "Highly opinionated mocking framework for PHP 5.3+", 520 | "homepage": "https://github.com/phpspec/prophecy", 521 | "keywords": [ 522 | "Double", 523 | "Dummy", 524 | "fake", 525 | "mock", 526 | "spy", 527 | "stub" 528 | ], 529 | "time": "2016-11-21 14:58:47" 530 | }, 531 | { 532 | "name": "phpunit/php-code-coverage", 533 | "version": "4.0.3", 534 | "source": { 535 | "type": "git", 536 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 537 | "reference": "903fd6318d0a90b4770a009ff73e4a4e9c437929" 538 | }, 539 | "dist": { 540 | "type": "zip", 541 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/903fd6318d0a90b4770a009ff73e4a4e9c437929", 542 | "reference": "903fd6318d0a90b4770a009ff73e4a4e9c437929", 543 | "shasum": "" 544 | }, 545 | "require": { 546 | "php": "^5.6 || ^7.0", 547 | "phpunit/php-file-iterator": "~1.3", 548 | "phpunit/php-text-template": "~1.2", 549 | "phpunit/php-token-stream": "^1.4.2", 550 | "sebastian/code-unit-reverse-lookup": "~1.0", 551 | "sebastian/environment": "^1.3.2 || ^2.0", 552 | "sebastian/version": "~1.0|~2.0" 553 | }, 554 | "require-dev": { 555 | "ext-xdebug": ">=2.1.4", 556 | "phpunit/phpunit": "^5.4" 557 | }, 558 | "suggest": { 559 | "ext-dom": "*", 560 | "ext-xdebug": ">=2.4.0", 561 | "ext-xmlwriter": "*" 562 | }, 563 | "type": "library", 564 | "extra": { 565 | "branch-alias": { 566 | "dev-master": "4.0.x-dev" 567 | } 568 | }, 569 | "autoload": { 570 | "classmap": [ 571 | "src/" 572 | ] 573 | }, 574 | "notification-url": "https://packagist.org/downloads/", 575 | "license": [ 576 | "BSD-3-Clause" 577 | ], 578 | "authors": [ 579 | { 580 | "name": "Sebastian Bergmann", 581 | "email": "sb@sebastian-bergmann.de", 582 | "role": "lead" 583 | } 584 | ], 585 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 586 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 587 | "keywords": [ 588 | "coverage", 589 | "testing", 590 | "xunit" 591 | ], 592 | "time": "2016-11-28 16:00:31" 593 | }, 594 | { 595 | "name": "phpunit/php-file-iterator", 596 | "version": "1.4.2", 597 | "source": { 598 | "type": "git", 599 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 600 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" 601 | }, 602 | "dist": { 603 | "type": "zip", 604 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", 605 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", 606 | "shasum": "" 607 | }, 608 | "require": { 609 | "php": ">=5.3.3" 610 | }, 611 | "type": "library", 612 | "extra": { 613 | "branch-alias": { 614 | "dev-master": "1.4.x-dev" 615 | } 616 | }, 617 | "autoload": { 618 | "classmap": [ 619 | "src/" 620 | ] 621 | }, 622 | "notification-url": "https://packagist.org/downloads/", 623 | "license": [ 624 | "BSD-3-Clause" 625 | ], 626 | "authors": [ 627 | { 628 | "name": "Sebastian Bergmann", 629 | "email": "sb@sebastian-bergmann.de", 630 | "role": "lead" 631 | } 632 | ], 633 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 634 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 635 | "keywords": [ 636 | "filesystem", 637 | "iterator" 638 | ], 639 | "time": "2016-10-03 07:40:28" 640 | }, 641 | { 642 | "name": "phpunit/php-text-template", 643 | "version": "1.2.1", 644 | "source": { 645 | "type": "git", 646 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 647 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 648 | }, 649 | "dist": { 650 | "type": "zip", 651 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 652 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 653 | "shasum": "" 654 | }, 655 | "require": { 656 | "php": ">=5.3.3" 657 | }, 658 | "type": "library", 659 | "autoload": { 660 | "classmap": [ 661 | "src/" 662 | ] 663 | }, 664 | "notification-url": "https://packagist.org/downloads/", 665 | "license": [ 666 | "BSD-3-Clause" 667 | ], 668 | "authors": [ 669 | { 670 | "name": "Sebastian Bergmann", 671 | "email": "sebastian@phpunit.de", 672 | "role": "lead" 673 | } 674 | ], 675 | "description": "Simple template engine.", 676 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 677 | "keywords": [ 678 | "template" 679 | ], 680 | "time": "2015-06-21 13:50:34" 681 | }, 682 | { 683 | "name": "phpunit/php-timer", 684 | "version": "1.0.8", 685 | "source": { 686 | "type": "git", 687 | "url": "https://github.com/sebastianbergmann/php-timer.git", 688 | "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" 689 | }, 690 | "dist": { 691 | "type": "zip", 692 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", 693 | "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", 694 | "shasum": "" 695 | }, 696 | "require": { 697 | "php": ">=5.3.3" 698 | }, 699 | "require-dev": { 700 | "phpunit/phpunit": "~4|~5" 701 | }, 702 | "type": "library", 703 | "autoload": { 704 | "classmap": [ 705 | "src/" 706 | ] 707 | }, 708 | "notification-url": "https://packagist.org/downloads/", 709 | "license": [ 710 | "BSD-3-Clause" 711 | ], 712 | "authors": [ 713 | { 714 | "name": "Sebastian Bergmann", 715 | "email": "sb@sebastian-bergmann.de", 716 | "role": "lead" 717 | } 718 | ], 719 | "description": "Utility class for timing", 720 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 721 | "keywords": [ 722 | "timer" 723 | ], 724 | "time": "2016-05-12 18:03:57" 725 | }, 726 | { 727 | "name": "phpunit/php-token-stream", 728 | "version": "1.4.9", 729 | "source": { 730 | "type": "git", 731 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 732 | "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b" 733 | }, 734 | "dist": { 735 | "type": "zip", 736 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b", 737 | "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b", 738 | "shasum": "" 739 | }, 740 | "require": { 741 | "ext-tokenizer": "*", 742 | "php": ">=5.3.3" 743 | }, 744 | "require-dev": { 745 | "phpunit/phpunit": "~4.2" 746 | }, 747 | "type": "library", 748 | "extra": { 749 | "branch-alias": { 750 | "dev-master": "1.4-dev" 751 | } 752 | }, 753 | "autoload": { 754 | "classmap": [ 755 | "src/" 756 | ] 757 | }, 758 | "notification-url": "https://packagist.org/downloads/", 759 | "license": [ 760 | "BSD-3-Clause" 761 | ], 762 | "authors": [ 763 | { 764 | "name": "Sebastian Bergmann", 765 | "email": "sebastian@phpunit.de" 766 | } 767 | ], 768 | "description": "Wrapper around PHP's tokenizer extension.", 769 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 770 | "keywords": [ 771 | "tokenizer" 772 | ], 773 | "time": "2016-11-15 14:06:22" 774 | }, 775 | { 776 | "name": "phpunit/phpunit", 777 | "version": "5.5.7", 778 | "source": { 779 | "type": "git", 780 | "url": "https://github.com/sebastianbergmann/phpunit.git", 781 | "reference": "3f67cee782c9abfaee5e32fd2f57cdd54bc257ba" 782 | }, 783 | "dist": { 784 | "type": "zip", 785 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3f67cee782c9abfaee5e32fd2f57cdd54bc257ba", 786 | "reference": "3f67cee782c9abfaee5e32fd2f57cdd54bc257ba", 787 | "shasum": "" 788 | }, 789 | "require": { 790 | "ext-dom": "*", 791 | "ext-json": "*", 792 | "ext-libxml": "*", 793 | "ext-mbstring": "*", 794 | "ext-xml": "*", 795 | "myclabs/deep-copy": "~1.3", 796 | "php": "^5.6 || ^7.0", 797 | "phpspec/prophecy": "^1.3.1", 798 | "phpunit/php-code-coverage": "^4.0.1", 799 | "phpunit/php-file-iterator": "~1.4", 800 | "phpunit/php-text-template": "~1.2", 801 | "phpunit/php-timer": "^1.0.6", 802 | "phpunit/phpunit-mock-objects": "^3.2", 803 | "sebastian/comparator": "~1.1", 804 | "sebastian/diff": "~1.2", 805 | "sebastian/environment": "^1.3 || ^2.0", 806 | "sebastian/exporter": "~1.2", 807 | "sebastian/global-state": "~1.0", 808 | "sebastian/object-enumerator": "~1.0", 809 | "sebastian/resource-operations": "~1.0", 810 | "sebastian/version": "~1.0|~2.0", 811 | "symfony/yaml": "~2.1|~3.0" 812 | }, 813 | "conflict": { 814 | "phpdocumentor/reflection-docblock": "3.0.2" 815 | }, 816 | "require-dev": { 817 | "ext-pdo": "*" 818 | }, 819 | "suggest": { 820 | "ext-tidy": "*", 821 | "ext-xdebug": "*", 822 | "phpunit/php-invoker": "~1.1" 823 | }, 824 | "bin": [ 825 | "phpunit" 826 | ], 827 | "type": "library", 828 | "extra": { 829 | "branch-alias": { 830 | "dev-master": "5.5.x-dev" 831 | } 832 | }, 833 | "autoload": { 834 | "classmap": [ 835 | "src/" 836 | ] 837 | }, 838 | "notification-url": "https://packagist.org/downloads/", 839 | "license": [ 840 | "BSD-3-Clause" 841 | ], 842 | "authors": [ 843 | { 844 | "name": "Sebastian Bergmann", 845 | "email": "sebastian@phpunit.de", 846 | "role": "lead" 847 | } 848 | ], 849 | "description": "The PHP Unit Testing framework.", 850 | "homepage": "https://phpunit.de/", 851 | "keywords": [ 852 | "phpunit", 853 | "testing", 854 | "xunit" 855 | ], 856 | "time": "2016-10-03 13:04:15" 857 | }, 858 | { 859 | "name": "phpunit/phpunit-mock-objects", 860 | "version": "3.4.3", 861 | "source": { 862 | "type": "git", 863 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 864 | "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24" 865 | }, 866 | "dist": { 867 | "type": "zip", 868 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", 869 | "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", 870 | "shasum": "" 871 | }, 872 | "require": { 873 | "doctrine/instantiator": "^1.0.2", 874 | "php": "^5.6 || ^7.0", 875 | "phpunit/php-text-template": "^1.2", 876 | "sebastian/exporter": "^1.2 || ^2.0" 877 | }, 878 | "conflict": { 879 | "phpunit/phpunit": "<5.4.0" 880 | }, 881 | "require-dev": { 882 | "phpunit/phpunit": "^5.4" 883 | }, 884 | "suggest": { 885 | "ext-soap": "*" 886 | }, 887 | "type": "library", 888 | "extra": { 889 | "branch-alias": { 890 | "dev-master": "3.2.x-dev" 891 | } 892 | }, 893 | "autoload": { 894 | "classmap": [ 895 | "src/" 896 | ] 897 | }, 898 | "notification-url": "https://packagist.org/downloads/", 899 | "license": [ 900 | "BSD-3-Clause" 901 | ], 902 | "authors": [ 903 | { 904 | "name": "Sebastian Bergmann", 905 | "email": "sb@sebastian-bergmann.de", 906 | "role": "lead" 907 | } 908 | ], 909 | "description": "Mock Object library for PHPUnit", 910 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 911 | "keywords": [ 912 | "mock", 913 | "xunit" 914 | ], 915 | "time": "2016-12-08 20:27:08" 916 | }, 917 | { 918 | "name": "sebastian/code-unit-reverse-lookup", 919 | "version": "1.0.0", 920 | "source": { 921 | "type": "git", 922 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 923 | "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe" 924 | }, 925 | "dist": { 926 | "type": "zip", 927 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe", 928 | "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe", 929 | "shasum": "" 930 | }, 931 | "require": { 932 | "php": ">=5.6" 933 | }, 934 | "require-dev": { 935 | "phpunit/phpunit": "~5" 936 | }, 937 | "type": "library", 938 | "extra": { 939 | "branch-alias": { 940 | "dev-master": "1.0.x-dev" 941 | } 942 | }, 943 | "autoload": { 944 | "classmap": [ 945 | "src/" 946 | ] 947 | }, 948 | "notification-url": "https://packagist.org/downloads/", 949 | "license": [ 950 | "BSD-3-Clause" 951 | ], 952 | "authors": [ 953 | { 954 | "name": "Sebastian Bergmann", 955 | "email": "sebastian@phpunit.de" 956 | } 957 | ], 958 | "description": "Looks up which function or method a line of code belongs to", 959 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 960 | "time": "2016-02-13 06:45:14" 961 | }, 962 | { 963 | "name": "sebastian/comparator", 964 | "version": "1.2.2", 965 | "source": { 966 | "type": "git", 967 | "url": "https://github.com/sebastianbergmann/comparator.git", 968 | "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f" 969 | }, 970 | "dist": { 971 | "type": "zip", 972 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a1ed12e8b2409076ab22e3897126211ff8b1f7f", 973 | "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f", 974 | "shasum": "" 975 | }, 976 | "require": { 977 | "php": ">=5.3.3", 978 | "sebastian/diff": "~1.2", 979 | "sebastian/exporter": "~1.2 || ~2.0" 980 | }, 981 | "require-dev": { 982 | "phpunit/phpunit": "~4.4" 983 | }, 984 | "type": "library", 985 | "extra": { 986 | "branch-alias": { 987 | "dev-master": "1.2.x-dev" 988 | } 989 | }, 990 | "autoload": { 991 | "classmap": [ 992 | "src/" 993 | ] 994 | }, 995 | "notification-url": "https://packagist.org/downloads/", 996 | "license": [ 997 | "BSD-3-Clause" 998 | ], 999 | "authors": [ 1000 | { 1001 | "name": "Jeff Welch", 1002 | "email": "whatthejeff@gmail.com" 1003 | }, 1004 | { 1005 | "name": "Volker Dusch", 1006 | "email": "github@wallbash.com" 1007 | }, 1008 | { 1009 | "name": "Bernhard Schussek", 1010 | "email": "bschussek@2bepublished.at" 1011 | }, 1012 | { 1013 | "name": "Sebastian Bergmann", 1014 | "email": "sebastian@phpunit.de" 1015 | } 1016 | ], 1017 | "description": "Provides the functionality to compare PHP values for equality", 1018 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 1019 | "keywords": [ 1020 | "comparator", 1021 | "compare", 1022 | "equality" 1023 | ], 1024 | "time": "2016-11-19 09:18:40" 1025 | }, 1026 | { 1027 | "name": "sebastian/diff", 1028 | "version": "1.4.1", 1029 | "source": { 1030 | "type": "git", 1031 | "url": "https://github.com/sebastianbergmann/diff.git", 1032 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" 1033 | }, 1034 | "dist": { 1035 | "type": "zip", 1036 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", 1037 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", 1038 | "shasum": "" 1039 | }, 1040 | "require": { 1041 | "php": ">=5.3.3" 1042 | }, 1043 | "require-dev": { 1044 | "phpunit/phpunit": "~4.8" 1045 | }, 1046 | "type": "library", 1047 | "extra": { 1048 | "branch-alias": { 1049 | "dev-master": "1.4-dev" 1050 | } 1051 | }, 1052 | "autoload": { 1053 | "classmap": [ 1054 | "src/" 1055 | ] 1056 | }, 1057 | "notification-url": "https://packagist.org/downloads/", 1058 | "license": [ 1059 | "BSD-3-Clause" 1060 | ], 1061 | "authors": [ 1062 | { 1063 | "name": "Kore Nordmann", 1064 | "email": "mail@kore-nordmann.de" 1065 | }, 1066 | { 1067 | "name": "Sebastian Bergmann", 1068 | "email": "sebastian@phpunit.de" 1069 | } 1070 | ], 1071 | "description": "Diff implementation", 1072 | "homepage": "https://github.com/sebastianbergmann/diff", 1073 | "keywords": [ 1074 | "diff" 1075 | ], 1076 | "time": "2015-12-08 07:14:41" 1077 | }, 1078 | { 1079 | "name": "sebastian/environment", 1080 | "version": "2.0.0", 1081 | "source": { 1082 | "type": "git", 1083 | "url": "https://github.com/sebastianbergmann/environment.git", 1084 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" 1085 | }, 1086 | "dist": { 1087 | "type": "zip", 1088 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1089 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1090 | "shasum": "" 1091 | }, 1092 | "require": { 1093 | "php": "^5.6 || ^7.0" 1094 | }, 1095 | "require-dev": { 1096 | "phpunit/phpunit": "^5.0" 1097 | }, 1098 | "type": "library", 1099 | "extra": { 1100 | "branch-alias": { 1101 | "dev-master": "2.0.x-dev" 1102 | } 1103 | }, 1104 | "autoload": { 1105 | "classmap": [ 1106 | "src/" 1107 | ] 1108 | }, 1109 | "notification-url": "https://packagist.org/downloads/", 1110 | "license": [ 1111 | "BSD-3-Clause" 1112 | ], 1113 | "authors": [ 1114 | { 1115 | "name": "Sebastian Bergmann", 1116 | "email": "sebastian@phpunit.de" 1117 | } 1118 | ], 1119 | "description": "Provides functionality to handle HHVM/PHP environments", 1120 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1121 | "keywords": [ 1122 | "Xdebug", 1123 | "environment", 1124 | "hhvm" 1125 | ], 1126 | "time": "2016-11-26 07:53:53" 1127 | }, 1128 | { 1129 | "name": "sebastian/exporter", 1130 | "version": "1.2.2", 1131 | "source": { 1132 | "type": "git", 1133 | "url": "https://github.com/sebastianbergmann/exporter.git", 1134 | "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" 1135 | }, 1136 | "dist": { 1137 | "type": "zip", 1138 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", 1139 | "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", 1140 | "shasum": "" 1141 | }, 1142 | "require": { 1143 | "php": ">=5.3.3", 1144 | "sebastian/recursion-context": "~1.0" 1145 | }, 1146 | "require-dev": { 1147 | "ext-mbstring": "*", 1148 | "phpunit/phpunit": "~4.4" 1149 | }, 1150 | "type": "library", 1151 | "extra": { 1152 | "branch-alias": { 1153 | "dev-master": "1.3.x-dev" 1154 | } 1155 | }, 1156 | "autoload": { 1157 | "classmap": [ 1158 | "src/" 1159 | ] 1160 | }, 1161 | "notification-url": "https://packagist.org/downloads/", 1162 | "license": [ 1163 | "BSD-3-Clause" 1164 | ], 1165 | "authors": [ 1166 | { 1167 | "name": "Jeff Welch", 1168 | "email": "whatthejeff@gmail.com" 1169 | }, 1170 | { 1171 | "name": "Volker Dusch", 1172 | "email": "github@wallbash.com" 1173 | }, 1174 | { 1175 | "name": "Bernhard Schussek", 1176 | "email": "bschussek@2bepublished.at" 1177 | }, 1178 | { 1179 | "name": "Sebastian Bergmann", 1180 | "email": "sebastian@phpunit.de" 1181 | }, 1182 | { 1183 | "name": "Adam Harvey", 1184 | "email": "aharvey@php.net" 1185 | } 1186 | ], 1187 | "description": "Provides the functionality to export PHP variables for visualization", 1188 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1189 | "keywords": [ 1190 | "export", 1191 | "exporter" 1192 | ], 1193 | "time": "2016-06-17 09:04:28" 1194 | }, 1195 | { 1196 | "name": "sebastian/global-state", 1197 | "version": "1.1.1", 1198 | "source": { 1199 | "type": "git", 1200 | "url": "https://github.com/sebastianbergmann/global-state.git", 1201 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 1202 | }, 1203 | "dist": { 1204 | "type": "zip", 1205 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 1206 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 1207 | "shasum": "" 1208 | }, 1209 | "require": { 1210 | "php": ">=5.3.3" 1211 | }, 1212 | "require-dev": { 1213 | "phpunit/phpunit": "~4.2" 1214 | }, 1215 | "suggest": { 1216 | "ext-uopz": "*" 1217 | }, 1218 | "type": "library", 1219 | "extra": { 1220 | "branch-alias": { 1221 | "dev-master": "1.0-dev" 1222 | } 1223 | }, 1224 | "autoload": { 1225 | "classmap": [ 1226 | "src/" 1227 | ] 1228 | }, 1229 | "notification-url": "https://packagist.org/downloads/", 1230 | "license": [ 1231 | "BSD-3-Clause" 1232 | ], 1233 | "authors": [ 1234 | { 1235 | "name": "Sebastian Bergmann", 1236 | "email": "sebastian@phpunit.de" 1237 | } 1238 | ], 1239 | "description": "Snapshotting of global state", 1240 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1241 | "keywords": [ 1242 | "global state" 1243 | ], 1244 | "time": "2015-10-12 03:26:01" 1245 | }, 1246 | { 1247 | "name": "sebastian/object-enumerator", 1248 | "version": "1.0.0", 1249 | "source": { 1250 | "type": "git", 1251 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1252 | "reference": "d4ca2fb70344987502567bc50081c03e6192fb26" 1253 | }, 1254 | "dist": { 1255 | "type": "zip", 1256 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/d4ca2fb70344987502567bc50081c03e6192fb26", 1257 | "reference": "d4ca2fb70344987502567bc50081c03e6192fb26", 1258 | "shasum": "" 1259 | }, 1260 | "require": { 1261 | "php": ">=5.6", 1262 | "sebastian/recursion-context": "~1.0" 1263 | }, 1264 | "require-dev": { 1265 | "phpunit/phpunit": "~5" 1266 | }, 1267 | "type": "library", 1268 | "extra": { 1269 | "branch-alias": { 1270 | "dev-master": "1.0.x-dev" 1271 | } 1272 | }, 1273 | "autoload": { 1274 | "classmap": [ 1275 | "src/" 1276 | ] 1277 | }, 1278 | "notification-url": "https://packagist.org/downloads/", 1279 | "license": [ 1280 | "BSD-3-Clause" 1281 | ], 1282 | "authors": [ 1283 | { 1284 | "name": "Sebastian Bergmann", 1285 | "email": "sebastian@phpunit.de" 1286 | } 1287 | ], 1288 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1289 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1290 | "time": "2016-01-28 13:25:10" 1291 | }, 1292 | { 1293 | "name": "sebastian/recursion-context", 1294 | "version": "1.0.2", 1295 | "source": { 1296 | "type": "git", 1297 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1298 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791" 1299 | }, 1300 | "dist": { 1301 | "type": "zip", 1302 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", 1303 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791", 1304 | "shasum": "" 1305 | }, 1306 | "require": { 1307 | "php": ">=5.3.3" 1308 | }, 1309 | "require-dev": { 1310 | "phpunit/phpunit": "~4.4" 1311 | }, 1312 | "type": "library", 1313 | "extra": { 1314 | "branch-alias": { 1315 | "dev-master": "1.0.x-dev" 1316 | } 1317 | }, 1318 | "autoload": { 1319 | "classmap": [ 1320 | "src/" 1321 | ] 1322 | }, 1323 | "notification-url": "https://packagist.org/downloads/", 1324 | "license": [ 1325 | "BSD-3-Clause" 1326 | ], 1327 | "authors": [ 1328 | { 1329 | "name": "Jeff Welch", 1330 | "email": "whatthejeff@gmail.com" 1331 | }, 1332 | { 1333 | "name": "Sebastian Bergmann", 1334 | "email": "sebastian@phpunit.de" 1335 | }, 1336 | { 1337 | "name": "Adam Harvey", 1338 | "email": "aharvey@php.net" 1339 | } 1340 | ], 1341 | "description": "Provides functionality to recursively process PHP variables", 1342 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1343 | "time": "2015-11-11 19:50:13" 1344 | }, 1345 | { 1346 | "name": "sebastian/resource-operations", 1347 | "version": "1.0.0", 1348 | "source": { 1349 | "type": "git", 1350 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 1351 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" 1352 | }, 1353 | "dist": { 1354 | "type": "zip", 1355 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 1356 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 1357 | "shasum": "" 1358 | }, 1359 | "require": { 1360 | "php": ">=5.6.0" 1361 | }, 1362 | "type": "library", 1363 | "extra": { 1364 | "branch-alias": { 1365 | "dev-master": "1.0.x-dev" 1366 | } 1367 | }, 1368 | "autoload": { 1369 | "classmap": [ 1370 | "src/" 1371 | ] 1372 | }, 1373 | "notification-url": "https://packagist.org/downloads/", 1374 | "license": [ 1375 | "BSD-3-Clause" 1376 | ], 1377 | "authors": [ 1378 | { 1379 | "name": "Sebastian Bergmann", 1380 | "email": "sebastian@phpunit.de" 1381 | } 1382 | ], 1383 | "description": "Provides a list of PHP built-in functions that operate on resources", 1384 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 1385 | "time": "2015-07-28 20:34:47" 1386 | }, 1387 | { 1388 | "name": "sebastian/version", 1389 | "version": "2.0.1", 1390 | "source": { 1391 | "type": "git", 1392 | "url": "https://github.com/sebastianbergmann/version.git", 1393 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 1394 | }, 1395 | "dist": { 1396 | "type": "zip", 1397 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 1398 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 1399 | "shasum": "" 1400 | }, 1401 | "require": { 1402 | "php": ">=5.6" 1403 | }, 1404 | "type": "library", 1405 | "extra": { 1406 | "branch-alias": { 1407 | "dev-master": "2.0.x-dev" 1408 | } 1409 | }, 1410 | "autoload": { 1411 | "classmap": [ 1412 | "src/" 1413 | ] 1414 | }, 1415 | "notification-url": "https://packagist.org/downloads/", 1416 | "license": [ 1417 | "BSD-3-Clause" 1418 | ], 1419 | "authors": [ 1420 | { 1421 | "name": "Sebastian Bergmann", 1422 | "email": "sebastian@phpunit.de", 1423 | "role": "lead" 1424 | } 1425 | ], 1426 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1427 | "homepage": "https://github.com/sebastianbergmann/version", 1428 | "time": "2016-10-03 07:35:21" 1429 | }, 1430 | { 1431 | "name": "squizlabs/php_codesniffer", 1432 | "version": "2.7.1", 1433 | "source": { 1434 | "type": "git", 1435 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 1436 | "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f" 1437 | }, 1438 | "dist": { 1439 | "type": "zip", 1440 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9b324f3a1132459a7274a0ace2e1b766ba80930f", 1441 | "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f", 1442 | "shasum": "" 1443 | }, 1444 | "require": { 1445 | "ext-simplexml": "*", 1446 | "ext-tokenizer": "*", 1447 | "ext-xmlwriter": "*", 1448 | "php": ">=5.1.2" 1449 | }, 1450 | "require-dev": { 1451 | "phpunit/phpunit": "~4.0" 1452 | }, 1453 | "bin": [ 1454 | "scripts/phpcs", 1455 | "scripts/phpcbf" 1456 | ], 1457 | "type": "library", 1458 | "extra": { 1459 | "branch-alias": { 1460 | "dev-master": "2.x-dev" 1461 | } 1462 | }, 1463 | "autoload": { 1464 | "classmap": [ 1465 | "CodeSniffer.php", 1466 | "CodeSniffer/CLI.php", 1467 | "CodeSniffer/Exception.php", 1468 | "CodeSniffer/File.php", 1469 | "CodeSniffer/Fixer.php", 1470 | "CodeSniffer/Report.php", 1471 | "CodeSniffer/Reporting.php", 1472 | "CodeSniffer/Sniff.php", 1473 | "CodeSniffer/Tokens.php", 1474 | "CodeSniffer/Reports/", 1475 | "CodeSniffer/Tokenizers/", 1476 | "CodeSniffer/DocGenerators/", 1477 | "CodeSniffer/Standards/AbstractPatternSniff.php", 1478 | "CodeSniffer/Standards/AbstractScopeSniff.php", 1479 | "CodeSniffer/Standards/AbstractVariableSniff.php", 1480 | "CodeSniffer/Standards/IncorrectPatternException.php", 1481 | "CodeSniffer/Standards/Generic/Sniffs/", 1482 | "CodeSniffer/Standards/MySource/Sniffs/", 1483 | "CodeSniffer/Standards/PEAR/Sniffs/", 1484 | "CodeSniffer/Standards/PSR1/Sniffs/", 1485 | "CodeSniffer/Standards/PSR2/Sniffs/", 1486 | "CodeSniffer/Standards/Squiz/Sniffs/", 1487 | "CodeSniffer/Standards/Zend/Sniffs/" 1488 | ] 1489 | }, 1490 | "notification-url": "https://packagist.org/downloads/", 1491 | "license": [ 1492 | "BSD-3-Clause" 1493 | ], 1494 | "authors": [ 1495 | { 1496 | "name": "Greg Sherwood", 1497 | "role": "lead" 1498 | } 1499 | ], 1500 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 1501 | "homepage": "http://www.squizlabs.com/php-codesniffer", 1502 | "keywords": [ 1503 | "phpcs", 1504 | "standards" 1505 | ], 1506 | "time": "2016-11-30 04:02:31" 1507 | }, 1508 | { 1509 | "name": "symfony/yaml", 1510 | "version": "v3.2.1", 1511 | "source": { 1512 | "type": "git", 1513 | "url": "https://github.com/symfony/yaml.git", 1514 | "reference": "a7095af4b97a0955f85c8989106c249fa649011f" 1515 | }, 1516 | "dist": { 1517 | "type": "zip", 1518 | "url": "https://api.github.com/repos/symfony/yaml/zipball/a7095af4b97a0955f85c8989106c249fa649011f", 1519 | "reference": "a7095af4b97a0955f85c8989106c249fa649011f", 1520 | "shasum": "" 1521 | }, 1522 | "require": { 1523 | "php": ">=5.5.9" 1524 | }, 1525 | "require-dev": { 1526 | "symfony/console": "~2.8|~3.0" 1527 | }, 1528 | "suggest": { 1529 | "symfony/console": "For validating YAML files using the lint command" 1530 | }, 1531 | "type": "library", 1532 | "extra": { 1533 | "branch-alias": { 1534 | "dev-master": "3.2-dev" 1535 | } 1536 | }, 1537 | "autoload": { 1538 | "psr-4": { 1539 | "Symfony\\Component\\Yaml\\": "" 1540 | }, 1541 | "exclude-from-classmap": [ 1542 | "/Tests/" 1543 | ] 1544 | }, 1545 | "notification-url": "https://packagist.org/downloads/", 1546 | "license": [ 1547 | "MIT" 1548 | ], 1549 | "authors": [ 1550 | { 1551 | "name": "Fabien Potencier", 1552 | "email": "fabien@symfony.com" 1553 | }, 1554 | { 1555 | "name": "Symfony Community", 1556 | "homepage": "https://symfony.com/contributors" 1557 | } 1558 | ], 1559 | "description": "Symfony Yaml Component", 1560 | "homepage": "https://symfony.com", 1561 | "time": "2016-12-10 10:07:06" 1562 | }, 1563 | { 1564 | "name": "webmozart/assert", 1565 | "version": "1.2.0", 1566 | "source": { 1567 | "type": "git", 1568 | "url": "https://github.com/webmozart/assert.git", 1569 | "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" 1570 | }, 1571 | "dist": { 1572 | "type": "zip", 1573 | "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", 1574 | "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", 1575 | "shasum": "" 1576 | }, 1577 | "require": { 1578 | "php": "^5.3.3 || ^7.0" 1579 | }, 1580 | "require-dev": { 1581 | "phpunit/phpunit": "^4.6", 1582 | "sebastian/version": "^1.0.1" 1583 | }, 1584 | "type": "library", 1585 | "extra": { 1586 | "branch-alias": { 1587 | "dev-master": "1.3-dev" 1588 | } 1589 | }, 1590 | "autoload": { 1591 | "psr-4": { 1592 | "Webmozart\\Assert\\": "src/" 1593 | } 1594 | }, 1595 | "notification-url": "https://packagist.org/downloads/", 1596 | "license": [ 1597 | "MIT" 1598 | ], 1599 | "authors": [ 1600 | { 1601 | "name": "Bernhard Schussek", 1602 | "email": "bschussek@gmail.com" 1603 | } 1604 | ], 1605 | "description": "Assertions to validate method input/output with nice error messages.", 1606 | "keywords": [ 1607 | "assert", 1608 | "check", 1609 | "validate" 1610 | ], 1611 | "time": "2016-11-23 20:04:58" 1612 | } 1613 | ], 1614 | "aliases": [], 1615 | "minimum-stability": "dev", 1616 | "stability-flags": { 1617 | "squizlabs/php_codesniffer": 20 1618 | }, 1619 | "prefer-stable": true, 1620 | "prefer-lowest": false, 1621 | "platform": { 1622 | "php": ">=7.0.0" 1623 | }, 1624 | "platform-dev": [] 1625 | } 1626 | --------------------------------------------------------------------------------