├── .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 |
--------------------------------------------------------------------------------