├── .gitignore ├── config └── graceful-laravel-workers.php ├── phpunit.xml.dist ├── tests ├── TestCase.php └── WorkerTest.php ├── src ├── helpers.php ├── Providers │ └── GracefulLaravelWorkersServiceProvider.php └── Worker.php ├── composer.json ├── LICENSE.md ├── README.md └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | vendor/ 2 | coverage/ -------------------------------------------------------------------------------- /config/graceful-laravel-workers.php: -------------------------------------------------------------------------------- 1 | [ 5 | SIGINT, 6 | SIGTERM 7 | ] 8 | ]; 9 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | tests 14 | 15 | 16 | 17 | 18 | src 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | register(GracefulLaravelWorkersServiceProvider::class); 14 | 15 | // Load config files 16 | foreach (glob(dirname(__DIR__, 1) . '/config/*.php') as $file) { 17 | /** @noinspection PhpIncludeInspection */ 18 | $app['config']->set( 19 | pathinfo($file, PATHINFO_FILENAME), 20 | require $file 21 | ); 22 | } 23 | } 24 | 25 | public function tearDown() 26 | { 27 | \Mvdstam\GracefulLaravelWorkers\shutting_down(null, true); 28 | 29 | parent::tearDown(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/helpers.php: -------------------------------------------------------------------------------- 1 | app->singleton('queue.worker', function ($app) { 21 | return new Worker($app['queue'], $app['queue.failer'], $app['events']); 22 | }); 23 | } 24 | 25 | /** 26 | * @codeCoverageIgnore 27 | */ 28 | public function boot() 29 | { 30 | $publishedFiles = []; 31 | foreach (glob(realpath(dirname(__DIR__, 2).'/config') . '/*.php') as $file) { 32 | $publishedFiles[$file] = config_path(pathinfo($file, PATHINFO_BASENAME)); 33 | } 34 | 35 | $this->publishes($publishedFiles, 'graceful-laravel-workers'); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mvdstam/graceful-laravel-workers", 3 | "description": "Provides a way to stop Laravel Worker daemons (and jobs) gracefully.", 4 | "authors": [ 5 | { 6 | "name": "Max van der Stam", 7 | "email": "max@vanderstam.nl" 8 | } 9 | ], 10 | "keywords": [ 11 | "laravel", 12 | "queue", 13 | "workers", 14 | "graceful" 15 | ], 16 | "require": { 17 | "ext-pcntl": "*", 18 | "php": ">=5.6.0", 19 | "illuminate/queue": ">=5.0 <5.3" 20 | }, 21 | "require-dev": { 22 | "phpunit/phpunit": "^5.7", 23 | "mockery/mockery": "^0.9.7", 24 | "orchestra/testbench": "^3.2" 25 | }, 26 | "autoload": { 27 | "psr-4": { 28 | "Mvdstam\\GracefulLaravelWorkers\\": "src" 29 | }, 30 | "files": ["src/helpers.php"] 31 | }, 32 | "autoload-dev": { 33 | "psr-4": { 34 | "Mvdstam\\GracefulLaravelWorkers\\Tests\\": "tests" 35 | } 36 | }, 37 | "minimum-stability": "dev", 38 | "prefer-stable": true, 39 | "license": "MIT" 40 | } 41 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Max van der Stam 4 | 5 | > Permission is hereby granted, free of charge, to any person obtaining a copy 6 | > of this software and associated documentation files (the "Software"), to deal 7 | > in the Software without restriction, including without limitation the rights 8 | > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | > copies of the Software, and to permit persons to whom the Software is 10 | > furnished to do so, subject to the following conditions: 11 | > 12 | > The above copyright notice and this permission notice shall be included in 13 | > all copies or substantial portions of the Software. 14 | > 15 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | > THE SOFTWARE. -------------------------------------------------------------------------------- /src/Worker.php: -------------------------------------------------------------------------------- 1 | installSignalHandlers(); 16 | 17 | $lastRestart = $this->getTimestampOfLastQueueRestart(); 18 | 19 | while (true) { 20 | if (shutting_down()) { 21 | $this->stop(); 22 | return; 23 | } 24 | 25 | if ($this->daemonShouldRun()) { 26 | $this->runNextJobForDaemon( 27 | $connectionName, $queue, $delay, $sleep, $maxTries 28 | ); 29 | } else { 30 | $this->sleep($sleep); 31 | } 32 | 33 | if ($this->memoryExceeded($memory) || $this->queueShouldRestart($lastRestart)) { 34 | $this->stop(); 35 | return; 36 | } 37 | } 38 | } 39 | 40 | /** 41 | * Installs signal handlers for the current process 42 | * 43 | * @inheritdoc 44 | */ 45 | protected function installSignalHandlers() 46 | { 47 | foreach (config('graceful-laravel-workers.signals') as $signal) { 48 | pcntl_signal($signal, '\Mvdstam\GracefulLaravelWorkers\shutting_down'); 49 | } 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /tests/WorkerTest.php: -------------------------------------------------------------------------------- 1 | worker = Mockery::mock(Worker::class)->shouldAllowMockingProtectedMethods()->makePartial(); 27 | } 28 | 29 | /** 30 | * @param $signal 31 | * @dataProvider signalDataProvider 32 | */ 33 | public function testDaemonStopsWhenSignalsWereCaught($signal) 34 | { 35 | /** 36 | * @var Mock $workerMock 37 | */ 38 | $workerMock = $this->worker; 39 | 40 | $workerMock 41 | ->shouldReceive('daemonShouldRun') 42 | ->andReturnUsing(function() use ($signal) { 43 | if (!posix_kill(getmypid(), $signal)) { 44 | throw new Exception('Unable send POSIX signal to PHP process'); 45 | } 46 | 47 | return true; 48 | }); 49 | 50 | $workerMock 51 | ->shouldReceive('runNextJobForDaemon'); 52 | 53 | $workerMock 54 | ->shouldReceive('memoryExceeded') 55 | ->andReturn(false); 56 | 57 | $workerMock 58 | ->shouldReceive('queueShouldRestart') 59 | ->andReturn(false); 60 | 61 | $workerMock 62 | ->shouldReceive('stop') 63 | ->once(); 64 | 65 | $this->assertFalse(shutting_down()); 66 | 67 | $this->worker->daemon('phpunit'); 68 | 69 | $this->assertTrue(shutting_down()); 70 | 71 | $workerMock 72 | ->shouldHaveReceived('stop') 73 | ->once(); 74 | 75 | $workerMock 76 | ->shouldHaveReceived('runNextJobForDaemon') 77 | ->once(); 78 | } 79 | 80 | public function signalDataProvider() 81 | { 82 | return [ 83 | [SIGINT], 84 | [SIGTERM] 85 | ]; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Graceful Laravel Workers 2 | 3 | Stopping your Workers and Jobs without hurting your application. 4 | 5 | In many modern webapplications, many tasks are handled asynchronously through the use of some kind of queueing system and jobs. 6 | In Laravel and Lumen-based applications, this is possible through the use of the `illuminate/queue` component. 7 | This package expands a little bit upon that component by making it possible to *gracefully* stop Workers (or any kind of process for that matter) through the use of [Posix Signals](https://en.wikipedia.org/wiki/Unix_signal). 8 | This also enables your queue workers to be run inside of [Docker containers](https://www.docker.com/) and be stopped in a graceful and clean way, since Docker utilizes posix signals to stop running containers when, for example, updating them. 9 | 10 | Finally, gracefully cleaning up running processes is a crucial part of any [12-factor application](https://12factor.net/). 11 | 12 | ### Why is this important? 13 | When a queue worker is started through `php artisan queue:work --daemon`, a *long-running* PHP process is started. 14 | This process will run endlessly until it is stopped by either external sources (posix signals) or internal sources (the process crashes or simply stops because of an `exit;`). 15 | 16 | Usually, these PHP processes are stopped externally by sending `SIGTERM` or `SIGINT` signals to the underlying processes. 17 | The default behaviour of PHP is to stop the process **immediately**, which means that any kind of important process is interrupted and possibly your data is lost. 18 | By *trapping* these signals with the use of the [PCNTL](http://php.net/manual/en/book.pcntl.php) extension, we can *catch* these signals and define custom behaviour when this happens. 19 | This is especially interesting when running queue workers within Docker containers, since containers are ephemeral by design and can (should) be replaced at any time. 20 | 21 | ### shutting_down() 22 | The most important aspect of this package is the function `shutting_down()`. In your long-running jobs, simply call `shutting_down()` in each iteration. 23 | This function returns `TRUE` when a signal has been caught and your application should prepare to shut down immediately. For example: 24 | 25 | ```php 26 | shutDown(); 39 | } 40 | 41 | $this->handleIteration(); 42 | } 43 | } 44 | 45 | protected function shutDown() 46 | { 47 | // Do some kind of cleaning up, write to log, etc.. 48 | echo 'Saving state and shutting down!'; 49 | 50 | /* 51 | * Sometimes, this job may be continued later on if necessary. Simply dispatch a new instance 52 | * unto the queue to be picked up later. 53 | */ 54 | dispatch(new static); 55 | } 56 | 57 | protected function handleIteration() 58 | { 59 | // Do something expensive, such as working on large data sets 60 | } 61 | } 62 | ``` 63 | 64 | ## Version compatibility 65 | This package is compatible with Lumen/Laravel 5.1 (LTS) and Lumen/Laravel 5.2. 66 | Version 5.3 is not supported at the time of writing. 67 | 68 | ## Requirements 69 | 70 | - PHP >=5.6 71 | - The [PCNTL](http://php.net/manual/en/book.pcntl.php) extension 72 | 73 | ## Install 74 | Via composer 75 | 76 | ```bash 77 | $ composer require mvdstam/graceful-laravel-workers 78 | ``` 79 | 80 | Add the `GracefulLaravelWorkersServiceProvider` to your `app.php`: 81 | 82 | ```php 83 | [..] 84 | Illuminate\Translation\TranslationServiceProvider::class, 85 | Illuminate\Validation\ValidationServiceProvider::class, 86 | Illuminate\View\ViewServiceProvider::class, 87 | 88 | /* 89 | * Package Service Providers 90 | */ 91 | Mvdstam\GracefulLaravelWorkers\Providers\GracefulLaravelWorkersServiceProvider::class, 92 | ``` 93 | 94 | In order for the package to be correctly initialized, please make sure to add the `GracefulLaravelWorkersServiceProvider` **after** the `Illuminate\Queue\QueueServiceProvider`. 95 | 96 | Finally, run `php artisan vendor:publish`. 97 | 98 | ## Usage 99 | Start your worker with `php artisan queue:work --daemon` and try sending `SIGINT` or `SIGTERM` signals to that process when it picks up a job. 100 | When the process is in the foreground, simply press `ctrl+c` to send a `SIGINT`. 101 | 102 | ## Gotchas 103 | - Always run the queue worker with the `--daemon` flag. 104 | This package only adds to the behaviour of the queue worker when it runs in daemon mode. 105 | - Don't do an `exit;` in your jobs when you're done cleaning up. Simply return from the `handle()` function and let the `Worker` stop the process. 106 | This allows your application to have a consistent point of entry as well as an exitpoint. -------------------------------------------------------------------------------- /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": "bc00d0363b8e722e3f2f7d97eaa866da", 8 | "content-hash": "f8026c24ad4f5f1dc67e4f736bfdb71c", 9 | "packages": [ 10 | { 11 | "name": "classpreloader/classpreloader", 12 | "version": "3.1.0", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/ClassPreloader/ClassPreloader.git", 16 | "reference": "bc7206aa892b5a33f4680421b69b191efd32b096" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/bc7206aa892b5a33f4680421b69b191efd32b096", 21 | "reference": "bc7206aa892b5a33f4680421b69b191efd32b096", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "nikic/php-parser": "^1.0|^2.0|^3.0", 26 | "php": ">=5.5.9" 27 | }, 28 | "require-dev": { 29 | "phpunit/phpunit": "^4.8|^5.0" 30 | }, 31 | "type": "library", 32 | "extra": { 33 | "branch-alias": { 34 | "dev-master": "3.1-dev" 35 | } 36 | }, 37 | "autoload": { 38 | "psr-4": { 39 | "ClassPreloader\\": "src/" 40 | } 41 | }, 42 | "notification-url": "https://packagist.org/downloads/", 43 | "license": [ 44 | "MIT" 45 | ], 46 | "authors": [ 47 | { 48 | "name": "Michael Dowling", 49 | "email": "mtdowling@gmail.com" 50 | }, 51 | { 52 | "name": "Graham Campbell", 53 | "email": "graham@alt-three.com" 54 | } 55 | ], 56 | "description": "Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case", 57 | "keywords": [ 58 | "autoload", 59 | "class", 60 | "preload" 61 | ], 62 | "time": "2016-09-16 12:50:15" 63 | }, 64 | { 65 | "name": "dnoegel/php-xdg-base-dir", 66 | "version": "0.1", 67 | "source": { 68 | "type": "git", 69 | "url": "https://github.com/dnoegel/php-xdg-base-dir.git", 70 | "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a" 71 | }, 72 | "dist": { 73 | "type": "zip", 74 | "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a", 75 | "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a", 76 | "shasum": "" 77 | }, 78 | "require": { 79 | "php": ">=5.3.2" 80 | }, 81 | "require-dev": { 82 | "phpunit/phpunit": "@stable" 83 | }, 84 | "type": "project", 85 | "autoload": { 86 | "psr-4": { 87 | "XdgBaseDir\\": "src/" 88 | } 89 | }, 90 | "notification-url": "https://packagist.org/downloads/", 91 | "license": [ 92 | "MIT" 93 | ], 94 | "description": "implementation of xdg base directory specification for php", 95 | "time": "2014-10-24 07:27:01" 96 | }, 97 | { 98 | "name": "doctrine/inflector", 99 | "version": "v1.1.0", 100 | "source": { 101 | "type": "git", 102 | "url": "https://github.com/doctrine/inflector.git", 103 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" 104 | }, 105 | "dist": { 106 | "type": "zip", 107 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", 108 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", 109 | "shasum": "" 110 | }, 111 | "require": { 112 | "php": ">=5.3.2" 113 | }, 114 | "require-dev": { 115 | "phpunit/phpunit": "4.*" 116 | }, 117 | "type": "library", 118 | "extra": { 119 | "branch-alias": { 120 | "dev-master": "1.1.x-dev" 121 | } 122 | }, 123 | "autoload": { 124 | "psr-0": { 125 | "Doctrine\\Common\\Inflector\\": "lib/" 126 | } 127 | }, 128 | "notification-url": "https://packagist.org/downloads/", 129 | "license": [ 130 | "MIT" 131 | ], 132 | "authors": [ 133 | { 134 | "name": "Roman Borschel", 135 | "email": "roman@code-factory.org" 136 | }, 137 | { 138 | "name": "Benjamin Eberlei", 139 | "email": "kontakt@beberlei.de" 140 | }, 141 | { 142 | "name": "Guilherme Blanco", 143 | "email": "guilhermeblanco@gmail.com" 144 | }, 145 | { 146 | "name": "Jonathan Wage", 147 | "email": "jonwage@gmail.com" 148 | }, 149 | { 150 | "name": "Johannes Schmitt", 151 | "email": "schmittjoh@gmail.com" 152 | } 153 | ], 154 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 155 | "homepage": "http://www.doctrine-project.org", 156 | "keywords": [ 157 | "inflection", 158 | "pluralize", 159 | "singularize", 160 | "string" 161 | ], 162 | "time": "2015-11-06 14:35:42" 163 | }, 164 | { 165 | "name": "jakub-onderka/php-console-color", 166 | "version": "0.1", 167 | "source": { 168 | "type": "git", 169 | "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", 170 | "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" 171 | }, 172 | "dist": { 173 | "type": "zip", 174 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", 175 | "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", 176 | "shasum": "" 177 | }, 178 | "require": { 179 | "php": ">=5.3.2" 180 | }, 181 | "require-dev": { 182 | "jakub-onderka/php-code-style": "1.0", 183 | "jakub-onderka/php-parallel-lint": "0.*", 184 | "jakub-onderka/php-var-dump-check": "0.*", 185 | "phpunit/phpunit": "3.7.*", 186 | "squizlabs/php_codesniffer": "1.*" 187 | }, 188 | "type": "library", 189 | "autoload": { 190 | "psr-0": { 191 | "JakubOnderka\\PhpConsoleColor": "src/" 192 | } 193 | }, 194 | "notification-url": "https://packagist.org/downloads/", 195 | "license": [ 196 | "BSD-2-Clause" 197 | ], 198 | "authors": [ 199 | { 200 | "name": "Jakub Onderka", 201 | "email": "jakub.onderka@gmail.com", 202 | "homepage": "http://www.acci.cz" 203 | } 204 | ], 205 | "time": "2014-04-08 15:00:19" 206 | }, 207 | { 208 | "name": "jakub-onderka/php-console-highlighter", 209 | "version": "v0.3.2", 210 | "source": { 211 | "type": "git", 212 | "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", 213 | "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" 214 | }, 215 | "dist": { 216 | "type": "zip", 217 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", 218 | "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", 219 | "shasum": "" 220 | }, 221 | "require": { 222 | "jakub-onderka/php-console-color": "~0.1", 223 | "php": ">=5.3.0" 224 | }, 225 | "require-dev": { 226 | "jakub-onderka/php-code-style": "~1.0", 227 | "jakub-onderka/php-parallel-lint": "~0.5", 228 | "jakub-onderka/php-var-dump-check": "~0.1", 229 | "phpunit/phpunit": "~4.0", 230 | "squizlabs/php_codesniffer": "~1.5" 231 | }, 232 | "type": "library", 233 | "autoload": { 234 | "psr-0": { 235 | "JakubOnderka\\PhpConsoleHighlighter": "src/" 236 | } 237 | }, 238 | "notification-url": "https://packagist.org/downloads/", 239 | "license": [ 240 | "MIT" 241 | ], 242 | "authors": [ 243 | { 244 | "name": "Jakub Onderka", 245 | "email": "acci@acci.cz", 246 | "homepage": "http://www.acci.cz/" 247 | } 248 | ], 249 | "time": "2015-04-20 18:58:01" 250 | }, 251 | { 252 | "name": "jeremeamia/SuperClosure", 253 | "version": "2.3.0", 254 | "source": { 255 | "type": "git", 256 | "url": "https://github.com/jeremeamia/super_closure.git", 257 | "reference": "443c3df3207f176a1b41576ee2a66968a507b3db" 258 | }, 259 | "dist": { 260 | "type": "zip", 261 | "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/443c3df3207f176a1b41576ee2a66968a507b3db", 262 | "reference": "443c3df3207f176a1b41576ee2a66968a507b3db", 263 | "shasum": "" 264 | }, 265 | "require": { 266 | "nikic/php-parser": "^1.2|^2.0|^3.0", 267 | "php": ">=5.4", 268 | "symfony/polyfill-php56": "^1.0" 269 | }, 270 | "require-dev": { 271 | "phpunit/phpunit": "^4.0|^5.0" 272 | }, 273 | "type": "library", 274 | "extra": { 275 | "branch-alias": { 276 | "dev-master": "2.3-dev" 277 | } 278 | }, 279 | "autoload": { 280 | "psr-4": { 281 | "SuperClosure\\": "src/" 282 | } 283 | }, 284 | "notification-url": "https://packagist.org/downloads/", 285 | "license": [ 286 | "MIT" 287 | ], 288 | "authors": [ 289 | { 290 | "name": "Jeremy Lindblom", 291 | "email": "jeremeamia@gmail.com", 292 | "homepage": "https://github.com/jeremeamia", 293 | "role": "Developer" 294 | } 295 | ], 296 | "description": "Serialize Closure objects, including their context and binding", 297 | "homepage": "https://github.com/jeremeamia/super_closure", 298 | "keywords": [ 299 | "closure", 300 | "function", 301 | "lambda", 302 | "parser", 303 | "serializable", 304 | "serialize", 305 | "tokenizer" 306 | ], 307 | "time": "2016-12-07 09:37:55" 308 | }, 309 | { 310 | "name": "laravel/framework", 311 | "version": "v5.2.45", 312 | "source": { 313 | "type": "git", 314 | "url": "https://github.com/laravel/framework.git", 315 | "reference": "2a79f920d5584ec6df7cf996d922a742d11095d1" 316 | }, 317 | "dist": { 318 | "type": "zip", 319 | "url": "https://api.github.com/repos/laravel/framework/zipball/2a79f920d5584ec6df7cf996d922a742d11095d1", 320 | "reference": "2a79f920d5584ec6df7cf996d922a742d11095d1", 321 | "shasum": "" 322 | }, 323 | "require": { 324 | "classpreloader/classpreloader": "~3.0", 325 | "doctrine/inflector": "~1.0", 326 | "ext-mbstring": "*", 327 | "ext-openssl": "*", 328 | "jeremeamia/superclosure": "~2.2", 329 | "league/flysystem": "~1.0", 330 | "monolog/monolog": "~1.11", 331 | "mtdowling/cron-expression": "~1.0", 332 | "nesbot/carbon": "~1.20", 333 | "paragonie/random_compat": "~1.4", 334 | "php": ">=5.5.9", 335 | "psy/psysh": "0.7.*", 336 | "swiftmailer/swiftmailer": "~5.1", 337 | "symfony/console": "2.8.*|3.0.*", 338 | "symfony/debug": "2.8.*|3.0.*", 339 | "symfony/finder": "2.8.*|3.0.*", 340 | "symfony/http-foundation": "2.8.*|3.0.*", 341 | "symfony/http-kernel": "2.8.*|3.0.*", 342 | "symfony/polyfill-php56": "~1.0", 343 | "symfony/process": "2.8.*|3.0.*", 344 | "symfony/routing": "2.8.*|3.0.*", 345 | "symfony/translation": "2.8.*|3.0.*", 346 | "symfony/var-dumper": "2.8.*|3.0.*", 347 | "vlucas/phpdotenv": "~2.2" 348 | }, 349 | "replace": { 350 | "illuminate/auth": "self.version", 351 | "illuminate/broadcasting": "self.version", 352 | "illuminate/bus": "self.version", 353 | "illuminate/cache": "self.version", 354 | "illuminate/config": "self.version", 355 | "illuminate/console": "self.version", 356 | "illuminate/container": "self.version", 357 | "illuminate/contracts": "self.version", 358 | "illuminate/cookie": "self.version", 359 | "illuminate/database": "self.version", 360 | "illuminate/encryption": "self.version", 361 | "illuminate/events": "self.version", 362 | "illuminate/exception": "self.version", 363 | "illuminate/filesystem": "self.version", 364 | "illuminate/hashing": "self.version", 365 | "illuminate/http": "self.version", 366 | "illuminate/log": "self.version", 367 | "illuminate/mail": "self.version", 368 | "illuminate/pagination": "self.version", 369 | "illuminate/pipeline": "self.version", 370 | "illuminate/queue": "self.version", 371 | "illuminate/redis": "self.version", 372 | "illuminate/routing": "self.version", 373 | "illuminate/session": "self.version", 374 | "illuminate/support": "self.version", 375 | "illuminate/translation": "self.version", 376 | "illuminate/validation": "self.version", 377 | "illuminate/view": "self.version", 378 | "tightenco/collect": "self.version" 379 | }, 380 | "require-dev": { 381 | "aws/aws-sdk-php": "~3.0", 382 | "mockery/mockery": "~0.9.4", 383 | "pda/pheanstalk": "~3.0", 384 | "phpunit/phpunit": "~4.1", 385 | "predis/predis": "~1.0", 386 | "symfony/css-selector": "2.8.*|3.0.*", 387 | "symfony/dom-crawler": "2.8.*|3.0.*" 388 | }, 389 | "suggest": { 390 | "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", 391 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).", 392 | "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", 393 | "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).", 394 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", 395 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", 396 | "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", 397 | "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", 398 | "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).", 399 | "symfony/css-selector": "Required to use some of the crawler integration testing tools (2.8.*|3.0.*).", 400 | "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (2.8.*|3.0.*).", 401 | "symfony/psr-http-message-bridge": "Required to use psr7 bridging features (0.2.*)." 402 | }, 403 | "type": "library", 404 | "extra": { 405 | "branch-alias": { 406 | "dev-master": "5.2-dev" 407 | } 408 | }, 409 | "autoload": { 410 | "classmap": [ 411 | "src/Illuminate/Queue/IlluminateQueueClosure.php" 412 | ], 413 | "files": [ 414 | "src/Illuminate/Foundation/helpers.php", 415 | "src/Illuminate/Support/helpers.php" 416 | ], 417 | "psr-4": { 418 | "Illuminate\\": "src/Illuminate/" 419 | } 420 | }, 421 | "notification-url": "https://packagist.org/downloads/", 422 | "license": [ 423 | "MIT" 424 | ], 425 | "authors": [ 426 | { 427 | "name": "Taylor Otwell", 428 | "email": "taylorotwell@gmail.com" 429 | } 430 | ], 431 | "description": "The Laravel Framework.", 432 | "homepage": "http://laravel.com", 433 | "keywords": [ 434 | "framework", 435 | "laravel" 436 | ], 437 | "time": "2016-08-26 11:44:52" 438 | }, 439 | { 440 | "name": "league/flysystem", 441 | "version": "1.0.32", 442 | "source": { 443 | "type": "git", 444 | "url": "https://github.com/thephpleague/flysystem.git", 445 | "reference": "1b5c4a0031697f46e779a9d1b309c2e1b24daeab" 446 | }, 447 | "dist": { 448 | "type": "zip", 449 | "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1b5c4a0031697f46e779a9d1b309c2e1b24daeab", 450 | "reference": "1b5c4a0031697f46e779a9d1b309c2e1b24daeab", 451 | "shasum": "" 452 | }, 453 | "require": { 454 | "php": ">=5.5.9" 455 | }, 456 | "conflict": { 457 | "league/flysystem-sftp": "<1.0.6" 458 | }, 459 | "require-dev": { 460 | "ext-fileinfo": "*", 461 | "mockery/mockery": "~0.9", 462 | "phpspec/phpspec": "^2.2", 463 | "phpunit/phpunit": "~4.8" 464 | }, 465 | "suggest": { 466 | "ext-fileinfo": "Required for MimeType", 467 | "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", 468 | "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", 469 | "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", 470 | "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", 471 | "league/flysystem-copy": "Allows you to use Copy.com storage", 472 | "league/flysystem-dropbox": "Allows you to use Dropbox storage", 473 | "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", 474 | "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", 475 | "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", 476 | "league/flysystem-webdav": "Allows you to use WebDAV storage", 477 | "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter" 478 | }, 479 | "type": "library", 480 | "extra": { 481 | "branch-alias": { 482 | "dev-master": "1.1-dev" 483 | } 484 | }, 485 | "autoload": { 486 | "psr-4": { 487 | "League\\Flysystem\\": "src/" 488 | } 489 | }, 490 | "notification-url": "https://packagist.org/downloads/", 491 | "license": [ 492 | "MIT" 493 | ], 494 | "authors": [ 495 | { 496 | "name": "Frank de Jonge", 497 | "email": "info@frenky.net" 498 | } 499 | ], 500 | "description": "Filesystem abstraction: Many filesystems, one API.", 501 | "keywords": [ 502 | "Cloud Files", 503 | "WebDAV", 504 | "abstraction", 505 | "aws", 506 | "cloud", 507 | "copy.com", 508 | "dropbox", 509 | "file systems", 510 | "files", 511 | "filesystem", 512 | "filesystems", 513 | "ftp", 514 | "rackspace", 515 | "remote", 516 | "s3", 517 | "sftp", 518 | "storage" 519 | ], 520 | "time": "2016-10-19 20:38:46" 521 | }, 522 | { 523 | "name": "monolog/monolog", 524 | "version": "1.22.0", 525 | "source": { 526 | "type": "git", 527 | "url": "https://github.com/Seldaek/monolog.git", 528 | "reference": "bad29cb8d18ab0315e6c477751418a82c850d558" 529 | }, 530 | "dist": { 531 | "type": "zip", 532 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bad29cb8d18ab0315e6c477751418a82c850d558", 533 | "reference": "bad29cb8d18ab0315e6c477751418a82c850d558", 534 | "shasum": "" 535 | }, 536 | "require": { 537 | "php": ">=5.3.0", 538 | "psr/log": "~1.0" 539 | }, 540 | "provide": { 541 | "psr/log-implementation": "1.0.0" 542 | }, 543 | "require-dev": { 544 | "aws/aws-sdk-php": "^2.4.9 || ^3.0", 545 | "doctrine/couchdb": "~1.0@dev", 546 | "graylog2/gelf-php": "~1.0", 547 | "jakub-onderka/php-parallel-lint": "0.9", 548 | "php-amqplib/php-amqplib": "~2.4", 549 | "php-console/php-console": "^3.1.3", 550 | "phpunit/phpunit": "~4.5", 551 | "phpunit/phpunit-mock-objects": "2.3.0", 552 | "ruflin/elastica": ">=0.90 <3.0", 553 | "sentry/sentry": "^0.13", 554 | "swiftmailer/swiftmailer": "~5.3" 555 | }, 556 | "suggest": { 557 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 558 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 559 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 560 | "ext-mongo": "Allow sending log messages to a MongoDB server", 561 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", 562 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", 563 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", 564 | "php-console/php-console": "Allow sending log messages to Google Chrome", 565 | "rollbar/rollbar": "Allow sending log messages to Rollbar", 566 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server", 567 | "sentry/sentry": "Allow sending log messages to a Sentry server" 568 | }, 569 | "type": "library", 570 | "extra": { 571 | "branch-alias": { 572 | "dev-master": "2.0.x-dev" 573 | } 574 | }, 575 | "autoload": { 576 | "psr-4": { 577 | "Monolog\\": "src/Monolog" 578 | } 579 | }, 580 | "notification-url": "https://packagist.org/downloads/", 581 | "license": [ 582 | "MIT" 583 | ], 584 | "authors": [ 585 | { 586 | "name": "Jordi Boggiano", 587 | "email": "j.boggiano@seld.be", 588 | "homepage": "http://seld.be" 589 | } 590 | ], 591 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 592 | "homepage": "http://github.com/Seldaek/monolog", 593 | "keywords": [ 594 | "log", 595 | "logging", 596 | "psr-3" 597 | ], 598 | "time": "2016-11-26 00:15:39" 599 | }, 600 | { 601 | "name": "mtdowling/cron-expression", 602 | "version": "v1.1.0", 603 | "source": { 604 | "type": "git", 605 | "url": "https://github.com/mtdowling/cron-expression.git", 606 | "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5" 607 | }, 608 | "dist": { 609 | "type": "zip", 610 | "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", 611 | "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", 612 | "shasum": "" 613 | }, 614 | "require": { 615 | "php": ">=5.3.2" 616 | }, 617 | "require-dev": { 618 | "phpunit/phpunit": "~4.0|~5.0" 619 | }, 620 | "type": "library", 621 | "autoload": { 622 | "psr-0": { 623 | "Cron": "src/" 624 | } 625 | }, 626 | "notification-url": "https://packagist.org/downloads/", 627 | "license": [ 628 | "MIT" 629 | ], 630 | "authors": [ 631 | { 632 | "name": "Michael Dowling", 633 | "email": "mtdowling@gmail.com", 634 | "homepage": "https://github.com/mtdowling" 635 | } 636 | ], 637 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", 638 | "keywords": [ 639 | "cron", 640 | "schedule" 641 | ], 642 | "time": "2016-01-26 21:23:30" 643 | }, 644 | { 645 | "name": "nesbot/carbon", 646 | "version": "1.21.0", 647 | "source": { 648 | "type": "git", 649 | "url": "https://github.com/briannesbitt/Carbon.git", 650 | "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7" 651 | }, 652 | "dist": { 653 | "type": "zip", 654 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7", 655 | "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7", 656 | "shasum": "" 657 | }, 658 | "require": { 659 | "php": ">=5.3.0", 660 | "symfony/translation": "~2.6|~3.0" 661 | }, 662 | "require-dev": { 663 | "phpunit/phpunit": "~4.0|~5.0" 664 | }, 665 | "type": "library", 666 | "autoload": { 667 | "psr-4": { 668 | "Carbon\\": "src/Carbon/" 669 | } 670 | }, 671 | "notification-url": "https://packagist.org/downloads/", 672 | "license": [ 673 | "MIT" 674 | ], 675 | "authors": [ 676 | { 677 | "name": "Brian Nesbitt", 678 | "email": "brian@nesbot.com", 679 | "homepage": "http://nesbot.com" 680 | } 681 | ], 682 | "description": "A simple API extension for DateTime.", 683 | "homepage": "http://carbon.nesbot.com", 684 | "keywords": [ 685 | "date", 686 | "datetime", 687 | "time" 688 | ], 689 | "time": "2015-11-04 20:07:17" 690 | }, 691 | { 692 | "name": "nikic/php-parser", 693 | "version": "v2.1.1", 694 | "source": { 695 | "type": "git", 696 | "url": "https://github.com/nikic/PHP-Parser.git", 697 | "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0" 698 | }, 699 | "dist": { 700 | "type": "zip", 701 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4dd659edadffdc2143e4753df655d866dbfeedf0", 702 | "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0", 703 | "shasum": "" 704 | }, 705 | "require": { 706 | "ext-tokenizer": "*", 707 | "php": ">=5.4" 708 | }, 709 | "require-dev": { 710 | "phpunit/phpunit": "~4.0" 711 | }, 712 | "bin": [ 713 | "bin/php-parse" 714 | ], 715 | "type": "library", 716 | "extra": { 717 | "branch-alias": { 718 | "dev-master": "2.1-dev" 719 | } 720 | }, 721 | "autoload": { 722 | "psr-4": { 723 | "PhpParser\\": "lib/PhpParser" 724 | } 725 | }, 726 | "notification-url": "https://packagist.org/downloads/", 727 | "license": [ 728 | "BSD-3-Clause" 729 | ], 730 | "authors": [ 731 | { 732 | "name": "Nikita Popov" 733 | } 734 | ], 735 | "description": "A PHP parser written in PHP", 736 | "keywords": [ 737 | "parser", 738 | "php" 739 | ], 740 | "time": "2016-09-16 12:04:44" 741 | }, 742 | { 743 | "name": "paragonie/random_compat", 744 | "version": "v1.4.1", 745 | "source": { 746 | "type": "git", 747 | "url": "https://github.com/paragonie/random_compat.git", 748 | "reference": "c7e26a21ba357863de030f0b9e701c7d04593774" 749 | }, 750 | "dist": { 751 | "type": "zip", 752 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/c7e26a21ba357863de030f0b9e701c7d04593774", 753 | "reference": "c7e26a21ba357863de030f0b9e701c7d04593774", 754 | "shasum": "" 755 | }, 756 | "require": { 757 | "php": ">=5.2.0" 758 | }, 759 | "require-dev": { 760 | "phpunit/phpunit": "4.*|5.*" 761 | }, 762 | "suggest": { 763 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 764 | }, 765 | "type": "library", 766 | "autoload": { 767 | "files": [ 768 | "lib/random.php" 769 | ] 770 | }, 771 | "notification-url": "https://packagist.org/downloads/", 772 | "license": [ 773 | "MIT" 774 | ], 775 | "authors": [ 776 | { 777 | "name": "Paragon Initiative Enterprises", 778 | "email": "security@paragonie.com", 779 | "homepage": "https://paragonie.com" 780 | } 781 | ], 782 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", 783 | "keywords": [ 784 | "csprng", 785 | "pseudorandom", 786 | "random" 787 | ], 788 | "time": "2016-03-18 20:34:03" 789 | }, 790 | { 791 | "name": "psr/log", 792 | "version": "1.0.2", 793 | "source": { 794 | "type": "git", 795 | "url": "https://github.com/php-fig/log.git", 796 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" 797 | }, 798 | "dist": { 799 | "type": "zip", 800 | "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 801 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 802 | "shasum": "" 803 | }, 804 | "require": { 805 | "php": ">=5.3.0" 806 | }, 807 | "type": "library", 808 | "extra": { 809 | "branch-alias": { 810 | "dev-master": "1.0.x-dev" 811 | } 812 | }, 813 | "autoload": { 814 | "psr-4": { 815 | "Psr\\Log\\": "Psr/Log/" 816 | } 817 | }, 818 | "notification-url": "https://packagist.org/downloads/", 819 | "license": [ 820 | "MIT" 821 | ], 822 | "authors": [ 823 | { 824 | "name": "PHP-FIG", 825 | "homepage": "http://www.php-fig.org/" 826 | } 827 | ], 828 | "description": "Common interface for logging libraries", 829 | "homepage": "https://github.com/php-fig/log", 830 | "keywords": [ 831 | "log", 832 | "psr", 833 | "psr-3" 834 | ], 835 | "time": "2016-10-10 12:19:37" 836 | }, 837 | { 838 | "name": "psy/psysh", 839 | "version": "v0.7.2", 840 | "source": { 841 | "type": "git", 842 | "url": "https://github.com/bobthecow/psysh.git", 843 | "reference": "e64e10b20f8d229cac76399e1f3edddb57a0f280" 844 | }, 845 | "dist": { 846 | "type": "zip", 847 | "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e64e10b20f8d229cac76399e1f3edddb57a0f280", 848 | "reference": "e64e10b20f8d229cac76399e1f3edddb57a0f280", 849 | "shasum": "" 850 | }, 851 | "require": { 852 | "dnoegel/php-xdg-base-dir": "0.1", 853 | "jakub-onderka/php-console-highlighter": "0.3.*", 854 | "nikic/php-parser": "^1.2.1|~2.0", 855 | "php": ">=5.3.9", 856 | "symfony/console": "~2.3.10|^2.4.2|~3.0", 857 | "symfony/var-dumper": "~2.7|~3.0" 858 | }, 859 | "require-dev": { 860 | "fabpot/php-cs-fixer": "~1.5", 861 | "phpunit/phpunit": "~3.7|~4.0|~5.0", 862 | "squizlabs/php_codesniffer": "~2.0", 863 | "symfony/finder": "~2.1|~3.0" 864 | }, 865 | "suggest": { 866 | "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", 867 | "ext-pdo-sqlite": "The doc command requires SQLite to work.", 868 | "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", 869 | "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." 870 | }, 871 | "bin": [ 872 | "bin/psysh" 873 | ], 874 | "type": "library", 875 | "extra": { 876 | "branch-alias": { 877 | "dev-develop": "0.8.x-dev" 878 | } 879 | }, 880 | "autoload": { 881 | "files": [ 882 | "src/Psy/functions.php" 883 | ], 884 | "psr-4": { 885 | "Psy\\": "src/Psy/" 886 | } 887 | }, 888 | "notification-url": "https://packagist.org/downloads/", 889 | "license": [ 890 | "MIT" 891 | ], 892 | "authors": [ 893 | { 894 | "name": "Justin Hileman", 895 | "email": "justin@justinhileman.info", 896 | "homepage": "http://justinhileman.com" 897 | } 898 | ], 899 | "description": "An interactive shell for modern PHP.", 900 | "homepage": "http://psysh.org", 901 | "keywords": [ 902 | "REPL", 903 | "console", 904 | "interactive", 905 | "shell" 906 | ], 907 | "time": "2016-03-09 05:03:14" 908 | }, 909 | { 910 | "name": "swiftmailer/swiftmailer", 911 | "version": "v5.4.5", 912 | "source": { 913 | "type": "git", 914 | "url": "https://github.com/swiftmailer/swiftmailer.git", 915 | "reference": "cd142238a339459b10da3d8234220963f392540c" 916 | }, 917 | "dist": { 918 | "type": "zip", 919 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/cd142238a339459b10da3d8234220963f392540c", 920 | "reference": "cd142238a339459b10da3d8234220963f392540c", 921 | "shasum": "" 922 | }, 923 | "require": { 924 | "php": ">=5.3.3" 925 | }, 926 | "require-dev": { 927 | "mockery/mockery": "~0.9.1", 928 | "symfony/phpunit-bridge": "~3.2" 929 | }, 930 | "type": "library", 931 | "extra": { 932 | "branch-alias": { 933 | "dev-master": "5.4-dev" 934 | } 935 | }, 936 | "autoload": { 937 | "files": [ 938 | "lib/swift_required.php" 939 | ] 940 | }, 941 | "notification-url": "https://packagist.org/downloads/", 942 | "license": [ 943 | "MIT" 944 | ], 945 | "authors": [ 946 | { 947 | "name": "Chris Corbyn" 948 | }, 949 | { 950 | "name": "Fabien Potencier", 951 | "email": "fabien@symfony.com" 952 | } 953 | ], 954 | "description": "Swiftmailer, free feature-rich PHP mailer", 955 | "homepage": "http://swiftmailer.org", 956 | "keywords": [ 957 | "email", 958 | "mail", 959 | "mailer" 960 | ], 961 | "time": "2016-12-29 10:02:40" 962 | }, 963 | { 964 | "name": "symfony/console", 965 | "version": "v3.0.9", 966 | "source": { 967 | "type": "git", 968 | "url": "https://github.com/symfony/console.git", 969 | "reference": "926061e74229e935d3c5b4e9ba87237316c6693f" 970 | }, 971 | "dist": { 972 | "type": "zip", 973 | "url": "https://api.github.com/repos/symfony/console/zipball/926061e74229e935d3c5b4e9ba87237316c6693f", 974 | "reference": "926061e74229e935d3c5b4e9ba87237316c6693f", 975 | "shasum": "" 976 | }, 977 | "require": { 978 | "php": ">=5.5.9", 979 | "symfony/polyfill-mbstring": "~1.0" 980 | }, 981 | "require-dev": { 982 | "psr/log": "~1.0", 983 | "symfony/event-dispatcher": "~2.8|~3.0", 984 | "symfony/process": "~2.8|~3.0" 985 | }, 986 | "suggest": { 987 | "psr/log": "For using the console logger", 988 | "symfony/event-dispatcher": "", 989 | "symfony/process": "" 990 | }, 991 | "type": "library", 992 | "extra": { 993 | "branch-alias": { 994 | "dev-master": "3.0-dev" 995 | } 996 | }, 997 | "autoload": { 998 | "psr-4": { 999 | "Symfony\\Component\\Console\\": "" 1000 | }, 1001 | "exclude-from-classmap": [ 1002 | "/Tests/" 1003 | ] 1004 | }, 1005 | "notification-url": "https://packagist.org/downloads/", 1006 | "license": [ 1007 | "MIT" 1008 | ], 1009 | "authors": [ 1010 | { 1011 | "name": "Fabien Potencier", 1012 | "email": "fabien@symfony.com" 1013 | }, 1014 | { 1015 | "name": "Symfony Community", 1016 | "homepage": "https://symfony.com/contributors" 1017 | } 1018 | ], 1019 | "description": "Symfony Console Component", 1020 | "homepage": "https://symfony.com", 1021 | "time": "2016-07-30 07:22:48" 1022 | }, 1023 | { 1024 | "name": "symfony/debug", 1025 | "version": "v3.0.9", 1026 | "source": { 1027 | "type": "git", 1028 | "url": "https://github.com/symfony/debug.git", 1029 | "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a" 1030 | }, 1031 | "dist": { 1032 | "type": "zip", 1033 | "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a", 1034 | "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a", 1035 | "shasum": "" 1036 | }, 1037 | "require": { 1038 | "php": ">=5.5.9", 1039 | "psr/log": "~1.0" 1040 | }, 1041 | "conflict": { 1042 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" 1043 | }, 1044 | "require-dev": { 1045 | "symfony/class-loader": "~2.8|~3.0", 1046 | "symfony/http-kernel": "~2.8|~3.0" 1047 | }, 1048 | "type": "library", 1049 | "extra": { 1050 | "branch-alias": { 1051 | "dev-master": "3.0-dev" 1052 | } 1053 | }, 1054 | "autoload": { 1055 | "psr-4": { 1056 | "Symfony\\Component\\Debug\\": "" 1057 | }, 1058 | "exclude-from-classmap": [ 1059 | "/Tests/" 1060 | ] 1061 | }, 1062 | "notification-url": "https://packagist.org/downloads/", 1063 | "license": [ 1064 | "MIT" 1065 | ], 1066 | "authors": [ 1067 | { 1068 | "name": "Fabien Potencier", 1069 | "email": "fabien@symfony.com" 1070 | }, 1071 | { 1072 | "name": "Symfony Community", 1073 | "homepage": "https://symfony.com/contributors" 1074 | } 1075 | ], 1076 | "description": "Symfony Debug Component", 1077 | "homepage": "https://symfony.com", 1078 | "time": "2016-07-30 07:22:48" 1079 | }, 1080 | { 1081 | "name": "symfony/event-dispatcher", 1082 | "version": "v3.2.1", 1083 | "source": { 1084 | "type": "git", 1085 | "url": "https://github.com/symfony/event-dispatcher.git", 1086 | "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283" 1087 | }, 1088 | "dist": { 1089 | "type": "zip", 1090 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e8f47a327c2f0fd5aa04fa60af2b693006ed7283", 1091 | "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283", 1092 | "shasum": "" 1093 | }, 1094 | "require": { 1095 | "php": ">=5.5.9" 1096 | }, 1097 | "require-dev": { 1098 | "psr/log": "~1.0", 1099 | "symfony/config": "~2.8|~3.0", 1100 | "symfony/dependency-injection": "~2.8|~3.0", 1101 | "symfony/expression-language": "~2.8|~3.0", 1102 | "symfony/stopwatch": "~2.8|~3.0" 1103 | }, 1104 | "suggest": { 1105 | "symfony/dependency-injection": "", 1106 | "symfony/http-kernel": "" 1107 | }, 1108 | "type": "library", 1109 | "extra": { 1110 | "branch-alias": { 1111 | "dev-master": "3.2-dev" 1112 | } 1113 | }, 1114 | "autoload": { 1115 | "psr-4": { 1116 | "Symfony\\Component\\EventDispatcher\\": "" 1117 | }, 1118 | "exclude-from-classmap": [ 1119 | "/Tests/" 1120 | ] 1121 | }, 1122 | "notification-url": "https://packagist.org/downloads/", 1123 | "license": [ 1124 | "MIT" 1125 | ], 1126 | "authors": [ 1127 | { 1128 | "name": "Fabien Potencier", 1129 | "email": "fabien@symfony.com" 1130 | }, 1131 | { 1132 | "name": "Symfony Community", 1133 | "homepage": "https://symfony.com/contributors" 1134 | } 1135 | ], 1136 | "description": "Symfony EventDispatcher Component", 1137 | "homepage": "https://symfony.com", 1138 | "time": "2016-10-13 06:29:04" 1139 | }, 1140 | { 1141 | "name": "symfony/finder", 1142 | "version": "v3.0.9", 1143 | "source": { 1144 | "type": "git", 1145 | "url": "https://github.com/symfony/finder.git", 1146 | "reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9" 1147 | }, 1148 | "dist": { 1149 | "type": "zip", 1150 | "url": "https://api.github.com/repos/symfony/finder/zipball/3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9", 1151 | "reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9", 1152 | "shasum": "" 1153 | }, 1154 | "require": { 1155 | "php": ">=5.5.9" 1156 | }, 1157 | "type": "library", 1158 | "extra": { 1159 | "branch-alias": { 1160 | "dev-master": "3.0-dev" 1161 | } 1162 | }, 1163 | "autoload": { 1164 | "psr-4": { 1165 | "Symfony\\Component\\Finder\\": "" 1166 | }, 1167 | "exclude-from-classmap": [ 1168 | "/Tests/" 1169 | ] 1170 | }, 1171 | "notification-url": "https://packagist.org/downloads/", 1172 | "license": [ 1173 | "MIT" 1174 | ], 1175 | "authors": [ 1176 | { 1177 | "name": "Fabien Potencier", 1178 | "email": "fabien@symfony.com" 1179 | }, 1180 | { 1181 | "name": "Symfony Community", 1182 | "homepage": "https://symfony.com/contributors" 1183 | } 1184 | ], 1185 | "description": "Symfony Finder Component", 1186 | "homepage": "https://symfony.com", 1187 | "time": "2016-06-29 05:40:00" 1188 | }, 1189 | { 1190 | "name": "symfony/http-foundation", 1191 | "version": "v3.0.9", 1192 | "source": { 1193 | "type": "git", 1194 | "url": "https://github.com/symfony/http-foundation.git", 1195 | "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82" 1196 | }, 1197 | "dist": { 1198 | "type": "zip", 1199 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49ba00f8ede742169cb6b70abe33243f4d673f82", 1200 | "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82", 1201 | "shasum": "" 1202 | }, 1203 | "require": { 1204 | "php": ">=5.5.9", 1205 | "symfony/polyfill-mbstring": "~1.1" 1206 | }, 1207 | "require-dev": { 1208 | "symfony/expression-language": "~2.8|~3.0" 1209 | }, 1210 | "type": "library", 1211 | "extra": { 1212 | "branch-alias": { 1213 | "dev-master": "3.0-dev" 1214 | } 1215 | }, 1216 | "autoload": { 1217 | "psr-4": { 1218 | "Symfony\\Component\\HttpFoundation\\": "" 1219 | }, 1220 | "exclude-from-classmap": [ 1221 | "/Tests/" 1222 | ] 1223 | }, 1224 | "notification-url": "https://packagist.org/downloads/", 1225 | "license": [ 1226 | "MIT" 1227 | ], 1228 | "authors": [ 1229 | { 1230 | "name": "Fabien Potencier", 1231 | "email": "fabien@symfony.com" 1232 | }, 1233 | { 1234 | "name": "Symfony Community", 1235 | "homepage": "https://symfony.com/contributors" 1236 | } 1237 | ], 1238 | "description": "Symfony HttpFoundation Component", 1239 | "homepage": "https://symfony.com", 1240 | "time": "2016-07-17 13:54:30" 1241 | }, 1242 | { 1243 | "name": "symfony/http-kernel", 1244 | "version": "v3.0.9", 1245 | "source": { 1246 | "type": "git", 1247 | "url": "https://github.com/symfony/http-kernel.git", 1248 | "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3" 1249 | }, 1250 | "dist": { 1251 | "type": "zip", 1252 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d97ba4425e36e79c794e7d14ff36f00f081b37b3", 1253 | "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3", 1254 | "shasum": "" 1255 | }, 1256 | "require": { 1257 | "php": ">=5.5.9", 1258 | "psr/log": "~1.0", 1259 | "symfony/debug": "~2.8|~3.0", 1260 | "symfony/event-dispatcher": "~2.8|~3.0", 1261 | "symfony/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2" 1262 | }, 1263 | "conflict": { 1264 | "symfony/config": "<2.8" 1265 | }, 1266 | "require-dev": { 1267 | "symfony/browser-kit": "~2.8|~3.0", 1268 | "symfony/class-loader": "~2.8|~3.0", 1269 | "symfony/config": "~2.8|~3.0", 1270 | "symfony/console": "~2.8|~3.0", 1271 | "symfony/css-selector": "~2.8|~3.0", 1272 | "symfony/dependency-injection": "~2.8|~3.0", 1273 | "symfony/dom-crawler": "~2.8|~3.0", 1274 | "symfony/expression-language": "~2.8|~3.0", 1275 | "symfony/finder": "~2.8|~3.0", 1276 | "symfony/process": "~2.8|~3.0", 1277 | "symfony/routing": "~2.8|~3.0", 1278 | "symfony/stopwatch": "~2.8|~3.0", 1279 | "symfony/templating": "~2.8|~3.0", 1280 | "symfony/translation": "~2.8|~3.0", 1281 | "symfony/var-dumper": "~2.8|~3.0" 1282 | }, 1283 | "suggest": { 1284 | "symfony/browser-kit": "", 1285 | "symfony/class-loader": "", 1286 | "symfony/config": "", 1287 | "symfony/console": "", 1288 | "symfony/dependency-injection": "", 1289 | "symfony/finder": "", 1290 | "symfony/var-dumper": "" 1291 | }, 1292 | "type": "library", 1293 | "extra": { 1294 | "branch-alias": { 1295 | "dev-master": "3.0-dev" 1296 | } 1297 | }, 1298 | "autoload": { 1299 | "psr-4": { 1300 | "Symfony\\Component\\HttpKernel\\": "" 1301 | }, 1302 | "exclude-from-classmap": [ 1303 | "/Tests/" 1304 | ] 1305 | }, 1306 | "notification-url": "https://packagist.org/downloads/", 1307 | "license": [ 1308 | "MIT" 1309 | ], 1310 | "authors": [ 1311 | { 1312 | "name": "Fabien Potencier", 1313 | "email": "fabien@symfony.com" 1314 | }, 1315 | { 1316 | "name": "Symfony Community", 1317 | "homepage": "https://symfony.com/contributors" 1318 | } 1319 | ], 1320 | "description": "Symfony HttpKernel Component", 1321 | "homepage": "https://symfony.com", 1322 | "time": "2016-07-30 09:10:37" 1323 | }, 1324 | { 1325 | "name": "symfony/polyfill-mbstring", 1326 | "version": "v1.3.0", 1327 | "source": { 1328 | "type": "git", 1329 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1330 | "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4" 1331 | }, 1332 | "dist": { 1333 | "type": "zip", 1334 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4", 1335 | "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4", 1336 | "shasum": "" 1337 | }, 1338 | "require": { 1339 | "php": ">=5.3.3" 1340 | }, 1341 | "suggest": { 1342 | "ext-mbstring": "For best performance" 1343 | }, 1344 | "type": "library", 1345 | "extra": { 1346 | "branch-alias": { 1347 | "dev-master": "1.3-dev" 1348 | } 1349 | }, 1350 | "autoload": { 1351 | "psr-4": { 1352 | "Symfony\\Polyfill\\Mbstring\\": "" 1353 | }, 1354 | "files": [ 1355 | "bootstrap.php" 1356 | ] 1357 | }, 1358 | "notification-url": "https://packagist.org/downloads/", 1359 | "license": [ 1360 | "MIT" 1361 | ], 1362 | "authors": [ 1363 | { 1364 | "name": "Nicolas Grekas", 1365 | "email": "p@tchwork.com" 1366 | }, 1367 | { 1368 | "name": "Symfony Community", 1369 | "homepage": "https://symfony.com/contributors" 1370 | } 1371 | ], 1372 | "description": "Symfony polyfill for the Mbstring extension", 1373 | "homepage": "https://symfony.com", 1374 | "keywords": [ 1375 | "compatibility", 1376 | "mbstring", 1377 | "polyfill", 1378 | "portable", 1379 | "shim" 1380 | ], 1381 | "time": "2016-11-14 01:06:16" 1382 | }, 1383 | { 1384 | "name": "symfony/polyfill-php56", 1385 | "version": "v1.3.0", 1386 | "source": { 1387 | "type": "git", 1388 | "url": "https://github.com/symfony/polyfill-php56.git", 1389 | "reference": "1dd42b9b89556f18092f3d1ada22cb05ac85383c" 1390 | }, 1391 | "dist": { 1392 | "type": "zip", 1393 | "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/1dd42b9b89556f18092f3d1ada22cb05ac85383c", 1394 | "reference": "1dd42b9b89556f18092f3d1ada22cb05ac85383c", 1395 | "shasum": "" 1396 | }, 1397 | "require": { 1398 | "php": ">=5.3.3", 1399 | "symfony/polyfill-util": "~1.0" 1400 | }, 1401 | "type": "library", 1402 | "extra": { 1403 | "branch-alias": { 1404 | "dev-master": "1.3-dev" 1405 | } 1406 | }, 1407 | "autoload": { 1408 | "psr-4": { 1409 | "Symfony\\Polyfill\\Php56\\": "" 1410 | }, 1411 | "files": [ 1412 | "bootstrap.php" 1413 | ] 1414 | }, 1415 | "notification-url": "https://packagist.org/downloads/", 1416 | "license": [ 1417 | "MIT" 1418 | ], 1419 | "authors": [ 1420 | { 1421 | "name": "Nicolas Grekas", 1422 | "email": "p@tchwork.com" 1423 | }, 1424 | { 1425 | "name": "Symfony Community", 1426 | "homepage": "https://symfony.com/contributors" 1427 | } 1428 | ], 1429 | "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", 1430 | "homepage": "https://symfony.com", 1431 | "keywords": [ 1432 | "compatibility", 1433 | "polyfill", 1434 | "portable", 1435 | "shim" 1436 | ], 1437 | "time": "2016-11-14 01:06:16" 1438 | }, 1439 | { 1440 | "name": "symfony/polyfill-util", 1441 | "version": "v1.3.0", 1442 | "source": { 1443 | "type": "git", 1444 | "url": "https://github.com/symfony/polyfill-util.git", 1445 | "reference": "746bce0fca664ac0a575e465f65c6643faddf7fb" 1446 | }, 1447 | "dist": { 1448 | "type": "zip", 1449 | "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/746bce0fca664ac0a575e465f65c6643faddf7fb", 1450 | "reference": "746bce0fca664ac0a575e465f65c6643faddf7fb", 1451 | "shasum": "" 1452 | }, 1453 | "require": { 1454 | "php": ">=5.3.3" 1455 | }, 1456 | "type": "library", 1457 | "extra": { 1458 | "branch-alias": { 1459 | "dev-master": "1.3-dev" 1460 | } 1461 | }, 1462 | "autoload": { 1463 | "psr-4": { 1464 | "Symfony\\Polyfill\\Util\\": "" 1465 | } 1466 | }, 1467 | "notification-url": "https://packagist.org/downloads/", 1468 | "license": [ 1469 | "MIT" 1470 | ], 1471 | "authors": [ 1472 | { 1473 | "name": "Nicolas Grekas", 1474 | "email": "p@tchwork.com" 1475 | }, 1476 | { 1477 | "name": "Symfony Community", 1478 | "homepage": "https://symfony.com/contributors" 1479 | } 1480 | ], 1481 | "description": "Symfony utilities for portability of PHP codes", 1482 | "homepage": "https://symfony.com", 1483 | "keywords": [ 1484 | "compat", 1485 | "compatibility", 1486 | "polyfill", 1487 | "shim" 1488 | ], 1489 | "time": "2016-11-14 01:06:16" 1490 | }, 1491 | { 1492 | "name": "symfony/process", 1493 | "version": "v3.0.9", 1494 | "source": { 1495 | "type": "git", 1496 | "url": "https://github.com/symfony/process.git", 1497 | "reference": "768debc5996f599c4372b322d9061dba2a4bf505" 1498 | }, 1499 | "dist": { 1500 | "type": "zip", 1501 | "url": "https://api.github.com/repos/symfony/process/zipball/768debc5996f599c4372b322d9061dba2a4bf505", 1502 | "reference": "768debc5996f599c4372b322d9061dba2a4bf505", 1503 | "shasum": "" 1504 | }, 1505 | "require": { 1506 | "php": ">=5.5.9" 1507 | }, 1508 | "type": "library", 1509 | "extra": { 1510 | "branch-alias": { 1511 | "dev-master": "3.0-dev" 1512 | } 1513 | }, 1514 | "autoload": { 1515 | "psr-4": { 1516 | "Symfony\\Component\\Process\\": "" 1517 | }, 1518 | "exclude-from-classmap": [ 1519 | "/Tests/" 1520 | ] 1521 | }, 1522 | "notification-url": "https://packagist.org/downloads/", 1523 | "license": [ 1524 | "MIT" 1525 | ], 1526 | "authors": [ 1527 | { 1528 | "name": "Fabien Potencier", 1529 | "email": "fabien@symfony.com" 1530 | }, 1531 | { 1532 | "name": "Symfony Community", 1533 | "homepage": "https://symfony.com/contributors" 1534 | } 1535 | ], 1536 | "description": "Symfony Process Component", 1537 | "homepage": "https://symfony.com", 1538 | "time": "2016-07-28 11:13:34" 1539 | }, 1540 | { 1541 | "name": "symfony/routing", 1542 | "version": "v3.0.9", 1543 | "source": { 1544 | "type": "git", 1545 | "url": "https://github.com/symfony/routing.git", 1546 | "reference": "9038984bd9c05ab07280121e9e10f61a7231457b" 1547 | }, 1548 | "dist": { 1549 | "type": "zip", 1550 | "url": "https://api.github.com/repos/symfony/routing/zipball/9038984bd9c05ab07280121e9e10f61a7231457b", 1551 | "reference": "9038984bd9c05ab07280121e9e10f61a7231457b", 1552 | "shasum": "" 1553 | }, 1554 | "require": { 1555 | "php": ">=5.5.9" 1556 | }, 1557 | "conflict": { 1558 | "symfony/config": "<2.8" 1559 | }, 1560 | "require-dev": { 1561 | "doctrine/annotations": "~1.0", 1562 | "doctrine/common": "~2.2", 1563 | "psr/log": "~1.0", 1564 | "symfony/config": "~2.8|~3.0", 1565 | "symfony/expression-language": "~2.8|~3.0", 1566 | "symfony/http-foundation": "~2.8|~3.0", 1567 | "symfony/yaml": "~2.8|~3.0" 1568 | }, 1569 | "suggest": { 1570 | "doctrine/annotations": "For using the annotation loader", 1571 | "symfony/config": "For using the all-in-one router or any loader", 1572 | "symfony/dependency-injection": "For loading routes from a service", 1573 | "symfony/expression-language": "For using expression matching", 1574 | "symfony/http-foundation": "For using a Symfony Request object", 1575 | "symfony/yaml": "For using the YAML loader" 1576 | }, 1577 | "type": "library", 1578 | "extra": { 1579 | "branch-alias": { 1580 | "dev-master": "3.0-dev" 1581 | } 1582 | }, 1583 | "autoload": { 1584 | "psr-4": { 1585 | "Symfony\\Component\\Routing\\": "" 1586 | }, 1587 | "exclude-from-classmap": [ 1588 | "/Tests/" 1589 | ] 1590 | }, 1591 | "notification-url": "https://packagist.org/downloads/", 1592 | "license": [ 1593 | "MIT" 1594 | ], 1595 | "authors": [ 1596 | { 1597 | "name": "Fabien Potencier", 1598 | "email": "fabien@symfony.com" 1599 | }, 1600 | { 1601 | "name": "Symfony Community", 1602 | "homepage": "https://symfony.com/contributors" 1603 | } 1604 | ], 1605 | "description": "Symfony Routing Component", 1606 | "homepage": "https://symfony.com", 1607 | "keywords": [ 1608 | "router", 1609 | "routing", 1610 | "uri", 1611 | "url" 1612 | ], 1613 | "time": "2016-06-29 05:40:00" 1614 | }, 1615 | { 1616 | "name": "symfony/translation", 1617 | "version": "v3.0.9", 1618 | "source": { 1619 | "type": "git", 1620 | "url": "https://github.com/symfony/translation.git", 1621 | "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26" 1622 | }, 1623 | "dist": { 1624 | "type": "zip", 1625 | "url": "https://api.github.com/repos/symfony/translation/zipball/eee6c664853fd0576f21ae25725cfffeafe83f26", 1626 | "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26", 1627 | "shasum": "" 1628 | }, 1629 | "require": { 1630 | "php": ">=5.5.9", 1631 | "symfony/polyfill-mbstring": "~1.0" 1632 | }, 1633 | "conflict": { 1634 | "symfony/config": "<2.8" 1635 | }, 1636 | "require-dev": { 1637 | "psr/log": "~1.0", 1638 | "symfony/config": "~2.8|~3.0", 1639 | "symfony/intl": "~2.8|~3.0", 1640 | "symfony/yaml": "~2.8|~3.0" 1641 | }, 1642 | "suggest": { 1643 | "psr/log": "To use logging capability in translator", 1644 | "symfony/config": "", 1645 | "symfony/yaml": "" 1646 | }, 1647 | "type": "library", 1648 | "extra": { 1649 | "branch-alias": { 1650 | "dev-master": "3.0-dev" 1651 | } 1652 | }, 1653 | "autoload": { 1654 | "psr-4": { 1655 | "Symfony\\Component\\Translation\\": "" 1656 | }, 1657 | "exclude-from-classmap": [ 1658 | "/Tests/" 1659 | ] 1660 | }, 1661 | "notification-url": "https://packagist.org/downloads/", 1662 | "license": [ 1663 | "MIT" 1664 | ], 1665 | "authors": [ 1666 | { 1667 | "name": "Fabien Potencier", 1668 | "email": "fabien@symfony.com" 1669 | }, 1670 | { 1671 | "name": "Symfony Community", 1672 | "homepage": "https://symfony.com/contributors" 1673 | } 1674 | ], 1675 | "description": "Symfony Translation Component", 1676 | "homepage": "https://symfony.com", 1677 | "time": "2016-07-30 07:22:48" 1678 | }, 1679 | { 1680 | "name": "symfony/var-dumper", 1681 | "version": "v3.0.9", 1682 | "source": { 1683 | "type": "git", 1684 | "url": "https://github.com/symfony/var-dumper.git", 1685 | "reference": "1f7e071aafc6676fcb6e3f0497f87c2397247377" 1686 | }, 1687 | "dist": { 1688 | "type": "zip", 1689 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1f7e071aafc6676fcb6e3f0497f87c2397247377", 1690 | "reference": "1f7e071aafc6676fcb6e3f0497f87c2397247377", 1691 | "shasum": "" 1692 | }, 1693 | "require": { 1694 | "php": ">=5.5.9", 1695 | "symfony/polyfill-mbstring": "~1.0" 1696 | }, 1697 | "require-dev": { 1698 | "twig/twig": "~1.20|~2.0" 1699 | }, 1700 | "suggest": { 1701 | "ext-symfony_debug": "" 1702 | }, 1703 | "type": "library", 1704 | "extra": { 1705 | "branch-alias": { 1706 | "dev-master": "3.0-dev" 1707 | } 1708 | }, 1709 | "autoload": { 1710 | "files": [ 1711 | "Resources/functions/dump.php" 1712 | ], 1713 | "psr-4": { 1714 | "Symfony\\Component\\VarDumper\\": "" 1715 | }, 1716 | "exclude-from-classmap": [ 1717 | "/Tests/" 1718 | ] 1719 | }, 1720 | "notification-url": "https://packagist.org/downloads/", 1721 | "license": [ 1722 | "MIT" 1723 | ], 1724 | "authors": [ 1725 | { 1726 | "name": "Nicolas Grekas", 1727 | "email": "p@tchwork.com" 1728 | }, 1729 | { 1730 | "name": "Symfony Community", 1731 | "homepage": "https://symfony.com/contributors" 1732 | } 1733 | ], 1734 | "description": "Symfony mechanism for exploring and dumping PHP variables", 1735 | "homepage": "https://symfony.com", 1736 | "keywords": [ 1737 | "debug", 1738 | "dump" 1739 | ], 1740 | "time": "2016-07-26 08:03:56" 1741 | }, 1742 | { 1743 | "name": "vlucas/phpdotenv", 1744 | "version": "v2.4.0", 1745 | "source": { 1746 | "type": "git", 1747 | "url": "https://github.com/vlucas/phpdotenv.git", 1748 | "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" 1749 | }, 1750 | "dist": { 1751 | "type": "zip", 1752 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", 1753 | "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", 1754 | "shasum": "" 1755 | }, 1756 | "require": { 1757 | "php": ">=5.3.9" 1758 | }, 1759 | "require-dev": { 1760 | "phpunit/phpunit": "^4.8 || ^5.0" 1761 | }, 1762 | "type": "library", 1763 | "extra": { 1764 | "branch-alias": { 1765 | "dev-master": "2.4-dev" 1766 | } 1767 | }, 1768 | "autoload": { 1769 | "psr-4": { 1770 | "Dotenv\\": "src/" 1771 | } 1772 | }, 1773 | "notification-url": "https://packagist.org/downloads/", 1774 | "license": [ 1775 | "BSD-3-Clause-Attribution" 1776 | ], 1777 | "authors": [ 1778 | { 1779 | "name": "Vance Lucas", 1780 | "email": "vance@vancelucas.com", 1781 | "homepage": "http://www.vancelucas.com" 1782 | } 1783 | ], 1784 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", 1785 | "keywords": [ 1786 | "dotenv", 1787 | "env", 1788 | "environment" 1789 | ], 1790 | "time": "2016-09-01 10:05:43" 1791 | } 1792 | ], 1793 | "packages-dev": [ 1794 | { 1795 | "name": "doctrine/instantiator", 1796 | "version": "1.0.5", 1797 | "source": { 1798 | "type": "git", 1799 | "url": "https://github.com/doctrine/instantiator.git", 1800 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 1801 | }, 1802 | "dist": { 1803 | "type": "zip", 1804 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 1805 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 1806 | "shasum": "" 1807 | }, 1808 | "require": { 1809 | "php": ">=5.3,<8.0-DEV" 1810 | }, 1811 | "require-dev": { 1812 | "athletic/athletic": "~0.1.8", 1813 | "ext-pdo": "*", 1814 | "ext-phar": "*", 1815 | "phpunit/phpunit": "~4.0", 1816 | "squizlabs/php_codesniffer": "~2.0" 1817 | }, 1818 | "type": "library", 1819 | "extra": { 1820 | "branch-alias": { 1821 | "dev-master": "1.0.x-dev" 1822 | } 1823 | }, 1824 | "autoload": { 1825 | "psr-4": { 1826 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 1827 | } 1828 | }, 1829 | "notification-url": "https://packagist.org/downloads/", 1830 | "license": [ 1831 | "MIT" 1832 | ], 1833 | "authors": [ 1834 | { 1835 | "name": "Marco Pivetta", 1836 | "email": "ocramius@gmail.com", 1837 | "homepage": "http://ocramius.github.com/" 1838 | } 1839 | ], 1840 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 1841 | "homepage": "https://github.com/doctrine/instantiator", 1842 | "keywords": [ 1843 | "constructor", 1844 | "instantiate" 1845 | ], 1846 | "time": "2015-06-14 21:17:01" 1847 | }, 1848 | { 1849 | "name": "fzaninotto/faker", 1850 | "version": "v1.6.0", 1851 | "source": { 1852 | "type": "git", 1853 | "url": "https://github.com/fzaninotto/Faker.git", 1854 | "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" 1855 | }, 1856 | "dist": { 1857 | "type": "zip", 1858 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", 1859 | "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", 1860 | "shasum": "" 1861 | }, 1862 | "require": { 1863 | "php": "^5.3.3|^7.0" 1864 | }, 1865 | "require-dev": { 1866 | "ext-intl": "*", 1867 | "phpunit/phpunit": "~4.0", 1868 | "squizlabs/php_codesniffer": "~1.5" 1869 | }, 1870 | "type": "library", 1871 | "extra": { 1872 | "branch-alias": [] 1873 | }, 1874 | "autoload": { 1875 | "psr-4": { 1876 | "Faker\\": "src/Faker/" 1877 | } 1878 | }, 1879 | "notification-url": "https://packagist.org/downloads/", 1880 | "license": [ 1881 | "MIT" 1882 | ], 1883 | "authors": [ 1884 | { 1885 | "name": "François Zaninotto" 1886 | } 1887 | ], 1888 | "description": "Faker is a PHP library that generates fake data for you.", 1889 | "keywords": [ 1890 | "data", 1891 | "faker", 1892 | "fixtures" 1893 | ], 1894 | "time": "2016-04-29 12:21:54" 1895 | }, 1896 | { 1897 | "name": "hamcrest/hamcrest-php", 1898 | "version": "v1.2.2", 1899 | "source": { 1900 | "type": "git", 1901 | "url": "https://github.com/hamcrest/hamcrest-php.git", 1902 | "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" 1903 | }, 1904 | "dist": { 1905 | "type": "zip", 1906 | "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", 1907 | "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", 1908 | "shasum": "" 1909 | }, 1910 | "require": { 1911 | "php": ">=5.3.2" 1912 | }, 1913 | "replace": { 1914 | "cordoval/hamcrest-php": "*", 1915 | "davedevelopment/hamcrest-php": "*", 1916 | "kodova/hamcrest-php": "*" 1917 | }, 1918 | "require-dev": { 1919 | "phpunit/php-file-iterator": "1.3.3", 1920 | "satooshi/php-coveralls": "dev-master" 1921 | }, 1922 | "type": "library", 1923 | "autoload": { 1924 | "classmap": [ 1925 | "hamcrest" 1926 | ], 1927 | "files": [ 1928 | "hamcrest/Hamcrest.php" 1929 | ] 1930 | }, 1931 | "notification-url": "https://packagist.org/downloads/", 1932 | "license": [ 1933 | "BSD" 1934 | ], 1935 | "description": "This is the PHP port of Hamcrest Matchers", 1936 | "keywords": [ 1937 | "test" 1938 | ], 1939 | "time": "2015-05-11 14:41:42" 1940 | }, 1941 | { 1942 | "name": "mockery/mockery", 1943 | "version": "0.9.7", 1944 | "source": { 1945 | "type": "git", 1946 | "url": "https://github.com/padraic/mockery.git", 1947 | "reference": "4de7969f4664da3cef1ccd83866c9f59378c3371" 1948 | }, 1949 | "dist": { 1950 | "type": "zip", 1951 | "url": "https://api.github.com/repos/padraic/mockery/zipball/4de7969f4664da3cef1ccd83866c9f59378c3371", 1952 | "reference": "4de7969f4664da3cef1ccd83866c9f59378c3371", 1953 | "shasum": "" 1954 | }, 1955 | "require": { 1956 | "hamcrest/hamcrest-php": "~1.1", 1957 | "lib-pcre": ">=7.0", 1958 | "php": ">=5.3.2" 1959 | }, 1960 | "require-dev": { 1961 | "phpunit/phpunit": "~4.0" 1962 | }, 1963 | "type": "library", 1964 | "extra": { 1965 | "branch-alias": { 1966 | "dev-master": "0.9.x-dev" 1967 | } 1968 | }, 1969 | "autoload": { 1970 | "psr-0": { 1971 | "Mockery": "library/" 1972 | } 1973 | }, 1974 | "notification-url": "https://packagist.org/downloads/", 1975 | "license": [ 1976 | "BSD-3-Clause" 1977 | ], 1978 | "authors": [ 1979 | { 1980 | "name": "Pádraic Brady", 1981 | "email": "padraic.brady@gmail.com", 1982 | "homepage": "http://blog.astrumfutura.com" 1983 | }, 1984 | { 1985 | "name": "Dave Marshall", 1986 | "email": "dave.marshall@atstsolutions.co.uk", 1987 | "homepage": "http://davedevelopment.co.uk" 1988 | } 1989 | ], 1990 | "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", 1991 | "homepage": "http://github.com/padraic/mockery", 1992 | "keywords": [ 1993 | "BDD", 1994 | "TDD", 1995 | "library", 1996 | "mock", 1997 | "mock objects", 1998 | "mockery", 1999 | "stub", 2000 | "test", 2001 | "test double", 2002 | "testing" 2003 | ], 2004 | "time": "2016-12-19 14:50:55" 2005 | }, 2006 | { 2007 | "name": "myclabs/deep-copy", 2008 | "version": "1.5.5", 2009 | "source": { 2010 | "type": "git", 2011 | "url": "https://github.com/myclabs/DeepCopy.git", 2012 | "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108" 2013 | }, 2014 | "dist": { 2015 | "type": "zip", 2016 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/399c1f9781e222f6eb6cc238796f5200d1b7f108", 2017 | "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108", 2018 | "shasum": "" 2019 | }, 2020 | "require": { 2021 | "php": ">=5.4.0" 2022 | }, 2023 | "require-dev": { 2024 | "doctrine/collections": "1.*", 2025 | "phpunit/phpunit": "~4.1" 2026 | }, 2027 | "type": "library", 2028 | "autoload": { 2029 | "psr-4": { 2030 | "DeepCopy\\": "src/DeepCopy/" 2031 | } 2032 | }, 2033 | "notification-url": "https://packagist.org/downloads/", 2034 | "license": [ 2035 | "MIT" 2036 | ], 2037 | "description": "Create deep copies (clones) of your objects", 2038 | "homepage": "https://github.com/myclabs/DeepCopy", 2039 | "keywords": [ 2040 | "clone", 2041 | "copy", 2042 | "duplicate", 2043 | "object", 2044 | "object graph" 2045 | ], 2046 | "time": "2016-10-31 17:19:45" 2047 | }, 2048 | { 2049 | "name": "orchestra/database", 2050 | "version": "v3.2.2", 2051 | "source": { 2052 | "type": "git", 2053 | "url": "https://github.com/orchestral/database.git", 2054 | "reference": "7bdcd44a722dd1afb9ad7fe1f2154059e325b275" 2055 | }, 2056 | "dist": { 2057 | "type": "zip", 2058 | "url": "https://api.github.com/repos/orchestral/database/zipball/7bdcd44a722dd1afb9ad7fe1f2154059e325b275", 2059 | "reference": "7bdcd44a722dd1afb9ad7fe1f2154059e325b275", 2060 | "shasum": "" 2061 | }, 2062 | "require": { 2063 | "illuminate/contracts": "~5.2.0", 2064 | "illuminate/database": "~5.2.0", 2065 | "php": ">=5.5.0" 2066 | }, 2067 | "type": "library", 2068 | "extra": { 2069 | "branch-alias": { 2070 | "dev-master": "3.3-dev" 2071 | } 2072 | }, 2073 | "autoload": { 2074 | "psr-4": { 2075 | "Orchestra\\Database\\": "" 2076 | } 2077 | }, 2078 | "notification-url": "https://packagist.org/downloads/", 2079 | "license": [ 2080 | "MIT" 2081 | ], 2082 | "authors": [ 2083 | { 2084 | "name": "Mior Muhammad Zaki", 2085 | "email": "crynobone@gmail.com", 2086 | "homepage": "https://github.com/crynobone" 2087 | }, 2088 | { 2089 | "name": "Taylor Otwell", 2090 | "email": "taylorotwell@gmail.com", 2091 | "homepage": "https://github.com/taylorotwell" 2092 | } 2093 | ], 2094 | "description": "Database Component for Orchestra Platform", 2095 | "keywords": [ 2096 | "database", 2097 | "orchestra-platform", 2098 | "orchestral" 2099 | ], 2100 | "time": "2016-03-01 13:50:22" 2101 | }, 2102 | { 2103 | "name": "orchestra/testbench", 2104 | "version": "v3.2.6", 2105 | "source": { 2106 | "type": "git", 2107 | "url": "https://github.com/orchestral/testbench.git", 2108 | "reference": "1f475dfe2731b180dba888ec9057b82485221186" 2109 | }, 2110 | "dist": { 2111 | "type": "zip", 2112 | "url": "https://api.github.com/repos/orchestral/testbench/zipball/1f475dfe2731b180dba888ec9057b82485221186", 2113 | "reference": "1f475dfe2731b180dba888ec9057b82485221186", 2114 | "shasum": "" 2115 | }, 2116 | "require": { 2117 | "fzaninotto/faker": "~1.4", 2118 | "laravel/framework": "~5.2.28", 2119 | "orchestra/database": "~3.2.0", 2120 | "php": ">=5.5.0", 2121 | "symfony/css-selector": "2.8.*|3.0.*", 2122 | "symfony/dom-crawler": "2.8.*|3.0.*" 2123 | }, 2124 | "require-dev": { 2125 | "mockery/mockery": "^0.9.4", 2126 | "phpunit/phpunit": "~4.8|~5.0" 2127 | }, 2128 | "suggest": { 2129 | "phpunit/phpunit": "Allow to use PHPUnit for testing your Laravel Application/Package (~4.0|~5.0)." 2130 | }, 2131 | "type": "library", 2132 | "extra": { 2133 | "branch-alias": { 2134 | "dev-master": "3.3-dev" 2135 | } 2136 | }, 2137 | "autoload": { 2138 | "psr-4": { 2139 | "Orchestra\\Testbench\\": "src/" 2140 | } 2141 | }, 2142 | "notification-url": "https://packagist.org/downloads/", 2143 | "license": [ 2144 | "MIT" 2145 | ], 2146 | "authors": [ 2147 | { 2148 | "name": "Mior Muhammad Zaki", 2149 | "email": "crynobone@gmail.com", 2150 | "homepage": "https://github.com/crynobone" 2151 | } 2152 | ], 2153 | "description": "Laravel Package Unit Testing Helper", 2154 | "homepage": "http://orchestraplatform.com/docs/latest/components/testbench/", 2155 | "keywords": [ 2156 | "BDD", 2157 | "TDD", 2158 | "laravel", 2159 | "orchestra-platform", 2160 | "orchestral", 2161 | "testing" 2162 | ], 2163 | "time": "2016-08-18 01:06:49" 2164 | }, 2165 | { 2166 | "name": "phpdocumentor/reflection-common", 2167 | "version": "1.0", 2168 | "source": { 2169 | "type": "git", 2170 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 2171 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" 2172 | }, 2173 | "dist": { 2174 | "type": "zip", 2175 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 2176 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 2177 | "shasum": "" 2178 | }, 2179 | "require": { 2180 | "php": ">=5.5" 2181 | }, 2182 | "require-dev": { 2183 | "phpunit/phpunit": "^4.6" 2184 | }, 2185 | "type": "library", 2186 | "extra": { 2187 | "branch-alias": { 2188 | "dev-master": "1.0.x-dev" 2189 | } 2190 | }, 2191 | "autoload": { 2192 | "psr-4": { 2193 | "phpDocumentor\\Reflection\\": [ 2194 | "src" 2195 | ] 2196 | } 2197 | }, 2198 | "notification-url": "https://packagist.org/downloads/", 2199 | "license": [ 2200 | "MIT" 2201 | ], 2202 | "authors": [ 2203 | { 2204 | "name": "Jaap van Otterdijk", 2205 | "email": "opensource@ijaap.nl" 2206 | } 2207 | ], 2208 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 2209 | "homepage": "http://www.phpdoc.org", 2210 | "keywords": [ 2211 | "FQSEN", 2212 | "phpDocumentor", 2213 | "phpdoc", 2214 | "reflection", 2215 | "static analysis" 2216 | ], 2217 | "time": "2015-12-27 11:43:31" 2218 | }, 2219 | { 2220 | "name": "phpdocumentor/reflection-docblock", 2221 | "version": "3.1.1", 2222 | "source": { 2223 | "type": "git", 2224 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 2225 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e" 2226 | }, 2227 | "dist": { 2228 | "type": "zip", 2229 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e", 2230 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e", 2231 | "shasum": "" 2232 | }, 2233 | "require": { 2234 | "php": ">=5.5", 2235 | "phpdocumentor/reflection-common": "^1.0@dev", 2236 | "phpdocumentor/type-resolver": "^0.2.0", 2237 | "webmozart/assert": "^1.0" 2238 | }, 2239 | "require-dev": { 2240 | "mockery/mockery": "^0.9.4", 2241 | "phpunit/phpunit": "^4.4" 2242 | }, 2243 | "type": "library", 2244 | "autoload": { 2245 | "psr-4": { 2246 | "phpDocumentor\\Reflection\\": [ 2247 | "src/" 2248 | ] 2249 | } 2250 | }, 2251 | "notification-url": "https://packagist.org/downloads/", 2252 | "license": [ 2253 | "MIT" 2254 | ], 2255 | "authors": [ 2256 | { 2257 | "name": "Mike van Riel", 2258 | "email": "me@mikevanriel.com" 2259 | } 2260 | ], 2261 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 2262 | "time": "2016-09-30 07:12:33" 2263 | }, 2264 | { 2265 | "name": "phpdocumentor/type-resolver", 2266 | "version": "0.2.1", 2267 | "source": { 2268 | "type": "git", 2269 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 2270 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb" 2271 | }, 2272 | "dist": { 2273 | "type": "zip", 2274 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", 2275 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", 2276 | "shasum": "" 2277 | }, 2278 | "require": { 2279 | "php": ">=5.5", 2280 | "phpdocumentor/reflection-common": "^1.0" 2281 | }, 2282 | "require-dev": { 2283 | "mockery/mockery": "^0.9.4", 2284 | "phpunit/phpunit": "^5.2||^4.8.24" 2285 | }, 2286 | "type": "library", 2287 | "extra": { 2288 | "branch-alias": { 2289 | "dev-master": "1.0.x-dev" 2290 | } 2291 | }, 2292 | "autoload": { 2293 | "psr-4": { 2294 | "phpDocumentor\\Reflection\\": [ 2295 | "src/" 2296 | ] 2297 | } 2298 | }, 2299 | "notification-url": "https://packagist.org/downloads/", 2300 | "license": [ 2301 | "MIT" 2302 | ], 2303 | "authors": [ 2304 | { 2305 | "name": "Mike van Riel", 2306 | "email": "me@mikevanriel.com" 2307 | } 2308 | ], 2309 | "time": "2016-11-25 06:54:22" 2310 | }, 2311 | { 2312 | "name": "phpspec/prophecy", 2313 | "version": "v1.6.2", 2314 | "source": { 2315 | "type": "git", 2316 | "url": "https://github.com/phpspec/prophecy.git", 2317 | "reference": "6c52c2722f8460122f96f86346600e1077ce22cb" 2318 | }, 2319 | "dist": { 2320 | "type": "zip", 2321 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb", 2322 | "reference": "6c52c2722f8460122f96f86346600e1077ce22cb", 2323 | "shasum": "" 2324 | }, 2325 | "require": { 2326 | "doctrine/instantiator": "^1.0.2", 2327 | "php": "^5.3|^7.0", 2328 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", 2329 | "sebastian/comparator": "^1.1", 2330 | "sebastian/recursion-context": "^1.0|^2.0" 2331 | }, 2332 | "require-dev": { 2333 | "phpspec/phpspec": "^2.0", 2334 | "phpunit/phpunit": "^4.8 || ^5.6.5" 2335 | }, 2336 | "type": "library", 2337 | "extra": { 2338 | "branch-alias": { 2339 | "dev-master": "1.6.x-dev" 2340 | } 2341 | }, 2342 | "autoload": { 2343 | "psr-0": { 2344 | "Prophecy\\": "src/" 2345 | } 2346 | }, 2347 | "notification-url": "https://packagist.org/downloads/", 2348 | "license": [ 2349 | "MIT" 2350 | ], 2351 | "authors": [ 2352 | { 2353 | "name": "Konstantin Kudryashov", 2354 | "email": "ever.zet@gmail.com", 2355 | "homepage": "http://everzet.com" 2356 | }, 2357 | { 2358 | "name": "Marcello Duarte", 2359 | "email": "marcello.duarte@gmail.com" 2360 | } 2361 | ], 2362 | "description": "Highly opinionated mocking framework for PHP 5.3+", 2363 | "homepage": "https://github.com/phpspec/prophecy", 2364 | "keywords": [ 2365 | "Double", 2366 | "Dummy", 2367 | "fake", 2368 | "mock", 2369 | "spy", 2370 | "stub" 2371 | ], 2372 | "time": "2016-11-21 14:58:47" 2373 | }, 2374 | { 2375 | "name": "phpunit/php-code-coverage", 2376 | "version": "4.0.4", 2377 | "source": { 2378 | "type": "git", 2379 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 2380 | "reference": "c14196e64a78570034afd0b7a9f3757ba71c2a0a" 2381 | }, 2382 | "dist": { 2383 | "type": "zip", 2384 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c14196e64a78570034afd0b7a9f3757ba71c2a0a", 2385 | "reference": "c14196e64a78570034afd0b7a9f3757ba71c2a0a", 2386 | "shasum": "" 2387 | }, 2388 | "require": { 2389 | "php": "^5.6 || ^7.0", 2390 | "phpunit/php-file-iterator": "~1.3", 2391 | "phpunit/php-text-template": "~1.2", 2392 | "phpunit/php-token-stream": "^1.4.2", 2393 | "sebastian/code-unit-reverse-lookup": "~1.0", 2394 | "sebastian/environment": "^1.3.2 || ^2.0", 2395 | "sebastian/version": "~1.0|~2.0" 2396 | }, 2397 | "require-dev": { 2398 | "ext-xdebug": ">=2.1.4", 2399 | "phpunit/phpunit": "^5.4" 2400 | }, 2401 | "suggest": { 2402 | "ext-dom": "*", 2403 | "ext-xdebug": ">=2.4.0", 2404 | "ext-xmlwriter": "*" 2405 | }, 2406 | "type": "library", 2407 | "extra": { 2408 | "branch-alias": { 2409 | "dev-master": "4.0.x-dev" 2410 | } 2411 | }, 2412 | "autoload": { 2413 | "classmap": [ 2414 | "src/" 2415 | ] 2416 | }, 2417 | "notification-url": "https://packagist.org/downloads/", 2418 | "license": [ 2419 | "BSD-3-Clause" 2420 | ], 2421 | "authors": [ 2422 | { 2423 | "name": "Sebastian Bergmann", 2424 | "email": "sb@sebastian-bergmann.de", 2425 | "role": "lead" 2426 | } 2427 | ], 2428 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 2429 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 2430 | "keywords": [ 2431 | "coverage", 2432 | "testing", 2433 | "xunit" 2434 | ], 2435 | "time": "2016-12-20 15:22:42" 2436 | }, 2437 | { 2438 | "name": "phpunit/php-file-iterator", 2439 | "version": "1.4.2", 2440 | "source": { 2441 | "type": "git", 2442 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 2443 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" 2444 | }, 2445 | "dist": { 2446 | "type": "zip", 2447 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", 2448 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", 2449 | "shasum": "" 2450 | }, 2451 | "require": { 2452 | "php": ">=5.3.3" 2453 | }, 2454 | "type": "library", 2455 | "extra": { 2456 | "branch-alias": { 2457 | "dev-master": "1.4.x-dev" 2458 | } 2459 | }, 2460 | "autoload": { 2461 | "classmap": [ 2462 | "src/" 2463 | ] 2464 | }, 2465 | "notification-url": "https://packagist.org/downloads/", 2466 | "license": [ 2467 | "BSD-3-Clause" 2468 | ], 2469 | "authors": [ 2470 | { 2471 | "name": "Sebastian Bergmann", 2472 | "email": "sb@sebastian-bergmann.de", 2473 | "role": "lead" 2474 | } 2475 | ], 2476 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 2477 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 2478 | "keywords": [ 2479 | "filesystem", 2480 | "iterator" 2481 | ], 2482 | "time": "2016-10-03 07:40:28" 2483 | }, 2484 | { 2485 | "name": "phpunit/php-text-template", 2486 | "version": "1.2.1", 2487 | "source": { 2488 | "type": "git", 2489 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 2490 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 2491 | }, 2492 | "dist": { 2493 | "type": "zip", 2494 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2495 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2496 | "shasum": "" 2497 | }, 2498 | "require": { 2499 | "php": ">=5.3.3" 2500 | }, 2501 | "type": "library", 2502 | "autoload": { 2503 | "classmap": [ 2504 | "src/" 2505 | ] 2506 | }, 2507 | "notification-url": "https://packagist.org/downloads/", 2508 | "license": [ 2509 | "BSD-3-Clause" 2510 | ], 2511 | "authors": [ 2512 | { 2513 | "name": "Sebastian Bergmann", 2514 | "email": "sebastian@phpunit.de", 2515 | "role": "lead" 2516 | } 2517 | ], 2518 | "description": "Simple template engine.", 2519 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 2520 | "keywords": [ 2521 | "template" 2522 | ], 2523 | "time": "2015-06-21 13:50:34" 2524 | }, 2525 | { 2526 | "name": "phpunit/php-timer", 2527 | "version": "1.0.8", 2528 | "source": { 2529 | "type": "git", 2530 | "url": "https://github.com/sebastianbergmann/php-timer.git", 2531 | "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" 2532 | }, 2533 | "dist": { 2534 | "type": "zip", 2535 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", 2536 | "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", 2537 | "shasum": "" 2538 | }, 2539 | "require": { 2540 | "php": ">=5.3.3" 2541 | }, 2542 | "require-dev": { 2543 | "phpunit/phpunit": "~4|~5" 2544 | }, 2545 | "type": "library", 2546 | "autoload": { 2547 | "classmap": [ 2548 | "src/" 2549 | ] 2550 | }, 2551 | "notification-url": "https://packagist.org/downloads/", 2552 | "license": [ 2553 | "BSD-3-Clause" 2554 | ], 2555 | "authors": [ 2556 | { 2557 | "name": "Sebastian Bergmann", 2558 | "email": "sb@sebastian-bergmann.de", 2559 | "role": "lead" 2560 | } 2561 | ], 2562 | "description": "Utility class for timing", 2563 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 2564 | "keywords": [ 2565 | "timer" 2566 | ], 2567 | "time": "2016-05-12 18:03:57" 2568 | }, 2569 | { 2570 | "name": "phpunit/php-token-stream", 2571 | "version": "1.4.9", 2572 | "source": { 2573 | "type": "git", 2574 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 2575 | "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b" 2576 | }, 2577 | "dist": { 2578 | "type": "zip", 2579 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b", 2580 | "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b", 2581 | "shasum": "" 2582 | }, 2583 | "require": { 2584 | "ext-tokenizer": "*", 2585 | "php": ">=5.3.3" 2586 | }, 2587 | "require-dev": { 2588 | "phpunit/phpunit": "~4.2" 2589 | }, 2590 | "type": "library", 2591 | "extra": { 2592 | "branch-alias": { 2593 | "dev-master": "1.4-dev" 2594 | } 2595 | }, 2596 | "autoload": { 2597 | "classmap": [ 2598 | "src/" 2599 | ] 2600 | }, 2601 | "notification-url": "https://packagist.org/downloads/", 2602 | "license": [ 2603 | "BSD-3-Clause" 2604 | ], 2605 | "authors": [ 2606 | { 2607 | "name": "Sebastian Bergmann", 2608 | "email": "sebastian@phpunit.de" 2609 | } 2610 | ], 2611 | "description": "Wrapper around PHP's tokenizer extension.", 2612 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 2613 | "keywords": [ 2614 | "tokenizer" 2615 | ], 2616 | "time": "2016-11-15 14:06:22" 2617 | }, 2618 | { 2619 | "name": "phpunit/phpunit", 2620 | "version": "5.7.5", 2621 | "source": { 2622 | "type": "git", 2623 | "url": "https://github.com/sebastianbergmann/phpunit.git", 2624 | "reference": "50fd2be8f3e23e91da825f36f08e5f9633076ffe" 2625 | }, 2626 | "dist": { 2627 | "type": "zip", 2628 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50fd2be8f3e23e91da825f36f08e5f9633076ffe", 2629 | "reference": "50fd2be8f3e23e91da825f36f08e5f9633076ffe", 2630 | "shasum": "" 2631 | }, 2632 | "require": { 2633 | "ext-dom": "*", 2634 | "ext-json": "*", 2635 | "ext-libxml": "*", 2636 | "ext-mbstring": "*", 2637 | "ext-xml": "*", 2638 | "myclabs/deep-copy": "~1.3", 2639 | "php": "^5.6 || ^7.0", 2640 | "phpspec/prophecy": "^1.6.2", 2641 | "phpunit/php-code-coverage": "^4.0.3", 2642 | "phpunit/php-file-iterator": "~1.4", 2643 | "phpunit/php-text-template": "~1.2", 2644 | "phpunit/php-timer": "^1.0.6", 2645 | "phpunit/phpunit-mock-objects": "^3.2", 2646 | "sebastian/comparator": "~1.2.2", 2647 | "sebastian/diff": "~1.2", 2648 | "sebastian/environment": "^1.3.4 || ^2.0", 2649 | "sebastian/exporter": "~2.0", 2650 | "sebastian/global-state": "^1.0 || ^2.0", 2651 | "sebastian/object-enumerator": "~2.0", 2652 | "sebastian/resource-operations": "~1.0", 2653 | "sebastian/version": "~1.0|~2.0", 2654 | "symfony/yaml": "~2.1|~3.0" 2655 | }, 2656 | "conflict": { 2657 | "phpdocumentor/reflection-docblock": "3.0.2" 2658 | }, 2659 | "require-dev": { 2660 | "ext-pdo": "*" 2661 | }, 2662 | "suggest": { 2663 | "ext-xdebug": "*", 2664 | "phpunit/php-invoker": "~1.1" 2665 | }, 2666 | "bin": [ 2667 | "phpunit" 2668 | ], 2669 | "type": "library", 2670 | "extra": { 2671 | "branch-alias": { 2672 | "dev-master": "5.7.x-dev" 2673 | } 2674 | }, 2675 | "autoload": { 2676 | "classmap": [ 2677 | "src/" 2678 | ] 2679 | }, 2680 | "notification-url": "https://packagist.org/downloads/", 2681 | "license": [ 2682 | "BSD-3-Clause" 2683 | ], 2684 | "authors": [ 2685 | { 2686 | "name": "Sebastian Bergmann", 2687 | "email": "sebastian@phpunit.de", 2688 | "role": "lead" 2689 | } 2690 | ], 2691 | "description": "The PHP Unit Testing framework.", 2692 | "homepage": "https://phpunit.de/", 2693 | "keywords": [ 2694 | "phpunit", 2695 | "testing", 2696 | "xunit" 2697 | ], 2698 | "time": "2016-12-28 07:18:51" 2699 | }, 2700 | { 2701 | "name": "phpunit/phpunit-mock-objects", 2702 | "version": "3.4.3", 2703 | "source": { 2704 | "type": "git", 2705 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 2706 | "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24" 2707 | }, 2708 | "dist": { 2709 | "type": "zip", 2710 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", 2711 | "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", 2712 | "shasum": "" 2713 | }, 2714 | "require": { 2715 | "doctrine/instantiator": "^1.0.2", 2716 | "php": "^5.6 || ^7.0", 2717 | "phpunit/php-text-template": "^1.2", 2718 | "sebastian/exporter": "^1.2 || ^2.0" 2719 | }, 2720 | "conflict": { 2721 | "phpunit/phpunit": "<5.4.0" 2722 | }, 2723 | "require-dev": { 2724 | "phpunit/phpunit": "^5.4" 2725 | }, 2726 | "suggest": { 2727 | "ext-soap": "*" 2728 | }, 2729 | "type": "library", 2730 | "extra": { 2731 | "branch-alias": { 2732 | "dev-master": "3.2.x-dev" 2733 | } 2734 | }, 2735 | "autoload": { 2736 | "classmap": [ 2737 | "src/" 2738 | ] 2739 | }, 2740 | "notification-url": "https://packagist.org/downloads/", 2741 | "license": [ 2742 | "BSD-3-Clause" 2743 | ], 2744 | "authors": [ 2745 | { 2746 | "name": "Sebastian Bergmann", 2747 | "email": "sb@sebastian-bergmann.de", 2748 | "role": "lead" 2749 | } 2750 | ], 2751 | "description": "Mock Object library for PHPUnit", 2752 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 2753 | "keywords": [ 2754 | "mock", 2755 | "xunit" 2756 | ], 2757 | "time": "2016-12-08 20:27:08" 2758 | }, 2759 | { 2760 | "name": "sebastian/code-unit-reverse-lookup", 2761 | "version": "1.0.0", 2762 | "source": { 2763 | "type": "git", 2764 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 2765 | "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe" 2766 | }, 2767 | "dist": { 2768 | "type": "zip", 2769 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe", 2770 | "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe", 2771 | "shasum": "" 2772 | }, 2773 | "require": { 2774 | "php": ">=5.6" 2775 | }, 2776 | "require-dev": { 2777 | "phpunit/phpunit": "~5" 2778 | }, 2779 | "type": "library", 2780 | "extra": { 2781 | "branch-alias": { 2782 | "dev-master": "1.0.x-dev" 2783 | } 2784 | }, 2785 | "autoload": { 2786 | "classmap": [ 2787 | "src/" 2788 | ] 2789 | }, 2790 | "notification-url": "https://packagist.org/downloads/", 2791 | "license": [ 2792 | "BSD-3-Clause" 2793 | ], 2794 | "authors": [ 2795 | { 2796 | "name": "Sebastian Bergmann", 2797 | "email": "sebastian@phpunit.de" 2798 | } 2799 | ], 2800 | "description": "Looks up which function or method a line of code belongs to", 2801 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 2802 | "time": "2016-02-13 06:45:14" 2803 | }, 2804 | { 2805 | "name": "sebastian/comparator", 2806 | "version": "1.2.2", 2807 | "source": { 2808 | "type": "git", 2809 | "url": "https://github.com/sebastianbergmann/comparator.git", 2810 | "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f" 2811 | }, 2812 | "dist": { 2813 | "type": "zip", 2814 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a1ed12e8b2409076ab22e3897126211ff8b1f7f", 2815 | "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f", 2816 | "shasum": "" 2817 | }, 2818 | "require": { 2819 | "php": ">=5.3.3", 2820 | "sebastian/diff": "~1.2", 2821 | "sebastian/exporter": "~1.2 || ~2.0" 2822 | }, 2823 | "require-dev": { 2824 | "phpunit/phpunit": "~4.4" 2825 | }, 2826 | "type": "library", 2827 | "extra": { 2828 | "branch-alias": { 2829 | "dev-master": "1.2.x-dev" 2830 | } 2831 | }, 2832 | "autoload": { 2833 | "classmap": [ 2834 | "src/" 2835 | ] 2836 | }, 2837 | "notification-url": "https://packagist.org/downloads/", 2838 | "license": [ 2839 | "BSD-3-Clause" 2840 | ], 2841 | "authors": [ 2842 | { 2843 | "name": "Jeff Welch", 2844 | "email": "whatthejeff@gmail.com" 2845 | }, 2846 | { 2847 | "name": "Volker Dusch", 2848 | "email": "github@wallbash.com" 2849 | }, 2850 | { 2851 | "name": "Bernhard Schussek", 2852 | "email": "bschussek@2bepublished.at" 2853 | }, 2854 | { 2855 | "name": "Sebastian Bergmann", 2856 | "email": "sebastian@phpunit.de" 2857 | } 2858 | ], 2859 | "description": "Provides the functionality to compare PHP values for equality", 2860 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 2861 | "keywords": [ 2862 | "comparator", 2863 | "compare", 2864 | "equality" 2865 | ], 2866 | "time": "2016-11-19 09:18:40" 2867 | }, 2868 | { 2869 | "name": "sebastian/diff", 2870 | "version": "1.4.1", 2871 | "source": { 2872 | "type": "git", 2873 | "url": "https://github.com/sebastianbergmann/diff.git", 2874 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" 2875 | }, 2876 | "dist": { 2877 | "type": "zip", 2878 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", 2879 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", 2880 | "shasum": "" 2881 | }, 2882 | "require": { 2883 | "php": ">=5.3.3" 2884 | }, 2885 | "require-dev": { 2886 | "phpunit/phpunit": "~4.8" 2887 | }, 2888 | "type": "library", 2889 | "extra": { 2890 | "branch-alias": { 2891 | "dev-master": "1.4-dev" 2892 | } 2893 | }, 2894 | "autoload": { 2895 | "classmap": [ 2896 | "src/" 2897 | ] 2898 | }, 2899 | "notification-url": "https://packagist.org/downloads/", 2900 | "license": [ 2901 | "BSD-3-Clause" 2902 | ], 2903 | "authors": [ 2904 | { 2905 | "name": "Kore Nordmann", 2906 | "email": "mail@kore-nordmann.de" 2907 | }, 2908 | { 2909 | "name": "Sebastian Bergmann", 2910 | "email": "sebastian@phpunit.de" 2911 | } 2912 | ], 2913 | "description": "Diff implementation", 2914 | "homepage": "https://github.com/sebastianbergmann/diff", 2915 | "keywords": [ 2916 | "diff" 2917 | ], 2918 | "time": "2015-12-08 07:14:41" 2919 | }, 2920 | { 2921 | "name": "sebastian/environment", 2922 | "version": "2.0.0", 2923 | "source": { 2924 | "type": "git", 2925 | "url": "https://github.com/sebastianbergmann/environment.git", 2926 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" 2927 | }, 2928 | "dist": { 2929 | "type": "zip", 2930 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 2931 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 2932 | "shasum": "" 2933 | }, 2934 | "require": { 2935 | "php": "^5.6 || ^7.0" 2936 | }, 2937 | "require-dev": { 2938 | "phpunit/phpunit": "^5.0" 2939 | }, 2940 | "type": "library", 2941 | "extra": { 2942 | "branch-alias": { 2943 | "dev-master": "2.0.x-dev" 2944 | } 2945 | }, 2946 | "autoload": { 2947 | "classmap": [ 2948 | "src/" 2949 | ] 2950 | }, 2951 | "notification-url": "https://packagist.org/downloads/", 2952 | "license": [ 2953 | "BSD-3-Clause" 2954 | ], 2955 | "authors": [ 2956 | { 2957 | "name": "Sebastian Bergmann", 2958 | "email": "sebastian@phpunit.de" 2959 | } 2960 | ], 2961 | "description": "Provides functionality to handle HHVM/PHP environments", 2962 | "homepage": "http://www.github.com/sebastianbergmann/environment", 2963 | "keywords": [ 2964 | "Xdebug", 2965 | "environment", 2966 | "hhvm" 2967 | ], 2968 | "time": "2016-11-26 07:53:53" 2969 | }, 2970 | { 2971 | "name": "sebastian/exporter", 2972 | "version": "2.0.0", 2973 | "source": { 2974 | "type": "git", 2975 | "url": "https://github.com/sebastianbergmann/exporter.git", 2976 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" 2977 | }, 2978 | "dist": { 2979 | "type": "zip", 2980 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 2981 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 2982 | "shasum": "" 2983 | }, 2984 | "require": { 2985 | "php": ">=5.3.3", 2986 | "sebastian/recursion-context": "~2.0" 2987 | }, 2988 | "require-dev": { 2989 | "ext-mbstring": "*", 2990 | "phpunit/phpunit": "~4.4" 2991 | }, 2992 | "type": "library", 2993 | "extra": { 2994 | "branch-alias": { 2995 | "dev-master": "2.0.x-dev" 2996 | } 2997 | }, 2998 | "autoload": { 2999 | "classmap": [ 3000 | "src/" 3001 | ] 3002 | }, 3003 | "notification-url": "https://packagist.org/downloads/", 3004 | "license": [ 3005 | "BSD-3-Clause" 3006 | ], 3007 | "authors": [ 3008 | { 3009 | "name": "Jeff Welch", 3010 | "email": "whatthejeff@gmail.com" 3011 | }, 3012 | { 3013 | "name": "Volker Dusch", 3014 | "email": "github@wallbash.com" 3015 | }, 3016 | { 3017 | "name": "Bernhard Schussek", 3018 | "email": "bschussek@2bepublished.at" 3019 | }, 3020 | { 3021 | "name": "Sebastian Bergmann", 3022 | "email": "sebastian@phpunit.de" 3023 | }, 3024 | { 3025 | "name": "Adam Harvey", 3026 | "email": "aharvey@php.net" 3027 | } 3028 | ], 3029 | "description": "Provides the functionality to export PHP variables for visualization", 3030 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 3031 | "keywords": [ 3032 | "export", 3033 | "exporter" 3034 | ], 3035 | "time": "2016-11-19 08:54:04" 3036 | }, 3037 | { 3038 | "name": "sebastian/global-state", 3039 | "version": "1.1.1", 3040 | "source": { 3041 | "type": "git", 3042 | "url": "https://github.com/sebastianbergmann/global-state.git", 3043 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 3044 | }, 3045 | "dist": { 3046 | "type": "zip", 3047 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 3048 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 3049 | "shasum": "" 3050 | }, 3051 | "require": { 3052 | "php": ">=5.3.3" 3053 | }, 3054 | "require-dev": { 3055 | "phpunit/phpunit": "~4.2" 3056 | }, 3057 | "suggest": { 3058 | "ext-uopz": "*" 3059 | }, 3060 | "type": "library", 3061 | "extra": { 3062 | "branch-alias": { 3063 | "dev-master": "1.0-dev" 3064 | } 3065 | }, 3066 | "autoload": { 3067 | "classmap": [ 3068 | "src/" 3069 | ] 3070 | }, 3071 | "notification-url": "https://packagist.org/downloads/", 3072 | "license": [ 3073 | "BSD-3-Clause" 3074 | ], 3075 | "authors": [ 3076 | { 3077 | "name": "Sebastian Bergmann", 3078 | "email": "sebastian@phpunit.de" 3079 | } 3080 | ], 3081 | "description": "Snapshotting of global state", 3082 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 3083 | "keywords": [ 3084 | "global state" 3085 | ], 3086 | "time": "2015-10-12 03:26:01" 3087 | }, 3088 | { 3089 | "name": "sebastian/object-enumerator", 3090 | "version": "2.0.0", 3091 | "source": { 3092 | "type": "git", 3093 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 3094 | "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35" 3095 | }, 3096 | "dist": { 3097 | "type": "zip", 3098 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35", 3099 | "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35", 3100 | "shasum": "" 3101 | }, 3102 | "require": { 3103 | "php": ">=5.6", 3104 | "sebastian/recursion-context": "~2.0" 3105 | }, 3106 | "require-dev": { 3107 | "phpunit/phpunit": "~5" 3108 | }, 3109 | "type": "library", 3110 | "extra": { 3111 | "branch-alias": { 3112 | "dev-master": "2.0.x-dev" 3113 | } 3114 | }, 3115 | "autoload": { 3116 | "classmap": [ 3117 | "src/" 3118 | ] 3119 | }, 3120 | "notification-url": "https://packagist.org/downloads/", 3121 | "license": [ 3122 | "BSD-3-Clause" 3123 | ], 3124 | "authors": [ 3125 | { 3126 | "name": "Sebastian Bergmann", 3127 | "email": "sebastian@phpunit.de" 3128 | } 3129 | ], 3130 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 3131 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 3132 | "time": "2016-11-19 07:35:10" 3133 | }, 3134 | { 3135 | "name": "sebastian/recursion-context", 3136 | "version": "2.0.0", 3137 | "source": { 3138 | "type": "git", 3139 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 3140 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" 3141 | }, 3142 | "dist": { 3143 | "type": "zip", 3144 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", 3145 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", 3146 | "shasum": "" 3147 | }, 3148 | "require": { 3149 | "php": ">=5.3.3" 3150 | }, 3151 | "require-dev": { 3152 | "phpunit/phpunit": "~4.4" 3153 | }, 3154 | "type": "library", 3155 | "extra": { 3156 | "branch-alias": { 3157 | "dev-master": "2.0.x-dev" 3158 | } 3159 | }, 3160 | "autoload": { 3161 | "classmap": [ 3162 | "src/" 3163 | ] 3164 | }, 3165 | "notification-url": "https://packagist.org/downloads/", 3166 | "license": [ 3167 | "BSD-3-Clause" 3168 | ], 3169 | "authors": [ 3170 | { 3171 | "name": "Jeff Welch", 3172 | "email": "whatthejeff@gmail.com" 3173 | }, 3174 | { 3175 | "name": "Sebastian Bergmann", 3176 | "email": "sebastian@phpunit.de" 3177 | }, 3178 | { 3179 | "name": "Adam Harvey", 3180 | "email": "aharvey@php.net" 3181 | } 3182 | ], 3183 | "description": "Provides functionality to recursively process PHP variables", 3184 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3185 | "time": "2016-11-19 07:33:16" 3186 | }, 3187 | { 3188 | "name": "sebastian/resource-operations", 3189 | "version": "1.0.0", 3190 | "source": { 3191 | "type": "git", 3192 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 3193 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" 3194 | }, 3195 | "dist": { 3196 | "type": "zip", 3197 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 3198 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 3199 | "shasum": "" 3200 | }, 3201 | "require": { 3202 | "php": ">=5.6.0" 3203 | }, 3204 | "type": "library", 3205 | "extra": { 3206 | "branch-alias": { 3207 | "dev-master": "1.0.x-dev" 3208 | } 3209 | }, 3210 | "autoload": { 3211 | "classmap": [ 3212 | "src/" 3213 | ] 3214 | }, 3215 | "notification-url": "https://packagist.org/downloads/", 3216 | "license": [ 3217 | "BSD-3-Clause" 3218 | ], 3219 | "authors": [ 3220 | { 3221 | "name": "Sebastian Bergmann", 3222 | "email": "sebastian@phpunit.de" 3223 | } 3224 | ], 3225 | "description": "Provides a list of PHP built-in functions that operate on resources", 3226 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 3227 | "time": "2015-07-28 20:34:47" 3228 | }, 3229 | { 3230 | "name": "sebastian/version", 3231 | "version": "2.0.1", 3232 | "source": { 3233 | "type": "git", 3234 | "url": "https://github.com/sebastianbergmann/version.git", 3235 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 3236 | }, 3237 | "dist": { 3238 | "type": "zip", 3239 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 3240 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 3241 | "shasum": "" 3242 | }, 3243 | "require": { 3244 | "php": ">=5.6" 3245 | }, 3246 | "type": "library", 3247 | "extra": { 3248 | "branch-alias": { 3249 | "dev-master": "2.0.x-dev" 3250 | } 3251 | }, 3252 | "autoload": { 3253 | "classmap": [ 3254 | "src/" 3255 | ] 3256 | }, 3257 | "notification-url": "https://packagist.org/downloads/", 3258 | "license": [ 3259 | "BSD-3-Clause" 3260 | ], 3261 | "authors": [ 3262 | { 3263 | "name": "Sebastian Bergmann", 3264 | "email": "sebastian@phpunit.de", 3265 | "role": "lead" 3266 | } 3267 | ], 3268 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3269 | "homepage": "https://github.com/sebastianbergmann/version", 3270 | "time": "2016-10-03 07:35:21" 3271 | }, 3272 | { 3273 | "name": "symfony/css-selector", 3274 | "version": "v3.0.9", 3275 | "source": { 3276 | "type": "git", 3277 | "url": "https://github.com/symfony/css-selector.git", 3278 | "reference": "b8999c1f33c224b2b66b38253f5e3a838d0d0115" 3279 | }, 3280 | "dist": { 3281 | "type": "zip", 3282 | "url": "https://api.github.com/repos/symfony/css-selector/zipball/b8999c1f33c224b2b66b38253f5e3a838d0d0115", 3283 | "reference": "b8999c1f33c224b2b66b38253f5e3a838d0d0115", 3284 | "shasum": "" 3285 | }, 3286 | "require": { 3287 | "php": ">=5.5.9" 3288 | }, 3289 | "type": "library", 3290 | "extra": { 3291 | "branch-alias": { 3292 | "dev-master": "3.0-dev" 3293 | } 3294 | }, 3295 | "autoload": { 3296 | "psr-4": { 3297 | "Symfony\\Component\\CssSelector\\": "" 3298 | }, 3299 | "exclude-from-classmap": [ 3300 | "/Tests/" 3301 | ] 3302 | }, 3303 | "notification-url": "https://packagist.org/downloads/", 3304 | "license": [ 3305 | "MIT" 3306 | ], 3307 | "authors": [ 3308 | { 3309 | "name": "Jean-François Simon", 3310 | "email": "jeanfrancois.simon@sensiolabs.com" 3311 | }, 3312 | { 3313 | "name": "Fabien Potencier", 3314 | "email": "fabien@symfony.com" 3315 | }, 3316 | { 3317 | "name": "Symfony Community", 3318 | "homepage": "https://symfony.com/contributors" 3319 | } 3320 | ], 3321 | "description": "Symfony CssSelector Component", 3322 | "homepage": "https://symfony.com", 3323 | "time": "2016-06-29 05:40:00" 3324 | }, 3325 | { 3326 | "name": "symfony/dom-crawler", 3327 | "version": "v3.0.9", 3328 | "source": { 3329 | "type": "git", 3330 | "url": "https://github.com/symfony/dom-crawler.git", 3331 | "reference": "dff8fecf1f56990d88058e3a1885c2a5f1b8e970" 3332 | }, 3333 | "dist": { 3334 | "type": "zip", 3335 | "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/dff8fecf1f56990d88058e3a1885c2a5f1b8e970", 3336 | "reference": "dff8fecf1f56990d88058e3a1885c2a5f1b8e970", 3337 | "shasum": "" 3338 | }, 3339 | "require": { 3340 | "php": ">=5.5.9", 3341 | "symfony/polyfill-mbstring": "~1.0" 3342 | }, 3343 | "require-dev": { 3344 | "symfony/css-selector": "~2.8|~3.0" 3345 | }, 3346 | "suggest": { 3347 | "symfony/css-selector": "" 3348 | }, 3349 | "type": "library", 3350 | "extra": { 3351 | "branch-alias": { 3352 | "dev-master": "3.0-dev" 3353 | } 3354 | }, 3355 | "autoload": { 3356 | "psr-4": { 3357 | "Symfony\\Component\\DomCrawler\\": "" 3358 | }, 3359 | "exclude-from-classmap": [ 3360 | "/Tests/" 3361 | ] 3362 | }, 3363 | "notification-url": "https://packagist.org/downloads/", 3364 | "license": [ 3365 | "MIT" 3366 | ], 3367 | "authors": [ 3368 | { 3369 | "name": "Fabien Potencier", 3370 | "email": "fabien@symfony.com" 3371 | }, 3372 | { 3373 | "name": "Symfony Community", 3374 | "homepage": "https://symfony.com/contributors" 3375 | } 3376 | ], 3377 | "description": "Symfony DomCrawler Component", 3378 | "homepage": "https://symfony.com", 3379 | "time": "2016-07-30 07:22:48" 3380 | }, 3381 | { 3382 | "name": "symfony/yaml", 3383 | "version": "v3.2.1", 3384 | "source": { 3385 | "type": "git", 3386 | "url": "https://github.com/symfony/yaml.git", 3387 | "reference": "a7095af4b97a0955f85c8989106c249fa649011f" 3388 | }, 3389 | "dist": { 3390 | "type": "zip", 3391 | "url": "https://api.github.com/repos/symfony/yaml/zipball/a7095af4b97a0955f85c8989106c249fa649011f", 3392 | "reference": "a7095af4b97a0955f85c8989106c249fa649011f", 3393 | "shasum": "" 3394 | }, 3395 | "require": { 3396 | "php": ">=5.5.9" 3397 | }, 3398 | "require-dev": { 3399 | "symfony/console": "~2.8|~3.0" 3400 | }, 3401 | "suggest": { 3402 | "symfony/console": "For validating YAML files using the lint command" 3403 | }, 3404 | "type": "library", 3405 | "extra": { 3406 | "branch-alias": { 3407 | "dev-master": "3.2-dev" 3408 | } 3409 | }, 3410 | "autoload": { 3411 | "psr-4": { 3412 | "Symfony\\Component\\Yaml\\": "" 3413 | }, 3414 | "exclude-from-classmap": [ 3415 | "/Tests/" 3416 | ] 3417 | }, 3418 | "notification-url": "https://packagist.org/downloads/", 3419 | "license": [ 3420 | "MIT" 3421 | ], 3422 | "authors": [ 3423 | { 3424 | "name": "Fabien Potencier", 3425 | "email": "fabien@symfony.com" 3426 | }, 3427 | { 3428 | "name": "Symfony Community", 3429 | "homepage": "https://symfony.com/contributors" 3430 | } 3431 | ], 3432 | "description": "Symfony Yaml Component", 3433 | "homepage": "https://symfony.com", 3434 | "time": "2016-12-10 10:07:06" 3435 | }, 3436 | { 3437 | "name": "webmozart/assert", 3438 | "version": "1.2.0", 3439 | "source": { 3440 | "type": "git", 3441 | "url": "https://github.com/webmozart/assert.git", 3442 | "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" 3443 | }, 3444 | "dist": { 3445 | "type": "zip", 3446 | "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", 3447 | "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", 3448 | "shasum": "" 3449 | }, 3450 | "require": { 3451 | "php": "^5.3.3 || ^7.0" 3452 | }, 3453 | "require-dev": { 3454 | "phpunit/phpunit": "^4.6", 3455 | "sebastian/version": "^1.0.1" 3456 | }, 3457 | "type": "library", 3458 | "extra": { 3459 | "branch-alias": { 3460 | "dev-master": "1.3-dev" 3461 | } 3462 | }, 3463 | "autoload": { 3464 | "psr-4": { 3465 | "Webmozart\\Assert\\": "src/" 3466 | } 3467 | }, 3468 | "notification-url": "https://packagist.org/downloads/", 3469 | "license": [ 3470 | "MIT" 3471 | ], 3472 | "authors": [ 3473 | { 3474 | "name": "Bernhard Schussek", 3475 | "email": "bschussek@gmail.com" 3476 | } 3477 | ], 3478 | "description": "Assertions to validate method input/output with nice error messages.", 3479 | "keywords": [ 3480 | "assert", 3481 | "check", 3482 | "validate" 3483 | ], 3484 | "time": "2016-11-23 20:04:58" 3485 | } 3486 | ], 3487 | "aliases": [], 3488 | "minimum-stability": "dev", 3489 | "stability-flags": [], 3490 | "prefer-stable": true, 3491 | "prefer-lowest": false, 3492 | "platform": { 3493 | "ext-pcntl": "*", 3494 | "php": ">=5.6.0" 3495 | }, 3496 | "platform-dev": [] 3497 | } 3498 | --------------------------------------------------------------------------------