├── app
├── Commands
│ ├── .gitkeep
│ ├── DefaultMqConsumer.php
│ ├── DefaultMqProducer.php
│ ├── TopicMqProducer.php
│ ├── DirectMqProducer.php
│ ├── TopicMqConsumer.php
│ ├── DirectMqConsumer.php
│ ├── HeaderMqProducer.php
│ ├── HeaderMqConsumer.php
│ └── DirectQosMqConsumer.php
├── Extensions
│ └── AmqpConnectionChannel.php
└── Providers
│ └── AppServiceProvider.php
├── .gitignore
├── .env
├── .gitattributes
├── tests
├── TestCase.php
├── Feature
│ └── InspiringCommandTest.php
└── CreatesApplication.php
├── .editorconfig
├── docker-compose.yml
├── Dockerfile
├── box.json
├── phpunit.xml.dist
├── README.md
├── LICENSE.md
├── composer.json
├── bootstrap
└── app.php
├── artisan
├── config
├── app.php
└── commands.php
└── composer.lock
/app/Commands/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | /.idea
3 | /.vscode
4 | /.vagrant
5 |
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | RABBITMQ_HOST=rabbitmq
2 | RABBITMQ_PORT=5672
3 | RABBITMQ_USER=user
4 | RABBITMQ_PASSWORD=bitnami
5 | RABBITMQ_VHOST='/'
6 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | .travis.yml export-ignore
3 | .styleci.yml export-ignore
4 | .scrutinizer.yml export-ignore
5 | BACKERS.md export-ignore
6 | CONTRIBUTING.md export-ignore
7 | CHANGELOG.md export-ignore
8 |
--------------------------------------------------------------------------------
/tests/TestCase.php:
--------------------------------------------------------------------------------
1 | artisan('inspiring')
17 | ->expectsOutput('Simplicity is the ultimate sophistication.')
18 | ->assertExitCode(0);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/Extensions/AmqpConnectionChannel.php:
--------------------------------------------------------------------------------
1 | channel();
12 |
13 | return [ $connection, $channel ];
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/tests/CreatesApplication.php:
--------------------------------------------------------------------------------
1 | make(Kernel::class)->bootstrap();
19 |
20 | return $app;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/Providers/AppServiceProvider.php:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 | ./tests/Feature
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | ./app
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | RabbitMQ tutorial for PHP
2 | ---
3 |
4 | ## Installation
5 | - `cp .env.example .env`
6 | - Populate the required environment variables.
7 | - `sudo chown -R 1001:1001 ~/.backup/rabbitmq/rabbitmq-tutorial`
8 | - It comes with docker. `docker-compose up -d --build`
9 | - `docker-compose exec php bash`
10 | - `composer install`
11 | - `php artisan `
12 |
13 |
14 | ## Available commands
15 | **Adding `--auto` to all the following commands will not ask for message, exchange, queue, routing and binding key. Or empty values for the prompted questions will fill up data automatically.**
16 |
17 | - `php artisan default:publisher`
18 | - `php artisan default:consumer`
19 |
20 | - `php artisan direect:publisher`
21 | - `php artisan direect:consumer`
22 |
23 | - `php artisan direct:consumer:qos`
24 |
25 | - `php artisan topic:publisher`
26 | - `php artisan topic:consumer`
27 |
28 | - `php artisan header:publisher`
29 | - `php artisan header:consumer`
30 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) Nuno Maduro
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.
22 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "laravel-zero/laravel-zero",
3 | "description": "The Laravel Zero Framework.",
4 | "keywords": ["framework", "laravel", "laravel zero", "console", "cli"],
5 | "homepage": "https://laravel-zero.com",
6 | "type": "project",
7 | "license": "MIT",
8 | "support": {
9 | "issues": "https://github.com/laravel-zero/laravel-zero/issues",
10 | "source": "https://github.com/laravel-zero/laravel-zero"
11 | },
12 | "authors": [
13 | {
14 | "name": "Nuno Maduro",
15 | "email": "enunomaduro@gmail.com"
16 | }
17 | ],
18 | "require": {
19 | "php": "^7.1.3",
20 | "fzaninotto/faker": "^1.8",
21 | "laravel-zero/framework": "5.8.*",
22 | "php-amqplib/php-amqplib": "^2.10"
23 | },
24 | "require-dev": {
25 | "mockery/mockery": "^1.0",
26 | "phpunit/phpunit": "^7.5"
27 | },
28 | "autoload": {
29 | "psr-4": {
30 | "App\\": "app/"
31 | }
32 | },
33 | "autoload-dev": {
34 | "psr-4": {
35 | "Tests\\": "tests/"
36 | }
37 | },
38 | "config": {
39 | "preferred-install": "dist",
40 | "sort-packages": true,
41 | "optimize-autoloader": true
42 | },
43 | "scripts": {
44 | "post-create-project-cmd": [
45 | "@php application app:rename"
46 | ]
47 | },
48 | "minimum-stability": "dev",
49 | "prefer-stable": true,
50 | "bin": ["artisan"]
51 | }
52 |
--------------------------------------------------------------------------------
/app/Commands/DefaultMqConsumer.php:
--------------------------------------------------------------------------------
1 | option('auto')) {
20 | $qn = trim($this->ask('Write a queue name: '));
21 | }
22 |
23 | if (empty($qn)) {
24 | $qn = 'default.exchange.queue';
25 | }
26 |
27 | /* @var AMQPStreamConnection $connection */
28 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
29 | [ $connection, $channel ] = $this->setup();
30 | $channel->queue_declare($qn, false, true, false, false);
31 |
32 | $callback = function (AMQPMessage $msg) use ($qn) {
33 | $this->output->success(sprintf("[queue: %s] - [MSG: %s]", $qn, $msg->body));
34 | };
35 |
36 | $channel->basic_consume($qn, '', false, true, false, false, $callback);
37 |
38 | $this->output->warning('Waiting for messages [' . $qn . ']');
39 |
40 | while ( $channel->is_consuming() ) {
41 | $channel->wait();
42 | }
43 |
44 | $channel->close();
45 | $connection->close();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/app/Commands/DefaultMqProducer.php:
--------------------------------------------------------------------------------
1 | option('auto');
21 |
22 | if (!$auto) {
23 | $text = trim($this->ask('Write any message: '));
24 | $qn = trim($this->ask('Write a queue name: '));
25 | }
26 |
27 | if (empty($text)) {
28 | $text = json_encode([
29 | 'name' => Factory::create()->name,
30 | 'email' => Factory::create()->email,
31 | ]);
32 | }
33 |
34 | if (empty($qn)) {
35 | $qn = 'default.exchange.queue';
36 | }
37 |
38 | $message = new AMQPMessage($text, [ 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT ]);
39 |
40 | /* @var AMQPStreamConnection $connection */
41 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
42 | [ $connection, $channel ] = $this->setup();
43 | $channel->queue_declare($qn, false, true, false, false);
44 | $channel->basic_publish($message, '', $qn);
45 |
46 | $this->output->success(sprintf('Sent message: [queue: %s] - [MSG: %s]', $qn, $text));
47 |
48 | $channel->close();
49 | $connection->close();
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/bootstrap/app.php:
--------------------------------------------------------------------------------
1 | singleton(
30 | Illuminate\Contracts\Console\Kernel::class,
31 | LaravelZero\Framework\Kernel::class
32 | );
33 |
34 | $app->singleton(
35 | Illuminate\Contracts\Debug\ExceptionHandler::class,
36 | Illuminate\Foundation\Exceptions\Handler::class
37 | );
38 |
39 | /*
40 | |--------------------------------------------------------------------------
41 | | Return The Application
42 | |--------------------------------------------------------------------------
43 | |
44 | | This script returns the application instance. The instance is given to
45 | | the calling script so we can separate the building of the instances
46 | | from the actual running of the application and sending responses.
47 | |
48 | */
49 |
50 | return $app;
51 |
--------------------------------------------------------------------------------
/app/Commands/TopicMqProducer.php:
--------------------------------------------------------------------------------
1 | option('auto');
21 |
22 | if (!$auto) {
23 | $text = trim($this->ask('Write any message: '));
24 | $ex = trim($this->ask('Write an exchange name: '));
25 | $r = trim($this->ask('Write a routing key: '));
26 | }
27 |
28 | if (empty($text)) {
29 | $text = json_encode([
30 | 'name' => Factory::create()->name,
31 | 'email' => Factory::create()->email,
32 | ]);
33 | }
34 |
35 | if (empty($ex)) {
36 | $ex = 'topic.exchange';
37 | }
38 |
39 | if (empty($r)) {
40 | $r = 'topic.routing.key';
41 | }
42 |
43 | $message = new AMQPMessage($text, [ 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT ]);
44 |
45 | /* @var AMQPStreamConnection $connection */
46 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
47 | [ $connection, $channel ] = $this->setup();
48 | $channel->exchange_declare($ex, 'topic', false, true, false);
49 |
50 | $channel->basic_publish($message, $ex, $r);
51 |
52 | $this->output->success(sprintf('Sent message: [exchange: %s] [routing: %s] - [MSG: %s]', $ex, $r, $text));
53 |
54 | $channel->close();
55 | $connection->close();
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/app/Commands/DirectMqProducer.php:
--------------------------------------------------------------------------------
1 | option('auto');
21 |
22 | if (!$auto) {
23 | $text = trim($this->ask('Write any message: '));
24 | $ex = trim($this->ask('Write an exchange name: '));
25 | $r = trim($this->ask('Write a routing key: '));
26 | }
27 |
28 | if (empty($text)) {
29 | $text = json_encode([
30 | 'name' => Factory::create()->name,
31 | 'email' => Factory::create()->email,
32 | ]);
33 | }
34 |
35 | if (empty($ex)) {
36 | $ex = 'direct.exchange';
37 | }
38 |
39 | if (empty($r)) {
40 | $r = 'direct.routing.key';
41 | }
42 |
43 | $message = new AMQPMessage($text, [ 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT ]);
44 |
45 | /* @var AMQPStreamConnection $connection */
46 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
47 | [ $connection, $channel ] = $this->setup();
48 | $channel->exchange_declare($ex, 'direct', false, true, false);
49 |
50 | $channel->basic_publish($message, $ex, $r);
51 |
52 | $this->output->success(sprintf('Sent message: [exchange: %s] [routing: %s] - [MSG: %s]', $ex, $r, $text));
53 |
54 | $channel->close();
55 | $connection->close();
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/app/Commands/TopicMqConsumer.php:
--------------------------------------------------------------------------------
1 | option('auto')) {
20 | $ex = trim($this->ask('Write an exchange name: '));
21 | $qn = trim($this->ask('Write a queue name: '));
22 | $bk = trim($this->ask('Write a binding key: '));
23 | }
24 |
25 | if (empty($ex)) {
26 | $ex = 'topic.exchange';
27 | }
28 |
29 | if (empty($bk)) {
30 | $bk = 'topic.#';
31 | }
32 |
33 | if (empty($qn)) {
34 | $qn = 'topic.exchange.queue';
35 | }
36 |
37 | /* @var AMQPStreamConnection $connection */
38 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
39 | [ $connection, $channel ] = $this->setup();
40 | $channel->queue_declare($qn, false, true, false, false);
41 | $channel->queue_bind($qn, $ex, $bk);
42 |
43 | $callback = function (AMQPMessage $msg) use ($qn, $ex, $bk) {
44 | $this->output->success(sprintf("[ex: %s] [queue: %s] [bind: %s] - [MSG: %s]", $ex, $qn, $bk, $msg->body));
45 | };
46 |
47 | $channel->basic_consume($qn, '', false, true, false, false, $callback);
48 |
49 | $this->output->warning(sprintf('Waiting for messages [%s] - [%s] - [%s]', $ex, $qn, $bk));
50 |
51 | while ( $channel->is_consuming() ) {
52 | $channel->wait();
53 | }
54 |
55 | $channel->close();
56 | $connection->close();
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/app/Commands/DirectMqConsumer.php:
--------------------------------------------------------------------------------
1 | option('auto')) {
20 | $ex = trim($this->ask('Write an exchange name: '));
21 | $qn = trim($this->ask('Write a queue name: '));
22 | $bk = trim($this->ask('Write a binding key: '));
23 | }
24 |
25 | if (empty($ex)) {
26 | $ex = 'direct.exchange';
27 | }
28 |
29 | if (empty($bk)) {
30 | $bk = 'direct.routing.key';
31 | }
32 |
33 | if (empty($qn)) {
34 | $qn = 'direct.exchange.queue';
35 | }
36 |
37 | /* @var AMQPStreamConnection $connection */
38 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
39 | [ $connection, $channel ] = $this->setup();
40 | $channel->queue_declare($qn, false, true, false, false);
41 | $channel->queue_bind($qn, $ex, $bk);
42 |
43 | $callback = function (AMQPMessage $msg) use ($qn, $ex, $bk) {
44 | $this->output->success(sprintf("[ex: %s] [queue: %s] [bind: %s] - [MSG: %s]", $ex, $qn, $bk, $msg->body));
45 | };
46 |
47 | $channel->basic_consume($qn, '', false, true, false, false, $callback);
48 |
49 | $this->output->warning(sprintf('Waiting for messages [%s] - [%s] - [%s]', $ex, $qn, $bk));
50 |
51 | while ( $channel->is_consuming() ) {
52 | $channel->wait();
53 | }
54 |
55 | $channel->close();
56 | $connection->close();
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/artisan:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | make(Illuminate\Contracts\Console\Kernel::class);
34 |
35 | $status = $kernel->handle(
36 | $input = new Symfony\Component\Console\Input\ArgvInput,
37 | new Symfony\Component\Console\Output\ConsoleOutput
38 | );
39 |
40 | /*
41 | |--------------------------------------------------------------------------
42 | | Shutdown The Application
43 | |--------------------------------------------------------------------------
44 | |
45 | | Once Artisan has finished running, we will fire off the shutdown events
46 | | so that any final work may be done by the application before we shut
47 | | down the process. This is the last thing to happen to the request.
48 | |
49 | */
50 |
51 | $kernel->terminate($input, $status);
52 |
53 | exit($status);
54 |
--------------------------------------------------------------------------------
/app/Commands/HeaderMqProducer.php:
--------------------------------------------------------------------------------
1 | option('auto');
22 |
23 | if (!$auto) {
24 | $text = trim($this->ask('Write any message: '));
25 | $ex = trim($this->ask('Write an exchange name: '));
26 | }
27 |
28 | if (empty($text)) {
29 | $text = json_encode([
30 | 'name' => Factory::create()->name,
31 | 'email' => Factory::create()->email,
32 | ]);
33 | }
34 |
35 | if (empty($ex)) {
36 | $ex = 'header.exchange';
37 | }
38 |
39 | $nType = rand(1, 100) % 2 == 0 ? 'even' : 'odd';
40 | $names = [ 'anik', 'syed' ];
41 | shuffle($names);
42 | $name = $names[0];
43 |
44 | $headers = [
45 | 'number' => $nType,
46 | 'name' => $name,
47 | ];
48 |
49 | $message = new AMQPMessage($text, [
50 | 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT,
51 | 'application_headers' => new AMQPTable($headers),
52 | ]);
53 |
54 | /* @var AMQPStreamConnection $connection */
55 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
56 | [ $connection, $channel ] = $this->setup();
57 | $channel->exchange_declare($ex, 'headers', false, true, false);
58 |
59 | $channel->basic_publish($message, $ex);
60 |
61 | $this->output->success(sprintf('Sent message: [exchange: %s] [headers: %s] - [MSG: %s]', $ex, json_encode($headers), $text));
62 |
63 | $channel->close();
64 | $connection->close();
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/config/app.php:
--------------------------------------------------------------------------------
1 | 'Artisan',
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Application Version
21 | |--------------------------------------------------------------------------
22 | |
23 | | This value determines the "version" your application is currently running
24 | | in. You may want to follow the "Semantic Versioning" - Given a version
25 | | number MAJOR.MINOR.PATCH when an update happens: https://semver.org.
26 | |
27 | */
28 |
29 | 'version' => app('git.version'),
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Application Environment
34 | |--------------------------------------------------------------------------
35 | |
36 | | This value determines the "environment" your application is currently
37 | | running in. This may determine how you prefer to configure various
38 | | services your application utilizes. Should be true in production.
39 | |
40 | */
41 |
42 | 'production' => false,
43 |
44 | /*
45 | |--------------------------------------------------------------------------
46 | | Autoloaded Service Providers
47 | |--------------------------------------------------------------------------
48 | |
49 | | The service providers listed here will be automatically loaded on the
50 | | request to your application. Feel free to add your own services to
51 | | this array to grant expanded functionality to your applications.
52 | |
53 | */
54 |
55 | 'providers' => [
56 | App\Providers\AppServiceProvider::class,
57 | ],
58 |
59 | ];
60 |
--------------------------------------------------------------------------------
/app/Commands/HeaderMqConsumer.php:
--------------------------------------------------------------------------------
1 | option('auto')) {
21 | $ex = trim($this->ask('Write an exchange name: '));
22 | $qn = trim($this->ask('Write a queue name: '));
23 | }
24 |
25 | if (empty($ex)) {
26 | $ex = 'header.exchange';
27 | }
28 |
29 | if (empty($qn)) {
30 | $qn = 'header.exchange.queue.' . ($this->option('odd') ? 'odd' : 'even');
31 | }
32 |
33 | if ($this->option('odd')) {
34 | $props = [
35 | 'x-match' => 'any',
36 | 'number' => 'odd',
37 | 'name' => 'syed',
38 | ];
39 | } else {
40 | $props = [
41 | 'x-match' => 'all',
42 | 'number' => 'even',
43 | 'name' => 'anik',
44 | ];
45 | }
46 |
47 | /* @var AMQPStreamConnection $connection */
48 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
49 | [ $connection, $channel ] = $this->setup();
50 | $channel->queue_declare($qn, false, true, false, false, false);
51 | $channel->queue_bind($qn, $ex, '', false, new AMQPTable($props));
52 |
53 | $callback = function (AMQPMessage $msg) use ($qn, $ex, $props) {
54 | $this->output->success(sprintf("[ex: %s] [queue: %s] [headers: %s] - [MSG: %s] - [Msg-Header: %s]", $ex, $qn, json_encode($props), $msg->body, json_encode($msg->get_properties()['application_headers']->getNativeData())));
55 | };
56 |
57 | $channel->basic_consume($qn, '', false, true, false, false, $callback);
58 |
59 | $this->output->warning(sprintf('Waiting for messages [%s] - [%s] - [%s]', $ex, $qn, json_encode($props)));
60 |
61 | while ( $channel->is_consuming() ) {
62 | $channel->wait();
63 | }
64 |
65 | $channel->close();
66 | $connection->close();
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/config/commands.php:
--------------------------------------------------------------------------------
1 | NunoMaduro\LaravelConsoleSummary\SummaryCommand::class,
17 |
18 | /*
19 | |--------------------------------------------------------------------------
20 | | Commands Paths
21 | |--------------------------------------------------------------------------
22 | |
23 | | This value determines the "paths" that should be loaded by the console's
24 | | kernel. Foreach "path" present on the array provided below the kernel
25 | | will extract all "Illuminate\Console\Command" based class commands.
26 | |
27 | */
28 |
29 | 'paths' => [app_path('Commands')],
30 |
31 | /*
32 | |--------------------------------------------------------------------------
33 | | Added Commands
34 | |--------------------------------------------------------------------------
35 | |
36 | | You may want to include a single command class without having to load an
37 | | entire folder. Here you can specify which commands should be added to
38 | | your list of commands. The console's kernel will try to load them.
39 | |
40 | */
41 |
42 | 'add' => [
43 | // ..
44 | ],
45 |
46 | /*
47 | |--------------------------------------------------------------------------
48 | | Hidden Commands
49 | |--------------------------------------------------------------------------
50 | |
51 | | Your application commands will always be visible on the application list
52 | | of commands. But you can still make them "hidden" specifying an array
53 | | of commands below. All "hidden" commands can still be run/executed.
54 | |
55 | */
56 |
57 | 'hidden' => [
58 | NunoMaduro\LaravelConsoleSummary\SummaryCommand::class,
59 | Symfony\Component\Console\Command\HelpCommand::class,
60 | Illuminate\Console\Scheduling\ScheduleRunCommand::class,
61 | Illuminate\Console\Scheduling\ScheduleFinishCommand::class,
62 | Illuminate\Foundation\Console\VendorPublishCommand::class,
63 | ],
64 |
65 | /*
66 | |--------------------------------------------------------------------------
67 | | Removed Commands
68 | |--------------------------------------------------------------------------
69 | |
70 | | Do you have a service provider that loads a list of commands that
71 | | you don't need? No problem. Laravel Zero allows you to specify
72 | | below a list of commands that you don't to see in your app.
73 | |
74 | */
75 |
76 | 'remove' => [
77 | // ..
78 | ],
79 |
80 | ];
81 |
--------------------------------------------------------------------------------
/app/Commands/DirectQosMqConsumer.php:
--------------------------------------------------------------------------------
1 | option('auto')) {
20 | $ex = trim($this->ask('Write an exchange name: '));
21 | $qn = trim($this->ask('Write a queue name: '));
22 | $bk = trim($this->ask('Write a binding key: '));
23 | }
24 |
25 | if (empty($ex)) {
26 | $ex = 'direct.exchange';
27 | }
28 |
29 | if (empty($bk)) {
30 | $bk = 'direct.routing.key';
31 | }
32 |
33 | if (empty($qn)) {
34 | $qn = 'direct.exchange.qos.queue';
35 | }
36 |
37 | /* @var AMQPStreamConnection $connection */
38 | /* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
39 | [ $connection, $channel ] = $this->setup();
40 | $channel->queue_declare($qn, false, true, false, false);
41 | $channel->queue_bind($qn, $ex, $bk);
42 |
43 | $callback = function (AMQPMessage $msg) use ($qn, $ex, $bk) {
44 | $this->output->success(sprintf("[ex: %s] [queue: %s] [bind: %s] - [MSG: %s]", $ex, $qn, $bk, $msg->body));
45 | $chosen = $this->choice('Acknowledge message received? ', [
46 | 'Ack',
47 | 'Reject - No requeue',
48 | 'Reject - Requeue',
49 | 'Neg Ack - No requeue',
50 | 'Neg Ack - Requeue',
51 | ]);
52 |
53 | switch ( $chosen ) {
54 | case 'Ack':
55 | $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
56 | break;
57 | case 'Reject - No requeue':
58 | $msg->delivery_info['channel']->basic_reject($msg->delivery_info['delivery_tag'], false);
59 | break;
60 | case 'Reject - Requeue':
61 | $msg->delivery_info['channel']->basic_reject($msg->delivery_info['delivery_tag'], true);
62 | break;
63 | case 'Neg Ack - No requeue':
64 | $msg->delivery_info['channel']->basic_nack($msg->delivery_info['delivery_tag'], false, false);
65 | break;
66 | case 'Neg Ack - Requeue':
67 | $msg->delivery_info['channel']->basic_nack($msg->delivery_info['delivery_tag'], false, true);
68 | break;
69 | }
70 |
71 | $this->output->success('Waiting for next message to arrive.');
72 | };
73 |
74 | $channel->basic_qos(null, 1, null);
75 | $channel->basic_consume($qn, '', false, false, false, false, $callback);
76 |
77 | $this->output->warning(sprintf('Waiting for messages [%s] - [%s] - [%s]', $ex, $qn, $bk));
78 |
79 | while ( $channel->is_consuming() ) {
80 | $channel->wait();
81 | }
82 |
83 | $channel->close();
84 | $connection->close();
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/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#installing-dependencies",
5 | "This file is @generated automatically"
6 | ],
7 | "content-hash": "73f289064e9369d86370e054c309b35a",
8 | "packages": [
9 | {
10 | "name": "doctrine/inflector",
11 | "version": "v1.3.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/doctrine/inflector.git",
15 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
20 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": "^7.1"
25 | },
26 | "require-dev": {
27 | "phpunit/phpunit": "^6.2"
28 | },
29 | "type": "library",
30 | "extra": {
31 | "branch-alias": {
32 | "dev-master": "1.3.x-dev"
33 | }
34 | },
35 | "autoload": {
36 | "psr-4": {
37 | "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
38 | }
39 | },
40 | "notification-url": "https://packagist.org/downloads/",
41 | "license": [
42 | "MIT"
43 | ],
44 | "authors": [
45 | {
46 | "name": "Roman Borschel",
47 | "email": "roman@code-factory.org"
48 | },
49 | {
50 | "name": "Benjamin Eberlei",
51 | "email": "kontakt@beberlei.de"
52 | },
53 | {
54 | "name": "Guilherme Blanco",
55 | "email": "guilhermeblanco@gmail.com"
56 | },
57 | {
58 | "name": "Jonathan Wage",
59 | "email": "jonwage@gmail.com"
60 | },
61 | {
62 | "name": "Johannes Schmitt",
63 | "email": "schmittjoh@gmail.com"
64 | }
65 | ],
66 | "description": "Common String Manipulations with regard to casing and singular/plural rules.",
67 | "homepage": "http://www.doctrine-project.org",
68 | "keywords": [
69 | "inflection",
70 | "pluralize",
71 | "singularize",
72 | "string"
73 | ],
74 | "time": "2018-01-09T20:05:19+00:00"
75 | },
76 | {
77 | "name": "dragonmantank/cron-expression",
78 | "version": "v2.3.0",
79 | "source": {
80 | "type": "git",
81 | "url": "https://github.com/dragonmantank/cron-expression.git",
82 | "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27"
83 | },
84 | "dist": {
85 | "type": "zip",
86 | "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/72b6fbf76adb3cf5bc0db68559b33d41219aba27",
87 | "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27",
88 | "shasum": ""
89 | },
90 | "require": {
91 | "php": "^7.0"
92 | },
93 | "require-dev": {
94 | "phpunit/phpunit": "^6.4|^7.0"
95 | },
96 | "type": "library",
97 | "extra": {
98 | "branch-alias": {
99 | "dev-master": "2.3-dev"
100 | }
101 | },
102 | "autoload": {
103 | "psr-4": {
104 | "Cron\\": "src/Cron/"
105 | }
106 | },
107 | "notification-url": "https://packagist.org/downloads/",
108 | "license": [
109 | "MIT"
110 | ],
111 | "authors": [
112 | {
113 | "name": "Michael Dowling",
114 | "email": "mtdowling@gmail.com",
115 | "homepage": "https://github.com/mtdowling"
116 | },
117 | {
118 | "name": "Chris Tankersley",
119 | "email": "chris@ctankersley.com",
120 | "homepage": "https://github.com/dragonmantank"
121 | }
122 | ],
123 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
124 | "keywords": [
125 | "cron",
126 | "schedule"
127 | ],
128 | "time": "2019-03-31T00:38:28+00:00"
129 | },
130 | {
131 | "name": "filp/whoops",
132 | "version": "2.5.0",
133 | "source": {
134 | "type": "git",
135 | "url": "https://github.com/filp/whoops.git",
136 | "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96"
137 | },
138 | "dist": {
139 | "type": "zip",
140 | "url": "https://api.github.com/repos/filp/whoops/zipball/cde50e6720a39fdacb240159d3eea6865d51fd96",
141 | "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96",
142 | "shasum": ""
143 | },
144 | "require": {
145 | "php": "^5.5.9 || ^7.0",
146 | "psr/log": "^1.0.1"
147 | },
148 | "require-dev": {
149 | "mockery/mockery": "^0.9 || ^1.0",
150 | "phpunit/phpunit": "^4.8.35 || ^5.7",
151 | "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0"
152 | },
153 | "suggest": {
154 | "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
155 | "whoops/soap": "Formats errors as SOAP responses"
156 | },
157 | "type": "library",
158 | "extra": {
159 | "branch-alias": {
160 | "dev-master": "2.2-dev"
161 | }
162 | },
163 | "autoload": {
164 | "psr-4": {
165 | "Whoops\\": "src/Whoops/"
166 | }
167 | },
168 | "notification-url": "https://packagist.org/downloads/",
169 | "license": [
170 | "MIT"
171 | ],
172 | "authors": [
173 | {
174 | "name": "Filipe Dobreira",
175 | "role": "Developer",
176 | "homepage": "https://github.com/filp"
177 | }
178 | ],
179 | "description": "php error handling for cool kids",
180 | "homepage": "https://filp.github.io/whoops/",
181 | "keywords": [
182 | "error",
183 | "exception",
184 | "handling",
185 | "library",
186 | "throwable",
187 | "whoops"
188 | ],
189 | "time": "2019-08-07T09:00:00+00:00"
190 | },
191 | {
192 | "name": "fzaninotto/faker",
193 | "version": "v1.8.0",
194 | "source": {
195 | "type": "git",
196 | "url": "https://github.com/fzaninotto/Faker.git",
197 | "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de"
198 | },
199 | "dist": {
200 | "type": "zip",
201 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de",
202 | "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de",
203 | "shasum": ""
204 | },
205 | "require": {
206 | "php": "^5.3.3 || ^7.0"
207 | },
208 | "require-dev": {
209 | "ext-intl": "*",
210 | "phpunit/phpunit": "^4.8.35 || ^5.7",
211 | "squizlabs/php_codesniffer": "^1.5"
212 | },
213 | "type": "library",
214 | "extra": {
215 | "branch-alias": {
216 | "dev-master": "1.8-dev"
217 | }
218 | },
219 | "autoload": {
220 | "psr-4": {
221 | "Faker\\": "src/Faker/"
222 | }
223 | },
224 | "notification-url": "https://packagist.org/downloads/",
225 | "license": [
226 | "MIT"
227 | ],
228 | "authors": [
229 | {
230 | "name": "François Zaninotto"
231 | }
232 | ],
233 | "description": "Faker is a PHP library that generates fake data for you.",
234 | "keywords": [
235 | "data",
236 | "faker",
237 | "fixtures"
238 | ],
239 | "time": "2018-07-12T10:23:15+00:00"
240 | },
241 | {
242 | "name": "illuminate/cache",
243 | "version": "v5.8.33",
244 | "source": {
245 | "type": "git",
246 | "url": "https://github.com/illuminate/cache.git",
247 | "reference": "e6acac59f94c6362809b580918f7f3f6142d5796"
248 | },
249 | "dist": {
250 | "type": "zip",
251 | "url": "https://api.github.com/repos/illuminate/cache/zipball/e6acac59f94c6362809b580918f7f3f6142d5796",
252 | "reference": "e6acac59f94c6362809b580918f7f3f6142d5796",
253 | "shasum": ""
254 | },
255 | "require": {
256 | "illuminate/contracts": "5.8.*",
257 | "illuminate/support": "5.8.*",
258 | "php": "^7.1.3"
259 | },
260 | "suggest": {
261 | "illuminate/database": "Required to use the database cache driver (5.8.*).",
262 | "illuminate/filesystem": "Required to use the file cache driver (5.8.*).",
263 | "illuminate/redis": "Required to use the redis cache driver (5.8.*)."
264 | },
265 | "type": "library",
266 | "extra": {
267 | "branch-alias": {
268 | "dev-master": "5.8-dev"
269 | }
270 | },
271 | "autoload": {
272 | "psr-4": {
273 | "Illuminate\\Cache\\": ""
274 | }
275 | },
276 | "notification-url": "https://packagist.org/downloads/",
277 | "license": [
278 | "MIT"
279 | ],
280 | "authors": [
281 | {
282 | "name": "Taylor Otwell",
283 | "email": "taylor@laravel.com"
284 | }
285 | ],
286 | "description": "The Illuminate Cache package.",
287 | "homepage": "https://laravel.com",
288 | "time": "2019-08-18T13:53:57+00:00"
289 | },
290 | {
291 | "name": "illuminate/config",
292 | "version": "v5.8.33",
293 | "source": {
294 | "type": "git",
295 | "url": "https://github.com/illuminate/config.git",
296 | "reference": "6dac1dee3fb51704767c69a07aead1bc75c12368"
297 | },
298 | "dist": {
299 | "type": "zip",
300 | "url": "https://api.github.com/repos/illuminate/config/zipball/6dac1dee3fb51704767c69a07aead1bc75c12368",
301 | "reference": "6dac1dee3fb51704767c69a07aead1bc75c12368",
302 | "shasum": ""
303 | },
304 | "require": {
305 | "illuminate/contracts": "5.8.*",
306 | "illuminate/support": "5.8.*",
307 | "php": "^7.1.3"
308 | },
309 | "type": "library",
310 | "extra": {
311 | "branch-alias": {
312 | "dev-master": "5.8-dev"
313 | }
314 | },
315 | "autoload": {
316 | "psr-4": {
317 | "Illuminate\\Config\\": ""
318 | }
319 | },
320 | "notification-url": "https://packagist.org/downloads/",
321 | "license": [
322 | "MIT"
323 | ],
324 | "authors": [
325 | {
326 | "name": "Taylor Otwell",
327 | "email": "taylor@laravel.com"
328 | }
329 | ],
330 | "description": "The Illuminate Config package.",
331 | "homepage": "https://laravel.com",
332 | "time": "2019-02-14T12:51:50+00:00"
333 | },
334 | {
335 | "name": "illuminate/console",
336 | "version": "v5.8.33",
337 | "source": {
338 | "type": "git",
339 | "url": "https://github.com/illuminate/console.git",
340 | "reference": "e6e4708e6c6baaf92120848e885855ab3d76f30f"
341 | },
342 | "dist": {
343 | "type": "zip",
344 | "url": "https://api.github.com/repos/illuminate/console/zipball/e6e4708e6c6baaf92120848e885855ab3d76f30f",
345 | "reference": "e6e4708e6c6baaf92120848e885855ab3d76f30f",
346 | "shasum": ""
347 | },
348 | "require": {
349 | "illuminate/contracts": "5.8.*",
350 | "illuminate/support": "5.8.*",
351 | "php": "^7.1.3",
352 | "symfony/console": "^4.2",
353 | "symfony/process": "^4.2"
354 | },
355 | "suggest": {
356 | "dragonmantank/cron-expression": "Required to use scheduling component (^2.0).",
357 | "guzzlehttp/guzzle": "Required to use the ping methods on schedules (^6.0).",
358 | "illuminate/filesystem": "Required to use the generator command (5.8.*)"
359 | },
360 | "type": "library",
361 | "extra": {
362 | "branch-alias": {
363 | "dev-master": "5.8-dev"
364 | }
365 | },
366 | "autoload": {
367 | "psr-4": {
368 | "Illuminate\\Console\\": ""
369 | }
370 | },
371 | "notification-url": "https://packagist.org/downloads/",
372 | "license": [
373 | "MIT"
374 | ],
375 | "authors": [
376 | {
377 | "name": "Taylor Otwell",
378 | "email": "taylor@laravel.com"
379 | }
380 | ],
381 | "description": "The Illuminate Console package.",
382 | "homepage": "https://laravel.com",
383 | "time": "2019-08-12T13:08:28+00:00"
384 | },
385 | {
386 | "name": "illuminate/container",
387 | "version": "v5.8.33",
388 | "source": {
389 | "type": "git",
390 | "url": "https://github.com/illuminate/container.git",
391 | "reference": "b42e5ef939144b77f78130918da0ce2d9ee16574"
392 | },
393 | "dist": {
394 | "type": "zip",
395 | "url": "https://api.github.com/repos/illuminate/container/zipball/b42e5ef939144b77f78130918da0ce2d9ee16574",
396 | "reference": "b42e5ef939144b77f78130918da0ce2d9ee16574",
397 | "shasum": ""
398 | },
399 | "require": {
400 | "illuminate/contracts": "5.8.*",
401 | "illuminate/support": "5.8.*",
402 | "php": "^7.1.3",
403 | "psr/container": "^1.0"
404 | },
405 | "type": "library",
406 | "extra": {
407 | "branch-alias": {
408 | "dev-master": "5.8-dev"
409 | }
410 | },
411 | "autoload": {
412 | "psr-4": {
413 | "Illuminate\\Container\\": ""
414 | }
415 | },
416 | "notification-url": "https://packagist.org/downloads/",
417 | "license": [
418 | "MIT"
419 | ],
420 | "authors": [
421 | {
422 | "name": "Taylor Otwell",
423 | "email": "taylor@laravel.com"
424 | }
425 | ],
426 | "description": "The Illuminate Container package.",
427 | "homepage": "https://laravel.com",
428 | "time": "2019-08-20T02:00:23+00:00"
429 | },
430 | {
431 | "name": "illuminate/contracts",
432 | "version": "v5.8.33",
433 | "source": {
434 | "type": "git",
435 | "url": "https://github.com/illuminate/contracts.git",
436 | "reference": "00fc6afee788fa07c311b0650ad276585f8aef96"
437 | },
438 | "dist": {
439 | "type": "zip",
440 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/00fc6afee788fa07c311b0650ad276585f8aef96",
441 | "reference": "00fc6afee788fa07c311b0650ad276585f8aef96",
442 | "shasum": ""
443 | },
444 | "require": {
445 | "php": "^7.1.3",
446 | "psr/container": "^1.0",
447 | "psr/simple-cache": "^1.0"
448 | },
449 | "type": "library",
450 | "extra": {
451 | "branch-alias": {
452 | "dev-master": "5.8-dev"
453 | }
454 | },
455 | "autoload": {
456 | "psr-4": {
457 | "Illuminate\\Contracts\\": ""
458 | }
459 | },
460 | "notification-url": "https://packagist.org/downloads/",
461 | "license": [
462 | "MIT"
463 | ],
464 | "authors": [
465 | {
466 | "name": "Taylor Otwell",
467 | "email": "taylor@laravel.com"
468 | }
469 | ],
470 | "description": "The Illuminate Contracts package.",
471 | "homepage": "https://laravel.com",
472 | "time": "2019-07-30T13:57:21+00:00"
473 | },
474 | {
475 | "name": "illuminate/events",
476 | "version": "v5.8.33",
477 | "source": {
478 | "type": "git",
479 | "url": "https://github.com/illuminate/events.git",
480 | "reference": "a85d7c273bc4e3357000c5fc4812374598515de3"
481 | },
482 | "dist": {
483 | "type": "zip",
484 | "url": "https://api.github.com/repos/illuminate/events/zipball/a85d7c273bc4e3357000c5fc4812374598515de3",
485 | "reference": "a85d7c273bc4e3357000c5fc4812374598515de3",
486 | "shasum": ""
487 | },
488 | "require": {
489 | "illuminate/container": "5.8.*",
490 | "illuminate/contracts": "5.8.*",
491 | "illuminate/support": "5.8.*",
492 | "php": "^7.1.3"
493 | },
494 | "type": "library",
495 | "extra": {
496 | "branch-alias": {
497 | "dev-master": "5.8-dev"
498 | }
499 | },
500 | "autoload": {
501 | "psr-4": {
502 | "Illuminate\\Events\\": ""
503 | }
504 | },
505 | "notification-url": "https://packagist.org/downloads/",
506 | "license": [
507 | "MIT"
508 | ],
509 | "authors": [
510 | {
511 | "name": "Taylor Otwell",
512 | "email": "taylor@laravel.com"
513 | }
514 | ],
515 | "description": "The Illuminate Events package.",
516 | "homepage": "https://laravel.com",
517 | "time": "2019-02-18T18:37:54+00:00"
518 | },
519 | {
520 | "name": "illuminate/filesystem",
521 | "version": "v5.8.33",
522 | "source": {
523 | "type": "git",
524 | "url": "https://github.com/illuminate/filesystem.git",
525 | "reference": "494ba903402d64ec49c8d869ab61791db34b2288"
526 | },
527 | "dist": {
528 | "type": "zip",
529 | "url": "https://api.github.com/repos/illuminate/filesystem/zipball/494ba903402d64ec49c8d869ab61791db34b2288",
530 | "reference": "494ba903402d64ec49c8d869ab61791db34b2288",
531 | "shasum": ""
532 | },
533 | "require": {
534 | "illuminate/contracts": "5.8.*",
535 | "illuminate/support": "5.8.*",
536 | "php": "^7.1.3",
537 | "symfony/finder": "^4.2"
538 | },
539 | "suggest": {
540 | "league/flysystem": "Required to use the Flysystem local and FTP drivers (^1.0).",
541 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
542 | "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
543 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (^1.0).",
544 | "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0)."
545 | },
546 | "type": "library",
547 | "extra": {
548 | "branch-alias": {
549 | "dev-master": "5.8-dev"
550 | }
551 | },
552 | "autoload": {
553 | "psr-4": {
554 | "Illuminate\\Filesystem\\": ""
555 | }
556 | },
557 | "notification-url": "https://packagist.org/downloads/",
558 | "license": [
559 | "MIT"
560 | ],
561 | "authors": [
562 | {
563 | "name": "Taylor Otwell",
564 | "email": "taylor@laravel.com"
565 | }
566 | ],
567 | "description": "The Illuminate Filesystem package.",
568 | "homepage": "https://laravel.com",
569 | "time": "2019-08-14T13:38:15+00:00"
570 | },
571 | {
572 | "name": "illuminate/support",
573 | "version": "v5.8.33",
574 | "source": {
575 | "type": "git",
576 | "url": "https://github.com/illuminate/support.git",
577 | "reference": "7aabcab4634a1c7865fa6acb6b1b810cf4b699ea"
578 | },
579 | "dist": {
580 | "type": "zip",
581 | "url": "https://api.github.com/repos/illuminate/support/zipball/7aabcab4634a1c7865fa6acb6b1b810cf4b699ea",
582 | "reference": "7aabcab4634a1c7865fa6acb6b1b810cf4b699ea",
583 | "shasum": ""
584 | },
585 | "require": {
586 | "doctrine/inflector": "^1.1",
587 | "ext-json": "*",
588 | "ext-mbstring": "*",
589 | "illuminate/contracts": "5.8.*",
590 | "nesbot/carbon": "^1.26.3 || ^2.0",
591 | "php": "^7.1.3"
592 | },
593 | "conflict": {
594 | "tightenco/collect": "<5.5.33"
595 | },
596 | "suggest": {
597 | "illuminate/filesystem": "Required to use the composer class (5.8.*).",
598 | "moontoast/math": "Required to use ordered UUIDs (^1.1).",
599 | "ramsey/uuid": "Required to use Str::uuid() (^3.7).",
600 | "symfony/process": "Required to use the composer class (^4.2).",
601 | "symfony/var-dumper": "Required to use the dd function (^4.2).",
602 | "vlucas/phpdotenv": "Required to use the env helper (^3.3)."
603 | },
604 | "type": "library",
605 | "extra": {
606 | "branch-alias": {
607 | "dev-master": "5.8-dev"
608 | }
609 | },
610 | "autoload": {
611 | "psr-4": {
612 | "Illuminate\\Support\\": ""
613 | },
614 | "files": [
615 | "helpers.php"
616 | ]
617 | },
618 | "notification-url": "https://packagist.org/downloads/",
619 | "license": [
620 | "MIT"
621 | ],
622 | "authors": [
623 | {
624 | "name": "Taylor Otwell",
625 | "email": "taylor@laravel.com"
626 | }
627 | ],
628 | "description": "The Illuminate Support package.",
629 | "homepage": "https://laravel.com",
630 | "time": "2019-08-11T12:48:29+00:00"
631 | },
632 | {
633 | "name": "jakub-onderka/php-console-color",
634 | "version": "v0.2",
635 | "source": {
636 | "type": "git",
637 | "url": "https://github.com/JakubOnderka/PHP-Console-Color.git",
638 | "reference": "d5deaecff52a0d61ccb613bb3804088da0307191"
639 | },
640 | "dist": {
641 | "type": "zip",
642 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191",
643 | "reference": "d5deaecff52a0d61ccb613bb3804088da0307191",
644 | "shasum": ""
645 | },
646 | "require": {
647 | "php": ">=5.4.0"
648 | },
649 | "require-dev": {
650 | "jakub-onderka/php-code-style": "1.0",
651 | "jakub-onderka/php-parallel-lint": "1.0",
652 | "jakub-onderka/php-var-dump-check": "0.*",
653 | "phpunit/phpunit": "~4.3",
654 | "squizlabs/php_codesniffer": "1.*"
655 | },
656 | "type": "library",
657 | "autoload": {
658 | "psr-4": {
659 | "JakubOnderka\\PhpConsoleColor\\": "src/"
660 | }
661 | },
662 | "notification-url": "https://packagist.org/downloads/",
663 | "license": [
664 | "BSD-2-Clause"
665 | ],
666 | "authors": [
667 | {
668 | "name": "Jakub Onderka",
669 | "email": "jakub.onderka@gmail.com"
670 | }
671 | ],
672 | "time": "2018-09-29T17:23:10+00:00"
673 | },
674 | {
675 | "name": "jakub-onderka/php-console-highlighter",
676 | "version": "v0.4",
677 | "source": {
678 | "type": "git",
679 | "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git",
680 | "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547"
681 | },
682 | "dist": {
683 | "type": "zip",
684 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547",
685 | "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547",
686 | "shasum": ""
687 | },
688 | "require": {
689 | "ext-tokenizer": "*",
690 | "jakub-onderka/php-console-color": "~0.2",
691 | "php": ">=5.4.0"
692 | },
693 | "require-dev": {
694 | "jakub-onderka/php-code-style": "~1.0",
695 | "jakub-onderka/php-parallel-lint": "~1.0",
696 | "jakub-onderka/php-var-dump-check": "~0.1",
697 | "phpunit/phpunit": "~4.0",
698 | "squizlabs/php_codesniffer": "~1.5"
699 | },
700 | "type": "library",
701 | "autoload": {
702 | "psr-4": {
703 | "JakubOnderka\\PhpConsoleHighlighter\\": "src/"
704 | }
705 | },
706 | "notification-url": "https://packagist.org/downloads/",
707 | "license": [
708 | "MIT"
709 | ],
710 | "authors": [
711 | {
712 | "name": "Jakub Onderka",
713 | "email": "acci@acci.cz",
714 | "homepage": "http://www.acci.cz/"
715 | }
716 | ],
717 | "description": "Highlight PHP code in terminal",
718 | "time": "2018-09-29T18:48:56+00:00"
719 | },
720 | {
721 | "name": "jolicode/jolinotif",
722 | "version": "v2.0.2",
723 | "source": {
724 | "type": "git",
725 | "url": "https://github.com/jolicode/JoliNotif.git",
726 | "reference": "0b5f786c5f181b3916df616ca191892713257662"
727 | },
728 | "dist": {
729 | "type": "zip",
730 | "url": "https://api.github.com/repos/jolicode/JoliNotif/zipball/0b5f786c5f181b3916df616ca191892713257662",
731 | "reference": "0b5f786c5f181b3916df616ca191892713257662",
732 | "shasum": ""
733 | },
734 | "require": {
735 | "php": ">=7.0",
736 | "symfony/process": "~3.3|~4.0"
737 | },
738 | "require-dev": {
739 | "friendsofphp/php-cs-fixer": "~2.0",
740 | "symfony/phpunit-bridge": "^3.3"
741 | },
742 | "bin": [
743 | "jolinotif"
744 | ],
745 | "type": "library",
746 | "extra": {
747 | "branch-alias": {
748 | "dev-master": "2.0.x-dev"
749 | }
750 | },
751 | "autoload": {
752 | "psr-4": {
753 | "Joli\\JoliNotif\\": "src/"
754 | }
755 | },
756 | "notification-url": "https://packagist.org/downloads/",
757 | "license": [
758 | "MIT"
759 | ],
760 | "authors": [
761 | {
762 | "name": "Loïck Piera",
763 | "email": "pyrech@gmail.com"
764 | }
765 | ],
766 | "description": "Send desktop notifications on Windows, Linux, MacOS.",
767 | "keywords": [
768 | "MAC",
769 | "growl",
770 | "linux",
771 | "notification",
772 | "windows"
773 | ],
774 | "time": "2019-02-26T18:10:50+00:00"
775 | },
776 | {
777 | "name": "laravel-zero/foundation",
778 | "version": "v5.8.8",
779 | "source": {
780 | "type": "git",
781 | "url": "https://github.com/laravel-zero/foundation.git",
782 | "reference": "ecea3797c8eaebe5525df13302c4e2caee1abc18"
783 | },
784 | "dist": {
785 | "type": "zip",
786 | "url": "https://api.github.com/repos/laravel-zero/foundation/zipball/ecea3797c8eaebe5525df13302c4e2caee1abc18",
787 | "reference": "ecea3797c8eaebe5525df13302c4e2caee1abc18",
788 | "shasum": ""
789 | },
790 | "require": {
791 | "php": "^7.1.3"
792 | },
793 | "type": "library",
794 | "extra": {
795 | "branch-alias": {
796 | "dev-master": "5.8-dev"
797 | }
798 | },
799 | "autoload": {
800 | "files": [
801 | "src/Illuminate/Foundation/helpers.php"
802 | ],
803 | "psr-4": {
804 | "Illuminate\\": "src/Illuminate/"
805 | }
806 | },
807 | "notification-url": "https://packagist.org/downloads/",
808 | "license": [
809 | "MIT"
810 | ],
811 | "description": "This is a mirror from illuminate/foundation.",
812 | "keywords": [
813 | "framework",
814 | "laravel"
815 | ],
816 | "time": "2019-03-29T20:43:29+00:00"
817 | },
818 | {
819 | "name": "laravel-zero/framework",
820 | "version": "v5.8.5",
821 | "source": {
822 | "type": "git",
823 | "url": "https://github.com/laravel-zero/framework.git",
824 | "reference": "c73c75f6f9975b3823be3c16b452c08904da822c"
825 | },
826 | "dist": {
827 | "type": "zip",
828 | "url": "https://api.github.com/repos/laravel-zero/framework/zipball/c73c75f6f9975b3823be3c16b452c08904da822c",
829 | "reference": "c73c75f6f9975b3823be3c16b452c08904da822c",
830 | "shasum": ""
831 | },
832 | "require": {
833 | "dragonmantank/cron-expression": "^2.0",
834 | "ext-json": "*",
835 | "illuminate/cache": "5.8.*",
836 | "illuminate/config": "5.8.*",
837 | "illuminate/console": "5.8.*",
838 | "illuminate/container": "5.8.*",
839 | "illuminate/contracts": "5.8.*",
840 | "illuminate/events": "5.8.*",
841 | "illuminate/filesystem": "5.8.*",
842 | "illuminate/support": "5.8.*",
843 | "laravel-zero/foundation": "5.8.*",
844 | "league/flysystem": "^1.0.8",
845 | "nunomaduro/collision": "^3.0",
846 | "nunomaduro/laravel-console-summary": "^1.0",
847 | "nunomaduro/laravel-console-task": "^1.0.6",
848 | "nunomaduro/laravel-desktop-notifier": "^2.0",
849 | "php": "^7.1.3",
850 | "psr/log": "^1.1",
851 | "symfony/console": "^4.1",
852 | "symfony/debug": "^4.1",
853 | "symfony/process": "^4.1",
854 | "symfony/var-dumper": "^4.1",
855 | "vlucas/phpdotenv": "^3.0"
856 | },
857 | "require-dev": {
858 | "illuminate/bus": "5.8.*",
859 | "illuminate/database": "5.8.*",
860 | "illuminate/log": "5.8.*",
861 | "illuminate/queue": "5.8.*",
862 | "nunomaduro/laravel-console-dusk": "^1.0",
863 | "nunomaduro/laravel-console-menu": "^2.1",
864 | "padraic/phar-updater": "^1.0.6",
865 | "phpstan/phpstan": "^0.11",
866 | "phpunit/phpunit": "^7.5|^8.0",
867 | "vlucas/phpdotenv": "^3.0",
868 | "zendframework/zend-text": "^2.7"
869 | },
870 | "type": "library",
871 | "autoload": {
872 | "psr-4": {
873 | "LaravelZero\\Framework\\": "src"
874 | }
875 | },
876 | "notification-url": "https://packagist.org/downloads/",
877 | "license": [
878 | "MIT"
879 | ],
880 | "authors": [
881 | {
882 | "name": "Nuno Maduro",
883 | "email": "enunomaduro@gmail.com"
884 | }
885 | ],
886 | "description": "The Laravel Zero Framework.",
887 | "homepage": "https://laravel-zero.com",
888 | "keywords": [
889 | "Laravel Zero",
890 | "cli",
891 | "console",
892 | "framework",
893 | "laravel"
894 | ],
895 | "time": "2019-03-31T10:31:04+00:00"
896 | },
897 | {
898 | "name": "league/flysystem",
899 | "version": "1.0.53",
900 | "source": {
901 | "type": "git",
902 | "url": "https://github.com/thephpleague/flysystem.git",
903 | "reference": "08e12b7628f035600634a5e76d95b5eb66cea674"
904 | },
905 | "dist": {
906 | "type": "zip",
907 | "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/08e12b7628f035600634a5e76d95b5eb66cea674",
908 | "reference": "08e12b7628f035600634a5e76d95b5eb66cea674",
909 | "shasum": ""
910 | },
911 | "require": {
912 | "ext-fileinfo": "*",
913 | "php": ">=5.5.9"
914 | },
915 | "conflict": {
916 | "league/flysystem-sftp": "<1.0.6"
917 | },
918 | "require-dev": {
919 | "phpspec/phpspec": "^3.4",
920 | "phpunit/phpunit": "^5.7.10"
921 | },
922 | "suggest": {
923 | "ext-fileinfo": "Required for MimeType",
924 | "ext-ftp": "Allows you to use FTP server storage",
925 | "ext-openssl": "Allows you to use FTPS server storage",
926 | "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
927 | "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
928 | "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
929 | "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
930 | "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
931 | "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
932 | "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
933 | "league/flysystem-webdav": "Allows you to use WebDAV storage",
934 | "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
935 | "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
936 | "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
937 | },
938 | "type": "library",
939 | "extra": {
940 | "branch-alias": {
941 | "dev-master": "1.1-dev"
942 | }
943 | },
944 | "autoload": {
945 | "psr-4": {
946 | "League\\Flysystem\\": "src/"
947 | }
948 | },
949 | "notification-url": "https://packagist.org/downloads/",
950 | "license": [
951 | "MIT"
952 | ],
953 | "authors": [
954 | {
955 | "name": "Frank de Jonge",
956 | "email": "info@frenky.net"
957 | }
958 | ],
959 | "description": "Filesystem abstraction: Many filesystems, one API.",
960 | "keywords": [
961 | "Cloud Files",
962 | "WebDAV",
963 | "abstraction",
964 | "aws",
965 | "cloud",
966 | "copy.com",
967 | "dropbox",
968 | "file systems",
969 | "files",
970 | "filesystem",
971 | "filesystems",
972 | "ftp",
973 | "rackspace",
974 | "remote",
975 | "s3",
976 | "sftp",
977 | "storage"
978 | ],
979 | "time": "2019-06-18T20:09:29+00:00"
980 | },
981 | {
982 | "name": "nesbot/carbon",
983 | "version": "2.23.1",
984 | "source": {
985 | "type": "git",
986 | "url": "https://github.com/briannesbitt/Carbon.git",
987 | "reference": "767617a047e5b8b8b3b0b6023a2650847ed7df02"
988 | },
989 | "dist": {
990 | "type": "zip",
991 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/767617a047e5b8b8b3b0b6023a2650847ed7df02",
992 | "reference": "767617a047e5b8b8b3b0b6023a2650847ed7df02",
993 | "shasum": ""
994 | },
995 | "require": {
996 | "ext-json": "*",
997 | "php": "^7.1.8 || ^8.0",
998 | "symfony/translation": "^3.4 || ^4.0"
999 | },
1000 | "require-dev": {
1001 | "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
1002 | "kylekatarnls/multi-tester": "^1.1",
1003 | "phpmd/phpmd": "dev-php-7.1-compatibility",
1004 | "phpstan/phpstan": "^0.11",
1005 | "phpunit/phpunit": "^7.5 || ^8.0",
1006 | "squizlabs/php_codesniffer": "^3.4"
1007 | },
1008 | "bin": [
1009 | "bin/carbon"
1010 | ],
1011 | "type": "library",
1012 | "extra": {
1013 | "laravel": {
1014 | "providers": [
1015 | "Carbon\\Laravel\\ServiceProvider"
1016 | ]
1017 | }
1018 | },
1019 | "autoload": {
1020 | "psr-4": {
1021 | "Carbon\\": "src/Carbon/"
1022 | }
1023 | },
1024 | "notification-url": "https://packagist.org/downloads/",
1025 | "license": [
1026 | "MIT"
1027 | ],
1028 | "authors": [
1029 | {
1030 | "name": "Brian Nesbitt",
1031 | "email": "brian@nesbot.com",
1032 | "homepage": "http://nesbot.com"
1033 | },
1034 | {
1035 | "name": "kylekatarnls",
1036 | "homepage": "http://github.com/kylekatarnls"
1037 | }
1038 | ],
1039 | "description": "A API extension for DateTime that supports 281 different languages.",
1040 | "homepage": "http://carbon.nesbot.com",
1041 | "keywords": [
1042 | "date",
1043 | "datetime",
1044 | "time"
1045 | ],
1046 | "time": "2019-08-17T13:57:34+00:00"
1047 | },
1048 | {
1049 | "name": "nunomaduro/collision",
1050 | "version": "v3.0.1",
1051 | "source": {
1052 | "type": "git",
1053 | "url": "https://github.com/nunomaduro/collision.git",
1054 | "reference": "af42d339fe2742295a54f6fdd42aaa6f8c4aca68"
1055 | },
1056 | "dist": {
1057 | "type": "zip",
1058 | "url": "https://api.github.com/repos/nunomaduro/collision/zipball/af42d339fe2742295a54f6fdd42aaa6f8c4aca68",
1059 | "reference": "af42d339fe2742295a54f6fdd42aaa6f8c4aca68",
1060 | "shasum": ""
1061 | },
1062 | "require": {
1063 | "filp/whoops": "^2.1.4",
1064 | "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*",
1065 | "php": "^7.1",
1066 | "symfony/console": "~2.8|~3.3|~4.0"
1067 | },
1068 | "require-dev": {
1069 | "laravel/framework": "5.8.*",
1070 | "nunomaduro/larastan": "^0.3.0",
1071 | "phpstan/phpstan": "^0.11",
1072 | "phpunit/phpunit": "~8.0"
1073 | },
1074 | "type": "library",
1075 | "extra": {
1076 | "laravel": {
1077 | "providers": [
1078 | "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
1079 | ]
1080 | }
1081 | },
1082 | "autoload": {
1083 | "psr-4": {
1084 | "NunoMaduro\\Collision\\": "src/"
1085 | }
1086 | },
1087 | "notification-url": "https://packagist.org/downloads/",
1088 | "license": [
1089 | "MIT"
1090 | ],
1091 | "authors": [
1092 | {
1093 | "name": "Nuno Maduro",
1094 | "email": "enunomaduro@gmail.com"
1095 | }
1096 | ],
1097 | "description": "Cli error handling for console/command-line PHP applications.",
1098 | "keywords": [
1099 | "artisan",
1100 | "cli",
1101 | "command-line",
1102 | "console",
1103 | "error",
1104 | "handling",
1105 | "laravel",
1106 | "laravel-zero",
1107 | "php",
1108 | "symfony"
1109 | ],
1110 | "time": "2019-03-07T21:35:13+00:00"
1111 | },
1112 | {
1113 | "name": "nunomaduro/laravel-console-summary",
1114 | "version": "v1.2.0",
1115 | "source": {
1116 | "type": "git",
1117 | "url": "https://github.com/nunomaduro/laravel-console-summary.git",
1118 | "reference": "604a1c181f66fa4406075cb5ec4adc301f43f550"
1119 | },
1120 | "dist": {
1121 | "type": "zip",
1122 | "url": "https://api.github.com/repos/nunomaduro/laravel-console-summary/zipball/604a1c181f66fa4406075cb5ec4adc301f43f550",
1123 | "reference": "604a1c181f66fa4406075cb5ec4adc301f43f550",
1124 | "shasum": ""
1125 | },
1126 | "require": {
1127 | "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0",
1128 | "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0",
1129 | "php": ">=7.1.3"
1130 | },
1131 | "type": "library",
1132 | "extra": {
1133 | "laravel": {
1134 | "providers": [
1135 | "NunoMaduro\\LaravelConsoleSummary\\LaravelConsoleSummaryServiceProvider"
1136 | ]
1137 | }
1138 | },
1139 | "autoload": {
1140 | "psr-4": {
1141 | "NunoMaduro\\LaravelConsoleSummary\\": "src/"
1142 | }
1143 | },
1144 | "notification-url": "https://packagist.org/downloads/",
1145 | "license": [
1146 | "MIT"
1147 | ],
1148 | "authors": [
1149 | {
1150 | "name": "Nuno Maduro",
1151 | "email": "enunomaduro@gmail.com"
1152 | }
1153 | ],
1154 | "description": "A Beautiful Laravel Console Summary for your Laravel/Laravel Zero commands.",
1155 | "keywords": [
1156 | "artisan",
1157 | "cli",
1158 | "command-line",
1159 | "console",
1160 | "laravel",
1161 | "laravel-zero",
1162 | "php",
1163 | "symfony"
1164 | ],
1165 | "time": "2019-08-04T13:06:08+00:00"
1166 | },
1167 | {
1168 | "name": "nunomaduro/laravel-console-task",
1169 | "version": "v1.3.0",
1170 | "source": {
1171 | "type": "git",
1172 | "url": "https://github.com/nunomaduro/laravel-console-task.git",
1173 | "reference": "bce1a48a74b6d386ee4fc90c127d37395f4c0986"
1174 | },
1175 | "dist": {
1176 | "type": "zip",
1177 | "url": "https://api.github.com/repos/nunomaduro/laravel-console-task/zipball/bce1a48a74b6d386ee4fc90c127d37395f4c0986",
1178 | "reference": "bce1a48a74b6d386ee4fc90c127d37395f4c0986",
1179 | "shasum": ""
1180 | },
1181 | "require": {
1182 | "illuminate/console": "~5.5.26|5.6.*|5.7.*|5.8.*|^6.0",
1183 | "illuminate/support": "~5.5.26|5.6.*|5.7.*|5.8.*|^6.0",
1184 | "php": "^7.0"
1185 | },
1186 | "require-dev": {
1187 | "phpunit/phpunit": "^8.2"
1188 | },
1189 | "type": "library",
1190 | "extra": {
1191 | "laravel": {
1192 | "providers": [
1193 | "NunoMaduro\\LaravelConsoleTask\\LaravelConsoleTaskServiceProvider"
1194 | ]
1195 | }
1196 | },
1197 | "autoload": {
1198 | "psr-4": {
1199 | "NunoMaduro\\LaravelConsoleTask\\": "src/"
1200 | }
1201 | },
1202 | "notification-url": "https://packagist.org/downloads/",
1203 | "license": [
1204 | "MIT"
1205 | ],
1206 | "authors": [
1207 | {
1208 | "name": "Nuno Maduro",
1209 | "email": "enunomaduro@gmail.com"
1210 | }
1211 | ],
1212 | "description": "Laravel Console Task is a output method for your Laravel/Laravel Zero commands.",
1213 | "keywords": [
1214 | "artisan",
1215 | "cli",
1216 | "command-line",
1217 | "console",
1218 | "laravel",
1219 | "laravel-zero",
1220 | "php",
1221 | "symfony"
1222 | ],
1223 | "time": "2019-08-04T12:35:49+00:00"
1224 | },
1225 | {
1226 | "name": "nunomaduro/laravel-desktop-notifier",
1227 | "version": "v2.2.0",
1228 | "source": {
1229 | "type": "git",
1230 | "url": "https://github.com/nunomaduro/laravel-desktop-notifier.git",
1231 | "reference": "3b93cd1a7526ce7bb3542185bcc4901650dc59e3"
1232 | },
1233 | "dist": {
1234 | "type": "zip",
1235 | "url": "https://api.github.com/repos/nunomaduro/laravel-desktop-notifier/zipball/3b93cd1a7526ce7bb3542185bcc4901650dc59e3",
1236 | "reference": "3b93cd1a7526ce7bb3542185bcc4901650dc59e3",
1237 | "shasum": ""
1238 | },
1239 | "require": {
1240 | "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0",
1241 | "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0",
1242 | "jolicode/jolinotif": "^2.0",
1243 | "php": "^7.1.3"
1244 | },
1245 | "require-dev": {
1246 | "graham-campbell/testbench": "dev-master",
1247 | "phpunit/phpunit": "^7.0"
1248 | },
1249 | "type": "library",
1250 | "extra": {
1251 | "laravel": {
1252 | "providers": [
1253 | "NunoMaduro\\LaravelDesktopNotifier\\LaravelDesktopNotifierServiceProvider"
1254 | ],
1255 | "aliases": {
1256 | "Notifier": "NunoMaduro\\LaravelDesktopNotifier\\Facaces\\Notifier"
1257 | }
1258 | }
1259 | },
1260 | "autoload": {
1261 | "psr-4": {
1262 | "NunoMaduro\\LaravelDesktopNotifier\\": "src/"
1263 | }
1264 | },
1265 | "notification-url": "https://packagist.org/downloads/",
1266 | "license": [
1267 | "MIT"
1268 | ],
1269 | "authors": [
1270 | {
1271 | "name": "Nuno Maduro",
1272 | "email": "enunomaduro@gmail.com"
1273 | }
1274 | ],
1275 | "description": "Send notifications to your desktop from your Laravel commands. An JoliNotif wrapper for Laravel 5.",
1276 | "keywords": [
1277 | "JoliNotif",
1278 | "Nuno Maduro",
1279 | "NunoMaduro",
1280 | "artisan",
1281 | "console",
1282 | "framework",
1283 | "laravel",
1284 | "notification",
1285 | "notifier",
1286 | "php",
1287 | "wrapper"
1288 | ],
1289 | "time": "2019-08-04T12:40:14+00:00"
1290 | },
1291 | {
1292 | "name": "php-amqplib/php-amqplib",
1293 | "version": "v2.10.0",
1294 | "source": {
1295 | "type": "git",
1296 | "url": "https://github.com/php-amqplib/php-amqplib.git",
1297 | "reference": "04e5366f032906d5f716890427e425e71307d3a8"
1298 | },
1299 | "dist": {
1300 | "type": "zip",
1301 | "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/04e5366f032906d5f716890427e425e71307d3a8",
1302 | "reference": "04e5366f032906d5f716890427e425e71307d3a8",
1303 | "shasum": ""
1304 | },
1305 | "require": {
1306 | "ext-bcmath": "*",
1307 | "ext-sockets": "*",
1308 | "php": ">=5.6"
1309 | },
1310 | "replace": {
1311 | "videlalvaro/php-amqplib": "self.version"
1312 | },
1313 | "require-dev": {
1314 | "ext-curl": "*",
1315 | "nategood/httpful": "^0.2.20",
1316 | "phpdocumentor/phpdocumentor": "dev-master",
1317 | "phpunit/phpunit": "^5.7|^6.5|^7.0",
1318 | "squizlabs/php_codesniffer": "^2.5"
1319 | },
1320 | "type": "library",
1321 | "extra": {
1322 | "branch-alias": {
1323 | "dev-master": "2.10-dev"
1324 | }
1325 | },
1326 | "autoload": {
1327 | "psr-4": {
1328 | "PhpAmqpLib\\": "PhpAmqpLib/"
1329 | }
1330 | },
1331 | "notification-url": "https://packagist.org/downloads/",
1332 | "license": [
1333 | "LGPL-2.1-or-later"
1334 | ],
1335 | "authors": [
1336 | {
1337 | "name": "Alvaro Videla",
1338 | "role": "Original Maintainer"
1339 | },
1340 | {
1341 | "name": "John Kelly",
1342 | "role": "Maintainer",
1343 | "email": "johnmkelly86@gmail.com"
1344 | },
1345 | {
1346 | "name": "Raúl Araya",
1347 | "role": "Maintainer",
1348 | "email": "nubeiro@gmail.com"
1349 | },
1350 | {
1351 | "name": "Luke Bakken",
1352 | "role": "Maintainer",
1353 | "email": "luke@bakken.io"
1354 | }
1355 | ],
1356 | "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.",
1357 | "homepage": "https://github.com/php-amqplib/php-amqplib/",
1358 | "keywords": [
1359 | "message",
1360 | "queue",
1361 | "rabbitmq"
1362 | ],
1363 | "time": "2019-08-08T18:28:18+00:00"
1364 | },
1365 | {
1366 | "name": "phpoption/phpoption",
1367 | "version": "1.5.0",
1368 | "source": {
1369 | "type": "git",
1370 | "url": "https://github.com/schmittjoh/php-option.git",
1371 | "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed"
1372 | },
1373 | "dist": {
1374 | "type": "zip",
1375 | "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed",
1376 | "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed",
1377 | "shasum": ""
1378 | },
1379 | "require": {
1380 | "php": ">=5.3.0"
1381 | },
1382 | "require-dev": {
1383 | "phpunit/phpunit": "4.7.*"
1384 | },
1385 | "type": "library",
1386 | "extra": {
1387 | "branch-alias": {
1388 | "dev-master": "1.3-dev"
1389 | }
1390 | },
1391 | "autoload": {
1392 | "psr-0": {
1393 | "PhpOption\\": "src/"
1394 | }
1395 | },
1396 | "notification-url": "https://packagist.org/downloads/",
1397 | "license": [
1398 | "Apache2"
1399 | ],
1400 | "authors": [
1401 | {
1402 | "name": "Johannes M. Schmitt",
1403 | "email": "schmittjoh@gmail.com"
1404 | }
1405 | ],
1406 | "description": "Option Type for PHP",
1407 | "keywords": [
1408 | "language",
1409 | "option",
1410 | "php",
1411 | "type"
1412 | ],
1413 | "time": "2015-07-25T16:39:46+00:00"
1414 | },
1415 | {
1416 | "name": "psr/container",
1417 | "version": "1.0.0",
1418 | "source": {
1419 | "type": "git",
1420 | "url": "https://github.com/php-fig/container.git",
1421 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
1422 | },
1423 | "dist": {
1424 | "type": "zip",
1425 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
1426 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
1427 | "shasum": ""
1428 | },
1429 | "require": {
1430 | "php": ">=5.3.0"
1431 | },
1432 | "type": "library",
1433 | "extra": {
1434 | "branch-alias": {
1435 | "dev-master": "1.0.x-dev"
1436 | }
1437 | },
1438 | "autoload": {
1439 | "psr-4": {
1440 | "Psr\\Container\\": "src/"
1441 | }
1442 | },
1443 | "notification-url": "https://packagist.org/downloads/",
1444 | "license": [
1445 | "MIT"
1446 | ],
1447 | "authors": [
1448 | {
1449 | "name": "PHP-FIG",
1450 | "homepage": "http://www.php-fig.org/"
1451 | }
1452 | ],
1453 | "description": "Common Container Interface (PHP FIG PSR-11)",
1454 | "homepage": "https://github.com/php-fig/container",
1455 | "keywords": [
1456 | "PSR-11",
1457 | "container",
1458 | "container-interface",
1459 | "container-interop",
1460 | "psr"
1461 | ],
1462 | "time": "2017-02-14T16:28:37+00:00"
1463 | },
1464 | {
1465 | "name": "psr/log",
1466 | "version": "1.1.0",
1467 | "source": {
1468 | "type": "git",
1469 | "url": "https://github.com/php-fig/log.git",
1470 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
1471 | },
1472 | "dist": {
1473 | "type": "zip",
1474 | "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
1475 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
1476 | "shasum": ""
1477 | },
1478 | "require": {
1479 | "php": ">=5.3.0"
1480 | },
1481 | "type": "library",
1482 | "extra": {
1483 | "branch-alias": {
1484 | "dev-master": "1.0.x-dev"
1485 | }
1486 | },
1487 | "autoload": {
1488 | "psr-4": {
1489 | "Psr\\Log\\": "Psr/Log/"
1490 | }
1491 | },
1492 | "notification-url": "https://packagist.org/downloads/",
1493 | "license": [
1494 | "MIT"
1495 | ],
1496 | "authors": [
1497 | {
1498 | "name": "PHP-FIG",
1499 | "homepage": "http://www.php-fig.org/"
1500 | }
1501 | ],
1502 | "description": "Common interface for logging libraries",
1503 | "homepage": "https://github.com/php-fig/log",
1504 | "keywords": [
1505 | "log",
1506 | "psr",
1507 | "psr-3"
1508 | ],
1509 | "time": "2018-11-20T15:27:04+00:00"
1510 | },
1511 | {
1512 | "name": "psr/simple-cache",
1513 | "version": "1.0.1",
1514 | "source": {
1515 | "type": "git",
1516 | "url": "https://github.com/php-fig/simple-cache.git",
1517 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
1518 | },
1519 | "dist": {
1520 | "type": "zip",
1521 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
1522 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
1523 | "shasum": ""
1524 | },
1525 | "require": {
1526 | "php": ">=5.3.0"
1527 | },
1528 | "type": "library",
1529 | "extra": {
1530 | "branch-alias": {
1531 | "dev-master": "1.0.x-dev"
1532 | }
1533 | },
1534 | "autoload": {
1535 | "psr-4": {
1536 | "Psr\\SimpleCache\\": "src/"
1537 | }
1538 | },
1539 | "notification-url": "https://packagist.org/downloads/",
1540 | "license": [
1541 | "MIT"
1542 | ],
1543 | "authors": [
1544 | {
1545 | "name": "PHP-FIG",
1546 | "homepage": "http://www.php-fig.org/"
1547 | }
1548 | ],
1549 | "description": "Common interfaces for simple caching",
1550 | "keywords": [
1551 | "cache",
1552 | "caching",
1553 | "psr",
1554 | "psr-16",
1555 | "simple-cache"
1556 | ],
1557 | "time": "2017-10-23T01:57:42+00:00"
1558 | },
1559 | {
1560 | "name": "symfony/console",
1561 | "version": "v4.3.3",
1562 | "source": {
1563 | "type": "git",
1564 | "url": "https://github.com/symfony/console.git",
1565 | "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9"
1566 | },
1567 | "dist": {
1568 | "type": "zip",
1569 | "url": "https://api.github.com/repos/symfony/console/zipball/8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9",
1570 | "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9",
1571 | "shasum": ""
1572 | },
1573 | "require": {
1574 | "php": "^7.1.3",
1575 | "symfony/polyfill-mbstring": "~1.0",
1576 | "symfony/polyfill-php73": "^1.8",
1577 | "symfony/service-contracts": "^1.1"
1578 | },
1579 | "conflict": {
1580 | "symfony/dependency-injection": "<3.4",
1581 | "symfony/event-dispatcher": "<4.3",
1582 | "symfony/process": "<3.3"
1583 | },
1584 | "provide": {
1585 | "psr/log-implementation": "1.0"
1586 | },
1587 | "require-dev": {
1588 | "psr/log": "~1.0",
1589 | "symfony/config": "~3.4|~4.0",
1590 | "symfony/dependency-injection": "~3.4|~4.0",
1591 | "symfony/event-dispatcher": "^4.3",
1592 | "symfony/lock": "~3.4|~4.0",
1593 | "symfony/process": "~3.4|~4.0",
1594 | "symfony/var-dumper": "^4.3"
1595 | },
1596 | "suggest": {
1597 | "psr/log": "For using the console logger",
1598 | "symfony/event-dispatcher": "",
1599 | "symfony/lock": "",
1600 | "symfony/process": ""
1601 | },
1602 | "type": "library",
1603 | "extra": {
1604 | "branch-alias": {
1605 | "dev-master": "4.3-dev"
1606 | }
1607 | },
1608 | "autoload": {
1609 | "psr-4": {
1610 | "Symfony\\Component\\Console\\": ""
1611 | },
1612 | "exclude-from-classmap": [
1613 | "/Tests/"
1614 | ]
1615 | },
1616 | "notification-url": "https://packagist.org/downloads/",
1617 | "license": [
1618 | "MIT"
1619 | ],
1620 | "authors": [
1621 | {
1622 | "name": "Fabien Potencier",
1623 | "email": "fabien@symfony.com"
1624 | },
1625 | {
1626 | "name": "Symfony Community",
1627 | "homepage": "https://symfony.com/contributors"
1628 | }
1629 | ],
1630 | "description": "Symfony Console Component",
1631 | "homepage": "https://symfony.com",
1632 | "time": "2019-07-24T17:13:59+00:00"
1633 | },
1634 | {
1635 | "name": "symfony/debug",
1636 | "version": "v4.3.3",
1637 | "source": {
1638 | "type": "git",
1639 | "url": "https://github.com/symfony/debug.git",
1640 | "reference": "527887c3858a2462b0137662c74837288b998ee3"
1641 | },
1642 | "dist": {
1643 | "type": "zip",
1644 | "url": "https://api.github.com/repos/symfony/debug/zipball/527887c3858a2462b0137662c74837288b998ee3",
1645 | "reference": "527887c3858a2462b0137662c74837288b998ee3",
1646 | "shasum": ""
1647 | },
1648 | "require": {
1649 | "php": "^7.1.3",
1650 | "psr/log": "~1.0"
1651 | },
1652 | "conflict": {
1653 | "symfony/http-kernel": "<3.4"
1654 | },
1655 | "require-dev": {
1656 | "symfony/http-kernel": "~3.4|~4.0"
1657 | },
1658 | "type": "library",
1659 | "extra": {
1660 | "branch-alias": {
1661 | "dev-master": "4.3-dev"
1662 | }
1663 | },
1664 | "autoload": {
1665 | "psr-4": {
1666 | "Symfony\\Component\\Debug\\": ""
1667 | },
1668 | "exclude-from-classmap": [
1669 | "/Tests/"
1670 | ]
1671 | },
1672 | "notification-url": "https://packagist.org/downloads/",
1673 | "license": [
1674 | "MIT"
1675 | ],
1676 | "authors": [
1677 | {
1678 | "name": "Fabien Potencier",
1679 | "email": "fabien@symfony.com"
1680 | },
1681 | {
1682 | "name": "Symfony Community",
1683 | "homepage": "https://symfony.com/contributors"
1684 | }
1685 | ],
1686 | "description": "Symfony Debug Component",
1687 | "homepage": "https://symfony.com",
1688 | "time": "2019-07-23T11:21:36+00:00"
1689 | },
1690 | {
1691 | "name": "symfony/finder",
1692 | "version": "v4.3.3",
1693 | "source": {
1694 | "type": "git",
1695 | "url": "https://github.com/symfony/finder.git",
1696 | "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2"
1697 | },
1698 | "dist": {
1699 | "type": "zip",
1700 | "url": "https://api.github.com/repos/symfony/finder/zipball/9638d41e3729459860bb96f6247ccb61faaa45f2",
1701 | "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2",
1702 | "shasum": ""
1703 | },
1704 | "require": {
1705 | "php": "^7.1.3"
1706 | },
1707 | "type": "library",
1708 | "extra": {
1709 | "branch-alias": {
1710 | "dev-master": "4.3-dev"
1711 | }
1712 | },
1713 | "autoload": {
1714 | "psr-4": {
1715 | "Symfony\\Component\\Finder\\": ""
1716 | },
1717 | "exclude-from-classmap": [
1718 | "/Tests/"
1719 | ]
1720 | },
1721 | "notification-url": "https://packagist.org/downloads/",
1722 | "license": [
1723 | "MIT"
1724 | ],
1725 | "authors": [
1726 | {
1727 | "name": "Fabien Potencier",
1728 | "email": "fabien@symfony.com"
1729 | },
1730 | {
1731 | "name": "Symfony Community",
1732 | "homepage": "https://symfony.com/contributors"
1733 | }
1734 | ],
1735 | "description": "Symfony Finder Component",
1736 | "homepage": "https://symfony.com",
1737 | "time": "2019-06-28T13:16:30+00:00"
1738 | },
1739 | {
1740 | "name": "symfony/polyfill-ctype",
1741 | "version": "v1.12.0",
1742 | "source": {
1743 | "type": "git",
1744 | "url": "https://github.com/symfony/polyfill-ctype.git",
1745 | "reference": "550ebaac289296ce228a706d0867afc34687e3f4"
1746 | },
1747 | "dist": {
1748 | "type": "zip",
1749 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4",
1750 | "reference": "550ebaac289296ce228a706d0867afc34687e3f4",
1751 | "shasum": ""
1752 | },
1753 | "require": {
1754 | "php": ">=5.3.3"
1755 | },
1756 | "suggest": {
1757 | "ext-ctype": "For best performance"
1758 | },
1759 | "type": "library",
1760 | "extra": {
1761 | "branch-alias": {
1762 | "dev-master": "1.12-dev"
1763 | }
1764 | },
1765 | "autoload": {
1766 | "psr-4": {
1767 | "Symfony\\Polyfill\\Ctype\\": ""
1768 | },
1769 | "files": [
1770 | "bootstrap.php"
1771 | ]
1772 | },
1773 | "notification-url": "https://packagist.org/downloads/",
1774 | "license": [
1775 | "MIT"
1776 | ],
1777 | "authors": [
1778 | {
1779 | "name": "Gert de Pagter",
1780 | "email": "BackEndTea@gmail.com"
1781 | },
1782 | {
1783 | "name": "Symfony Community",
1784 | "homepage": "https://symfony.com/contributors"
1785 | }
1786 | ],
1787 | "description": "Symfony polyfill for ctype functions",
1788 | "homepage": "https://symfony.com",
1789 | "keywords": [
1790 | "compatibility",
1791 | "ctype",
1792 | "polyfill",
1793 | "portable"
1794 | ],
1795 | "time": "2019-08-06T08:03:45+00:00"
1796 | },
1797 | {
1798 | "name": "symfony/polyfill-mbstring",
1799 | "version": "v1.12.0",
1800 | "source": {
1801 | "type": "git",
1802 | "url": "https://github.com/symfony/polyfill-mbstring.git",
1803 | "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17"
1804 | },
1805 | "dist": {
1806 | "type": "zip",
1807 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17",
1808 | "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17",
1809 | "shasum": ""
1810 | },
1811 | "require": {
1812 | "php": ">=5.3.3"
1813 | },
1814 | "suggest": {
1815 | "ext-mbstring": "For best performance"
1816 | },
1817 | "type": "library",
1818 | "extra": {
1819 | "branch-alias": {
1820 | "dev-master": "1.12-dev"
1821 | }
1822 | },
1823 | "autoload": {
1824 | "psr-4": {
1825 | "Symfony\\Polyfill\\Mbstring\\": ""
1826 | },
1827 | "files": [
1828 | "bootstrap.php"
1829 | ]
1830 | },
1831 | "notification-url": "https://packagist.org/downloads/",
1832 | "license": [
1833 | "MIT"
1834 | ],
1835 | "authors": [
1836 | {
1837 | "name": "Nicolas Grekas",
1838 | "email": "p@tchwork.com"
1839 | },
1840 | {
1841 | "name": "Symfony Community",
1842 | "homepage": "https://symfony.com/contributors"
1843 | }
1844 | ],
1845 | "description": "Symfony polyfill for the Mbstring extension",
1846 | "homepage": "https://symfony.com",
1847 | "keywords": [
1848 | "compatibility",
1849 | "mbstring",
1850 | "polyfill",
1851 | "portable",
1852 | "shim"
1853 | ],
1854 | "time": "2019-08-06T08:03:45+00:00"
1855 | },
1856 | {
1857 | "name": "symfony/polyfill-php72",
1858 | "version": "v1.12.0",
1859 | "source": {
1860 | "type": "git",
1861 | "url": "https://github.com/symfony/polyfill-php72.git",
1862 | "reference": "04ce3335667451138df4307d6a9b61565560199e"
1863 | },
1864 | "dist": {
1865 | "type": "zip",
1866 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e",
1867 | "reference": "04ce3335667451138df4307d6a9b61565560199e",
1868 | "shasum": ""
1869 | },
1870 | "require": {
1871 | "php": ">=5.3.3"
1872 | },
1873 | "type": "library",
1874 | "extra": {
1875 | "branch-alias": {
1876 | "dev-master": "1.12-dev"
1877 | }
1878 | },
1879 | "autoload": {
1880 | "psr-4": {
1881 | "Symfony\\Polyfill\\Php72\\": ""
1882 | },
1883 | "files": [
1884 | "bootstrap.php"
1885 | ]
1886 | },
1887 | "notification-url": "https://packagist.org/downloads/",
1888 | "license": [
1889 | "MIT"
1890 | ],
1891 | "authors": [
1892 | {
1893 | "name": "Nicolas Grekas",
1894 | "email": "p@tchwork.com"
1895 | },
1896 | {
1897 | "name": "Symfony Community",
1898 | "homepage": "https://symfony.com/contributors"
1899 | }
1900 | ],
1901 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
1902 | "homepage": "https://symfony.com",
1903 | "keywords": [
1904 | "compatibility",
1905 | "polyfill",
1906 | "portable",
1907 | "shim"
1908 | ],
1909 | "time": "2019-08-06T08:03:45+00:00"
1910 | },
1911 | {
1912 | "name": "symfony/polyfill-php73",
1913 | "version": "v1.12.0",
1914 | "source": {
1915 | "type": "git",
1916 | "url": "https://github.com/symfony/polyfill-php73.git",
1917 | "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188"
1918 | },
1919 | "dist": {
1920 | "type": "zip",
1921 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188",
1922 | "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188",
1923 | "shasum": ""
1924 | },
1925 | "require": {
1926 | "php": ">=5.3.3"
1927 | },
1928 | "type": "library",
1929 | "extra": {
1930 | "branch-alias": {
1931 | "dev-master": "1.12-dev"
1932 | }
1933 | },
1934 | "autoload": {
1935 | "psr-4": {
1936 | "Symfony\\Polyfill\\Php73\\": ""
1937 | },
1938 | "files": [
1939 | "bootstrap.php"
1940 | ],
1941 | "classmap": [
1942 | "Resources/stubs"
1943 | ]
1944 | },
1945 | "notification-url": "https://packagist.org/downloads/",
1946 | "license": [
1947 | "MIT"
1948 | ],
1949 | "authors": [
1950 | {
1951 | "name": "Nicolas Grekas",
1952 | "email": "p@tchwork.com"
1953 | },
1954 | {
1955 | "name": "Symfony Community",
1956 | "homepage": "https://symfony.com/contributors"
1957 | }
1958 | ],
1959 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
1960 | "homepage": "https://symfony.com",
1961 | "keywords": [
1962 | "compatibility",
1963 | "polyfill",
1964 | "portable",
1965 | "shim"
1966 | ],
1967 | "time": "2019-08-06T08:03:45+00:00"
1968 | },
1969 | {
1970 | "name": "symfony/process",
1971 | "version": "v4.3.3",
1972 | "source": {
1973 | "type": "git",
1974 | "url": "https://github.com/symfony/process.git",
1975 | "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c"
1976 | },
1977 | "dist": {
1978 | "type": "zip",
1979 | "url": "https://api.github.com/repos/symfony/process/zipball/856d35814cf287480465bb7a6c413bb7f5f5e69c",
1980 | "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c",
1981 | "shasum": ""
1982 | },
1983 | "require": {
1984 | "php": "^7.1.3"
1985 | },
1986 | "type": "library",
1987 | "extra": {
1988 | "branch-alias": {
1989 | "dev-master": "4.3-dev"
1990 | }
1991 | },
1992 | "autoload": {
1993 | "psr-4": {
1994 | "Symfony\\Component\\Process\\": ""
1995 | },
1996 | "exclude-from-classmap": [
1997 | "/Tests/"
1998 | ]
1999 | },
2000 | "notification-url": "https://packagist.org/downloads/",
2001 | "license": [
2002 | "MIT"
2003 | ],
2004 | "authors": [
2005 | {
2006 | "name": "Fabien Potencier",
2007 | "email": "fabien@symfony.com"
2008 | },
2009 | {
2010 | "name": "Symfony Community",
2011 | "homepage": "https://symfony.com/contributors"
2012 | }
2013 | ],
2014 | "description": "Symfony Process Component",
2015 | "homepage": "https://symfony.com",
2016 | "time": "2019-05-30T16:10:05+00:00"
2017 | },
2018 | {
2019 | "name": "symfony/service-contracts",
2020 | "version": "v1.1.5",
2021 | "source": {
2022 | "type": "git",
2023 | "url": "https://github.com/symfony/service-contracts.git",
2024 | "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d"
2025 | },
2026 | "dist": {
2027 | "type": "zip",
2028 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d",
2029 | "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d",
2030 | "shasum": ""
2031 | },
2032 | "require": {
2033 | "php": "^7.1.3",
2034 | "psr/container": "^1.0"
2035 | },
2036 | "suggest": {
2037 | "symfony/service-implementation": ""
2038 | },
2039 | "type": "library",
2040 | "extra": {
2041 | "branch-alias": {
2042 | "dev-master": "1.1-dev"
2043 | }
2044 | },
2045 | "autoload": {
2046 | "psr-4": {
2047 | "Symfony\\Contracts\\Service\\": ""
2048 | }
2049 | },
2050 | "notification-url": "https://packagist.org/downloads/",
2051 | "license": [
2052 | "MIT"
2053 | ],
2054 | "authors": [
2055 | {
2056 | "name": "Nicolas Grekas",
2057 | "email": "p@tchwork.com"
2058 | },
2059 | {
2060 | "name": "Symfony Community",
2061 | "homepage": "https://symfony.com/contributors"
2062 | }
2063 | ],
2064 | "description": "Generic abstractions related to writing services",
2065 | "homepage": "https://symfony.com",
2066 | "keywords": [
2067 | "abstractions",
2068 | "contracts",
2069 | "decoupling",
2070 | "interfaces",
2071 | "interoperability",
2072 | "standards"
2073 | ],
2074 | "time": "2019-06-13T11:15:36+00:00"
2075 | },
2076 | {
2077 | "name": "symfony/translation",
2078 | "version": "v4.3.3",
2079 | "source": {
2080 | "type": "git",
2081 | "url": "https://github.com/symfony/translation.git",
2082 | "reference": "4e3e39cc485304f807622bdc64938e4633396406"
2083 | },
2084 | "dist": {
2085 | "type": "zip",
2086 | "url": "https://api.github.com/repos/symfony/translation/zipball/4e3e39cc485304f807622bdc64938e4633396406",
2087 | "reference": "4e3e39cc485304f807622bdc64938e4633396406",
2088 | "shasum": ""
2089 | },
2090 | "require": {
2091 | "php": "^7.1.3",
2092 | "symfony/polyfill-mbstring": "~1.0",
2093 | "symfony/translation-contracts": "^1.1.2"
2094 | },
2095 | "conflict": {
2096 | "symfony/config": "<3.4",
2097 | "symfony/dependency-injection": "<3.4",
2098 | "symfony/yaml": "<3.4"
2099 | },
2100 | "provide": {
2101 | "symfony/translation-implementation": "1.0"
2102 | },
2103 | "require-dev": {
2104 | "psr/log": "~1.0",
2105 | "symfony/config": "~3.4|~4.0",
2106 | "symfony/console": "~3.4|~4.0",
2107 | "symfony/dependency-injection": "~3.4|~4.0",
2108 | "symfony/finder": "~2.8|~3.0|~4.0",
2109 | "symfony/http-kernel": "~3.4|~4.0",
2110 | "symfony/intl": "~3.4|~4.0",
2111 | "symfony/service-contracts": "^1.1.2",
2112 | "symfony/var-dumper": "~3.4|~4.0",
2113 | "symfony/yaml": "~3.4|~4.0"
2114 | },
2115 | "suggest": {
2116 | "psr/log-implementation": "To use logging capability in translator",
2117 | "symfony/config": "",
2118 | "symfony/yaml": ""
2119 | },
2120 | "type": "library",
2121 | "extra": {
2122 | "branch-alias": {
2123 | "dev-master": "4.3-dev"
2124 | }
2125 | },
2126 | "autoload": {
2127 | "psr-4": {
2128 | "Symfony\\Component\\Translation\\": ""
2129 | },
2130 | "exclude-from-classmap": [
2131 | "/Tests/"
2132 | ]
2133 | },
2134 | "notification-url": "https://packagist.org/downloads/",
2135 | "license": [
2136 | "MIT"
2137 | ],
2138 | "authors": [
2139 | {
2140 | "name": "Fabien Potencier",
2141 | "email": "fabien@symfony.com"
2142 | },
2143 | {
2144 | "name": "Symfony Community",
2145 | "homepage": "https://symfony.com/contributors"
2146 | }
2147 | ],
2148 | "description": "Symfony Translation Component",
2149 | "homepage": "https://symfony.com",
2150 | "time": "2019-07-18T10:34:59+00:00"
2151 | },
2152 | {
2153 | "name": "symfony/translation-contracts",
2154 | "version": "v1.1.5",
2155 | "source": {
2156 | "type": "git",
2157 | "url": "https://github.com/symfony/translation-contracts.git",
2158 | "reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c"
2159 | },
2160 | "dist": {
2161 | "type": "zip",
2162 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/cb4b18ad7b92a26e83b65dde940fab78339e6f3c",
2163 | "reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c",
2164 | "shasum": ""
2165 | },
2166 | "require": {
2167 | "php": "^7.1.3"
2168 | },
2169 | "suggest": {
2170 | "symfony/translation-implementation": ""
2171 | },
2172 | "type": "library",
2173 | "extra": {
2174 | "branch-alias": {
2175 | "dev-master": "1.1-dev"
2176 | }
2177 | },
2178 | "autoload": {
2179 | "psr-4": {
2180 | "Symfony\\Contracts\\Translation\\": ""
2181 | }
2182 | },
2183 | "notification-url": "https://packagist.org/downloads/",
2184 | "license": [
2185 | "MIT"
2186 | ],
2187 | "authors": [
2188 | {
2189 | "name": "Nicolas Grekas",
2190 | "email": "p@tchwork.com"
2191 | },
2192 | {
2193 | "name": "Symfony Community",
2194 | "homepage": "https://symfony.com/contributors"
2195 | }
2196 | ],
2197 | "description": "Generic abstractions related to translation",
2198 | "homepage": "https://symfony.com",
2199 | "keywords": [
2200 | "abstractions",
2201 | "contracts",
2202 | "decoupling",
2203 | "interfaces",
2204 | "interoperability",
2205 | "standards"
2206 | ],
2207 | "time": "2019-06-13T11:15:36+00:00"
2208 | },
2209 | {
2210 | "name": "symfony/var-dumper",
2211 | "version": "v4.3.3",
2212 | "source": {
2213 | "type": "git",
2214 | "url": "https://github.com/symfony/var-dumper.git",
2215 | "reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07"
2216 | },
2217 | "dist": {
2218 | "type": "zip",
2219 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e4110b992d2cbe198d7d3b244d079c1c58761d07",
2220 | "reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07",
2221 | "shasum": ""
2222 | },
2223 | "require": {
2224 | "php": "^7.1.3",
2225 | "symfony/polyfill-mbstring": "~1.0",
2226 | "symfony/polyfill-php72": "~1.5"
2227 | },
2228 | "conflict": {
2229 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
2230 | "symfony/console": "<3.4"
2231 | },
2232 | "require-dev": {
2233 | "ext-iconv": "*",
2234 | "symfony/console": "~3.4|~4.0",
2235 | "symfony/process": "~3.4|~4.0",
2236 | "twig/twig": "~1.34|~2.4"
2237 | },
2238 | "suggest": {
2239 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
2240 | "ext-intl": "To show region name in time zone dump",
2241 | "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
2242 | },
2243 | "bin": [
2244 | "Resources/bin/var-dump-server"
2245 | ],
2246 | "type": "library",
2247 | "extra": {
2248 | "branch-alias": {
2249 | "dev-master": "4.3-dev"
2250 | }
2251 | },
2252 | "autoload": {
2253 | "files": [
2254 | "Resources/functions/dump.php"
2255 | ],
2256 | "psr-4": {
2257 | "Symfony\\Component\\VarDumper\\": ""
2258 | },
2259 | "exclude-from-classmap": [
2260 | "/Tests/"
2261 | ]
2262 | },
2263 | "notification-url": "https://packagist.org/downloads/",
2264 | "license": [
2265 | "MIT"
2266 | ],
2267 | "authors": [
2268 | {
2269 | "name": "Nicolas Grekas",
2270 | "email": "p@tchwork.com"
2271 | },
2272 | {
2273 | "name": "Symfony Community",
2274 | "homepage": "https://symfony.com/contributors"
2275 | }
2276 | ],
2277 | "description": "Symfony mechanism for exploring and dumping PHP variables",
2278 | "homepage": "https://symfony.com",
2279 | "keywords": [
2280 | "debug",
2281 | "dump"
2282 | ],
2283 | "time": "2019-07-27T06:42:46+00:00"
2284 | },
2285 | {
2286 | "name": "vlucas/phpdotenv",
2287 | "version": "v3.4.0",
2288 | "source": {
2289 | "type": "git",
2290 | "url": "https://github.com/vlucas/phpdotenv.git",
2291 | "reference": "5084b23845c24dbff8ac6c204290c341e4776c92"
2292 | },
2293 | "dist": {
2294 | "type": "zip",
2295 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/5084b23845c24dbff8ac6c204290c341e4776c92",
2296 | "reference": "5084b23845c24dbff8ac6c204290c341e4776c92",
2297 | "shasum": ""
2298 | },
2299 | "require": {
2300 | "php": "^5.4 || ^7.0",
2301 | "phpoption/phpoption": "^1.5",
2302 | "symfony/polyfill-ctype": "^1.9"
2303 | },
2304 | "require-dev": {
2305 | "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0"
2306 | },
2307 | "type": "library",
2308 | "extra": {
2309 | "branch-alias": {
2310 | "dev-master": "3.4-dev"
2311 | }
2312 | },
2313 | "autoload": {
2314 | "psr-4": {
2315 | "Dotenv\\": "src/"
2316 | }
2317 | },
2318 | "notification-url": "https://packagist.org/downloads/",
2319 | "license": [
2320 | "BSD-3-Clause"
2321 | ],
2322 | "authors": [
2323 | {
2324 | "name": "Vance Lucas",
2325 | "email": "vance@vancelucas.com",
2326 | "homepage": "http://www.vancelucas.com"
2327 | }
2328 | ],
2329 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
2330 | "keywords": [
2331 | "dotenv",
2332 | "env",
2333 | "environment"
2334 | ],
2335 | "time": "2019-06-15T22:40:20+00:00"
2336 | }
2337 | ],
2338 | "packages-dev": [
2339 | {
2340 | "name": "doctrine/instantiator",
2341 | "version": "1.2.0",
2342 | "source": {
2343 | "type": "git",
2344 | "url": "https://github.com/doctrine/instantiator.git",
2345 | "reference": "a2c590166b2133a4633738648b6b064edae0814a"
2346 | },
2347 | "dist": {
2348 | "type": "zip",
2349 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
2350 | "reference": "a2c590166b2133a4633738648b6b064edae0814a",
2351 | "shasum": ""
2352 | },
2353 | "require": {
2354 | "php": "^7.1"
2355 | },
2356 | "require-dev": {
2357 | "doctrine/coding-standard": "^6.0",
2358 | "ext-pdo": "*",
2359 | "ext-phar": "*",
2360 | "phpbench/phpbench": "^0.13",
2361 | "phpstan/phpstan-phpunit": "^0.11",
2362 | "phpstan/phpstan-shim": "^0.11",
2363 | "phpunit/phpunit": "^7.0"
2364 | },
2365 | "type": "library",
2366 | "extra": {
2367 | "branch-alias": {
2368 | "dev-master": "1.2.x-dev"
2369 | }
2370 | },
2371 | "autoload": {
2372 | "psr-4": {
2373 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
2374 | }
2375 | },
2376 | "notification-url": "https://packagist.org/downloads/",
2377 | "license": [
2378 | "MIT"
2379 | ],
2380 | "authors": [
2381 | {
2382 | "name": "Marco Pivetta",
2383 | "email": "ocramius@gmail.com",
2384 | "homepage": "http://ocramius.github.com/"
2385 | }
2386 | ],
2387 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
2388 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
2389 | "keywords": [
2390 | "constructor",
2391 | "instantiate"
2392 | ],
2393 | "time": "2019-03-17T17:37:11+00:00"
2394 | },
2395 | {
2396 | "name": "hamcrest/hamcrest-php",
2397 | "version": "v2.0.0",
2398 | "source": {
2399 | "type": "git",
2400 | "url": "https://github.com/hamcrest/hamcrest-php.git",
2401 | "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad"
2402 | },
2403 | "dist": {
2404 | "type": "zip",
2405 | "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad",
2406 | "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad",
2407 | "shasum": ""
2408 | },
2409 | "require": {
2410 | "php": "^5.3|^7.0"
2411 | },
2412 | "replace": {
2413 | "cordoval/hamcrest-php": "*",
2414 | "davedevelopment/hamcrest-php": "*",
2415 | "kodova/hamcrest-php": "*"
2416 | },
2417 | "require-dev": {
2418 | "phpunit/php-file-iterator": "1.3.3",
2419 | "phpunit/phpunit": "~4.0",
2420 | "satooshi/php-coveralls": "^1.0"
2421 | },
2422 | "type": "library",
2423 | "extra": {
2424 | "branch-alias": {
2425 | "dev-master": "2.0-dev"
2426 | }
2427 | },
2428 | "autoload": {
2429 | "classmap": [
2430 | "hamcrest"
2431 | ]
2432 | },
2433 | "notification-url": "https://packagist.org/downloads/",
2434 | "license": [
2435 | "BSD"
2436 | ],
2437 | "description": "This is the PHP port of Hamcrest Matchers",
2438 | "keywords": [
2439 | "test"
2440 | ],
2441 | "time": "2016-01-20T08:20:44+00:00"
2442 | },
2443 | {
2444 | "name": "mockery/mockery",
2445 | "version": "1.2.3",
2446 | "source": {
2447 | "type": "git",
2448 | "url": "https://github.com/mockery/mockery.git",
2449 | "reference": "4eff936d83eb809bde2c57a3cea0ee9643769031"
2450 | },
2451 | "dist": {
2452 | "type": "zip",
2453 | "url": "https://api.github.com/repos/mockery/mockery/zipball/4eff936d83eb809bde2c57a3cea0ee9643769031",
2454 | "reference": "4eff936d83eb809bde2c57a3cea0ee9643769031",
2455 | "shasum": ""
2456 | },
2457 | "require": {
2458 | "hamcrest/hamcrest-php": "~2.0",
2459 | "lib-pcre": ">=7.0",
2460 | "php": ">=5.6.0"
2461 | },
2462 | "require-dev": {
2463 | "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0"
2464 | },
2465 | "type": "library",
2466 | "extra": {
2467 | "branch-alias": {
2468 | "dev-master": "1.0.x-dev"
2469 | }
2470 | },
2471 | "autoload": {
2472 | "psr-0": {
2473 | "Mockery": "library/"
2474 | }
2475 | },
2476 | "notification-url": "https://packagist.org/downloads/",
2477 | "license": [
2478 | "BSD-3-Clause"
2479 | ],
2480 | "authors": [
2481 | {
2482 | "name": "Pádraic Brady",
2483 | "email": "padraic.brady@gmail.com",
2484 | "homepage": "http://blog.astrumfutura.com"
2485 | },
2486 | {
2487 | "name": "Dave Marshall",
2488 | "email": "dave.marshall@atstsolutions.co.uk",
2489 | "homepage": "http://davedevelopment.co.uk"
2490 | }
2491 | ],
2492 | "description": "Mockery is a simple yet flexible PHP mock object framework",
2493 | "homepage": "https://github.com/mockery/mockery",
2494 | "keywords": [
2495 | "BDD",
2496 | "TDD",
2497 | "library",
2498 | "mock",
2499 | "mock objects",
2500 | "mockery",
2501 | "stub",
2502 | "test",
2503 | "test double",
2504 | "testing"
2505 | ],
2506 | "time": "2019-08-07T15:01:07+00:00"
2507 | },
2508 | {
2509 | "name": "myclabs/deep-copy",
2510 | "version": "1.9.3",
2511 | "source": {
2512 | "type": "git",
2513 | "url": "https://github.com/myclabs/DeepCopy.git",
2514 | "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea"
2515 | },
2516 | "dist": {
2517 | "type": "zip",
2518 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea",
2519 | "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea",
2520 | "shasum": ""
2521 | },
2522 | "require": {
2523 | "php": "^7.1"
2524 | },
2525 | "replace": {
2526 | "myclabs/deep-copy": "self.version"
2527 | },
2528 | "require-dev": {
2529 | "doctrine/collections": "^1.0",
2530 | "doctrine/common": "^2.6",
2531 | "phpunit/phpunit": "^7.1"
2532 | },
2533 | "type": "library",
2534 | "autoload": {
2535 | "psr-4": {
2536 | "DeepCopy\\": "src/DeepCopy/"
2537 | },
2538 | "files": [
2539 | "src/DeepCopy/deep_copy.php"
2540 | ]
2541 | },
2542 | "notification-url": "https://packagist.org/downloads/",
2543 | "license": [
2544 | "MIT"
2545 | ],
2546 | "description": "Create deep copies (clones) of your objects",
2547 | "keywords": [
2548 | "clone",
2549 | "copy",
2550 | "duplicate",
2551 | "object",
2552 | "object graph"
2553 | ],
2554 | "time": "2019-08-09T12:45:53+00:00"
2555 | },
2556 | {
2557 | "name": "phar-io/manifest",
2558 | "version": "1.0.3",
2559 | "source": {
2560 | "type": "git",
2561 | "url": "https://github.com/phar-io/manifest.git",
2562 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
2563 | },
2564 | "dist": {
2565 | "type": "zip",
2566 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
2567 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
2568 | "shasum": ""
2569 | },
2570 | "require": {
2571 | "ext-dom": "*",
2572 | "ext-phar": "*",
2573 | "phar-io/version": "^2.0",
2574 | "php": "^5.6 || ^7.0"
2575 | },
2576 | "type": "library",
2577 | "extra": {
2578 | "branch-alias": {
2579 | "dev-master": "1.0.x-dev"
2580 | }
2581 | },
2582 | "autoload": {
2583 | "classmap": [
2584 | "src/"
2585 | ]
2586 | },
2587 | "notification-url": "https://packagist.org/downloads/",
2588 | "license": [
2589 | "BSD-3-Clause"
2590 | ],
2591 | "authors": [
2592 | {
2593 | "name": "Arne Blankerts",
2594 | "role": "Developer",
2595 | "email": "arne@blankerts.de"
2596 | },
2597 | {
2598 | "name": "Sebastian Heuer",
2599 | "role": "Developer",
2600 | "email": "sebastian@phpeople.de"
2601 | },
2602 | {
2603 | "name": "Sebastian Bergmann",
2604 | "role": "Developer",
2605 | "email": "sebastian@phpunit.de"
2606 | }
2607 | ],
2608 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
2609 | "time": "2018-07-08T19:23:20+00:00"
2610 | },
2611 | {
2612 | "name": "phar-io/version",
2613 | "version": "2.0.1",
2614 | "source": {
2615 | "type": "git",
2616 | "url": "https://github.com/phar-io/version.git",
2617 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
2618 | },
2619 | "dist": {
2620 | "type": "zip",
2621 | "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
2622 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
2623 | "shasum": ""
2624 | },
2625 | "require": {
2626 | "php": "^5.6 || ^7.0"
2627 | },
2628 | "type": "library",
2629 | "autoload": {
2630 | "classmap": [
2631 | "src/"
2632 | ]
2633 | },
2634 | "notification-url": "https://packagist.org/downloads/",
2635 | "license": [
2636 | "BSD-3-Clause"
2637 | ],
2638 | "authors": [
2639 | {
2640 | "name": "Arne Blankerts",
2641 | "role": "Developer",
2642 | "email": "arne@blankerts.de"
2643 | },
2644 | {
2645 | "name": "Sebastian Heuer",
2646 | "role": "Developer",
2647 | "email": "sebastian@phpeople.de"
2648 | },
2649 | {
2650 | "name": "Sebastian Bergmann",
2651 | "role": "Developer",
2652 | "email": "sebastian@phpunit.de"
2653 | }
2654 | ],
2655 | "description": "Library for handling version information and constraints",
2656 | "time": "2018-07-08T19:19:57+00:00"
2657 | },
2658 | {
2659 | "name": "phpdocumentor/reflection-common",
2660 | "version": "1.0.1",
2661 | "source": {
2662 | "type": "git",
2663 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
2664 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
2665 | },
2666 | "dist": {
2667 | "type": "zip",
2668 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
2669 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
2670 | "shasum": ""
2671 | },
2672 | "require": {
2673 | "php": ">=5.5"
2674 | },
2675 | "require-dev": {
2676 | "phpunit/phpunit": "^4.6"
2677 | },
2678 | "type": "library",
2679 | "extra": {
2680 | "branch-alias": {
2681 | "dev-master": "1.0.x-dev"
2682 | }
2683 | },
2684 | "autoload": {
2685 | "psr-4": {
2686 | "phpDocumentor\\Reflection\\": [
2687 | "src"
2688 | ]
2689 | }
2690 | },
2691 | "notification-url": "https://packagist.org/downloads/",
2692 | "license": [
2693 | "MIT"
2694 | ],
2695 | "authors": [
2696 | {
2697 | "name": "Jaap van Otterdijk",
2698 | "email": "opensource@ijaap.nl"
2699 | }
2700 | ],
2701 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
2702 | "homepage": "http://www.phpdoc.org",
2703 | "keywords": [
2704 | "FQSEN",
2705 | "phpDocumentor",
2706 | "phpdoc",
2707 | "reflection",
2708 | "static analysis"
2709 | ],
2710 | "time": "2017-09-11T18:02:19+00:00"
2711 | },
2712 | {
2713 | "name": "phpdocumentor/reflection-docblock",
2714 | "version": "4.3.1",
2715 | "source": {
2716 | "type": "git",
2717 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
2718 | "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
2719 | },
2720 | "dist": {
2721 | "type": "zip",
2722 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
2723 | "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
2724 | "shasum": ""
2725 | },
2726 | "require": {
2727 | "php": "^7.0",
2728 | "phpdocumentor/reflection-common": "^1.0.0",
2729 | "phpdocumentor/type-resolver": "^0.4.0",
2730 | "webmozart/assert": "^1.0"
2731 | },
2732 | "require-dev": {
2733 | "doctrine/instantiator": "~1.0.5",
2734 | "mockery/mockery": "^1.0",
2735 | "phpunit/phpunit": "^6.4"
2736 | },
2737 | "type": "library",
2738 | "extra": {
2739 | "branch-alias": {
2740 | "dev-master": "4.x-dev"
2741 | }
2742 | },
2743 | "autoload": {
2744 | "psr-4": {
2745 | "phpDocumentor\\Reflection\\": [
2746 | "src/"
2747 | ]
2748 | }
2749 | },
2750 | "notification-url": "https://packagist.org/downloads/",
2751 | "license": [
2752 | "MIT"
2753 | ],
2754 | "authors": [
2755 | {
2756 | "name": "Mike van Riel",
2757 | "email": "me@mikevanriel.com"
2758 | }
2759 | ],
2760 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
2761 | "time": "2019-04-30T17:48:53+00:00"
2762 | },
2763 | {
2764 | "name": "phpdocumentor/type-resolver",
2765 | "version": "0.4.0",
2766 | "source": {
2767 | "type": "git",
2768 | "url": "https://github.com/phpDocumentor/TypeResolver.git",
2769 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
2770 | },
2771 | "dist": {
2772 | "type": "zip",
2773 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
2774 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
2775 | "shasum": ""
2776 | },
2777 | "require": {
2778 | "php": "^5.5 || ^7.0",
2779 | "phpdocumentor/reflection-common": "^1.0"
2780 | },
2781 | "require-dev": {
2782 | "mockery/mockery": "^0.9.4",
2783 | "phpunit/phpunit": "^5.2||^4.8.24"
2784 | },
2785 | "type": "library",
2786 | "extra": {
2787 | "branch-alias": {
2788 | "dev-master": "1.0.x-dev"
2789 | }
2790 | },
2791 | "autoload": {
2792 | "psr-4": {
2793 | "phpDocumentor\\Reflection\\": [
2794 | "src/"
2795 | ]
2796 | }
2797 | },
2798 | "notification-url": "https://packagist.org/downloads/",
2799 | "license": [
2800 | "MIT"
2801 | ],
2802 | "authors": [
2803 | {
2804 | "name": "Mike van Riel",
2805 | "email": "me@mikevanriel.com"
2806 | }
2807 | ],
2808 | "time": "2017-07-14T14:27:02+00:00"
2809 | },
2810 | {
2811 | "name": "phpspec/prophecy",
2812 | "version": "1.8.1",
2813 | "source": {
2814 | "type": "git",
2815 | "url": "https://github.com/phpspec/prophecy.git",
2816 | "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
2817 | },
2818 | "dist": {
2819 | "type": "zip",
2820 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
2821 | "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
2822 | "shasum": ""
2823 | },
2824 | "require": {
2825 | "doctrine/instantiator": "^1.0.2",
2826 | "php": "^5.3|^7.0",
2827 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
2828 | "sebastian/comparator": "^1.1|^2.0|^3.0",
2829 | "sebastian/recursion-context": "^1.0|^2.0|^3.0"
2830 | },
2831 | "require-dev": {
2832 | "phpspec/phpspec": "^2.5|^3.2",
2833 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
2834 | },
2835 | "type": "library",
2836 | "extra": {
2837 | "branch-alias": {
2838 | "dev-master": "1.8.x-dev"
2839 | }
2840 | },
2841 | "autoload": {
2842 | "psr-4": {
2843 | "Prophecy\\": "src/Prophecy"
2844 | }
2845 | },
2846 | "notification-url": "https://packagist.org/downloads/",
2847 | "license": [
2848 | "MIT"
2849 | ],
2850 | "authors": [
2851 | {
2852 | "name": "Konstantin Kudryashov",
2853 | "email": "ever.zet@gmail.com",
2854 | "homepage": "http://everzet.com"
2855 | },
2856 | {
2857 | "name": "Marcello Duarte",
2858 | "email": "marcello.duarte@gmail.com"
2859 | }
2860 | ],
2861 | "description": "Highly opinionated mocking framework for PHP 5.3+",
2862 | "homepage": "https://github.com/phpspec/prophecy",
2863 | "keywords": [
2864 | "Double",
2865 | "Dummy",
2866 | "fake",
2867 | "mock",
2868 | "spy",
2869 | "stub"
2870 | ],
2871 | "time": "2019-06-13T12:50:23+00:00"
2872 | },
2873 | {
2874 | "name": "phpunit/php-code-coverage",
2875 | "version": "6.1.4",
2876 | "source": {
2877 | "type": "git",
2878 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
2879 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
2880 | },
2881 | "dist": {
2882 | "type": "zip",
2883 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
2884 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
2885 | "shasum": ""
2886 | },
2887 | "require": {
2888 | "ext-dom": "*",
2889 | "ext-xmlwriter": "*",
2890 | "php": "^7.1",
2891 | "phpunit/php-file-iterator": "^2.0",
2892 | "phpunit/php-text-template": "^1.2.1",
2893 | "phpunit/php-token-stream": "^3.0",
2894 | "sebastian/code-unit-reverse-lookup": "^1.0.1",
2895 | "sebastian/environment": "^3.1 || ^4.0",
2896 | "sebastian/version": "^2.0.1",
2897 | "theseer/tokenizer": "^1.1"
2898 | },
2899 | "require-dev": {
2900 | "phpunit/phpunit": "^7.0"
2901 | },
2902 | "suggest": {
2903 | "ext-xdebug": "^2.6.0"
2904 | },
2905 | "type": "library",
2906 | "extra": {
2907 | "branch-alias": {
2908 | "dev-master": "6.1-dev"
2909 | }
2910 | },
2911 | "autoload": {
2912 | "classmap": [
2913 | "src/"
2914 | ]
2915 | },
2916 | "notification-url": "https://packagist.org/downloads/",
2917 | "license": [
2918 | "BSD-3-Clause"
2919 | ],
2920 | "authors": [
2921 | {
2922 | "name": "Sebastian Bergmann",
2923 | "role": "lead",
2924 | "email": "sebastian@phpunit.de"
2925 | }
2926 | ],
2927 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
2928 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
2929 | "keywords": [
2930 | "coverage",
2931 | "testing",
2932 | "xunit"
2933 | ],
2934 | "time": "2018-10-31T16:06:48+00:00"
2935 | },
2936 | {
2937 | "name": "phpunit/php-file-iterator",
2938 | "version": "2.0.2",
2939 | "source": {
2940 | "type": "git",
2941 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
2942 | "reference": "050bedf145a257b1ff02746c31894800e5122946"
2943 | },
2944 | "dist": {
2945 | "type": "zip",
2946 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
2947 | "reference": "050bedf145a257b1ff02746c31894800e5122946",
2948 | "shasum": ""
2949 | },
2950 | "require": {
2951 | "php": "^7.1"
2952 | },
2953 | "require-dev": {
2954 | "phpunit/phpunit": "^7.1"
2955 | },
2956 | "type": "library",
2957 | "extra": {
2958 | "branch-alias": {
2959 | "dev-master": "2.0.x-dev"
2960 | }
2961 | },
2962 | "autoload": {
2963 | "classmap": [
2964 | "src/"
2965 | ]
2966 | },
2967 | "notification-url": "https://packagist.org/downloads/",
2968 | "license": [
2969 | "BSD-3-Clause"
2970 | ],
2971 | "authors": [
2972 | {
2973 | "name": "Sebastian Bergmann",
2974 | "role": "lead",
2975 | "email": "sebastian@phpunit.de"
2976 | }
2977 | ],
2978 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
2979 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
2980 | "keywords": [
2981 | "filesystem",
2982 | "iterator"
2983 | ],
2984 | "time": "2018-09-13T20:33:42+00:00"
2985 | },
2986 | {
2987 | "name": "phpunit/php-text-template",
2988 | "version": "1.2.1",
2989 | "source": {
2990 | "type": "git",
2991 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
2992 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
2993 | },
2994 | "dist": {
2995 | "type": "zip",
2996 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2997 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
2998 | "shasum": ""
2999 | },
3000 | "require": {
3001 | "php": ">=5.3.3"
3002 | },
3003 | "type": "library",
3004 | "autoload": {
3005 | "classmap": [
3006 | "src/"
3007 | ]
3008 | },
3009 | "notification-url": "https://packagist.org/downloads/",
3010 | "license": [
3011 | "BSD-3-Clause"
3012 | ],
3013 | "authors": [
3014 | {
3015 | "name": "Sebastian Bergmann",
3016 | "role": "lead",
3017 | "email": "sebastian@phpunit.de"
3018 | }
3019 | ],
3020 | "description": "Simple template engine.",
3021 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
3022 | "keywords": [
3023 | "template"
3024 | ],
3025 | "time": "2015-06-21T13:50:34+00:00"
3026 | },
3027 | {
3028 | "name": "phpunit/php-timer",
3029 | "version": "2.1.2",
3030 | "source": {
3031 | "type": "git",
3032 | "url": "https://github.com/sebastianbergmann/php-timer.git",
3033 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
3034 | },
3035 | "dist": {
3036 | "type": "zip",
3037 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
3038 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
3039 | "shasum": ""
3040 | },
3041 | "require": {
3042 | "php": "^7.1"
3043 | },
3044 | "require-dev": {
3045 | "phpunit/phpunit": "^7.0"
3046 | },
3047 | "type": "library",
3048 | "extra": {
3049 | "branch-alias": {
3050 | "dev-master": "2.1-dev"
3051 | }
3052 | },
3053 | "autoload": {
3054 | "classmap": [
3055 | "src/"
3056 | ]
3057 | },
3058 | "notification-url": "https://packagist.org/downloads/",
3059 | "license": [
3060 | "BSD-3-Clause"
3061 | ],
3062 | "authors": [
3063 | {
3064 | "name": "Sebastian Bergmann",
3065 | "role": "lead",
3066 | "email": "sebastian@phpunit.de"
3067 | }
3068 | ],
3069 | "description": "Utility class for timing",
3070 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
3071 | "keywords": [
3072 | "timer"
3073 | ],
3074 | "time": "2019-06-07T04:22:29+00:00"
3075 | },
3076 | {
3077 | "name": "phpunit/php-token-stream",
3078 | "version": "3.1.0",
3079 | "source": {
3080 | "type": "git",
3081 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
3082 | "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a"
3083 | },
3084 | "dist": {
3085 | "type": "zip",
3086 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a",
3087 | "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a",
3088 | "shasum": ""
3089 | },
3090 | "require": {
3091 | "ext-tokenizer": "*",
3092 | "php": "^7.1"
3093 | },
3094 | "require-dev": {
3095 | "phpunit/phpunit": "^7.0"
3096 | },
3097 | "type": "library",
3098 | "extra": {
3099 | "branch-alias": {
3100 | "dev-master": "3.1-dev"
3101 | }
3102 | },
3103 | "autoload": {
3104 | "classmap": [
3105 | "src/"
3106 | ]
3107 | },
3108 | "notification-url": "https://packagist.org/downloads/",
3109 | "license": [
3110 | "BSD-3-Clause"
3111 | ],
3112 | "authors": [
3113 | {
3114 | "name": "Sebastian Bergmann",
3115 | "email": "sebastian@phpunit.de"
3116 | }
3117 | ],
3118 | "description": "Wrapper around PHP's tokenizer extension.",
3119 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
3120 | "keywords": [
3121 | "tokenizer"
3122 | ],
3123 | "time": "2019-07-25T05:29:42+00:00"
3124 | },
3125 | {
3126 | "name": "phpunit/phpunit",
3127 | "version": "7.5.15",
3128 | "source": {
3129 | "type": "git",
3130 | "url": "https://github.com/sebastianbergmann/phpunit.git",
3131 | "reference": "d79c053d972856b8b941bb233e39dc521a5093f0"
3132 | },
3133 | "dist": {
3134 | "type": "zip",
3135 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d79c053d972856b8b941bb233e39dc521a5093f0",
3136 | "reference": "d79c053d972856b8b941bb233e39dc521a5093f0",
3137 | "shasum": ""
3138 | },
3139 | "require": {
3140 | "doctrine/instantiator": "^1.1",
3141 | "ext-dom": "*",
3142 | "ext-json": "*",
3143 | "ext-libxml": "*",
3144 | "ext-mbstring": "*",
3145 | "ext-xml": "*",
3146 | "myclabs/deep-copy": "^1.7",
3147 | "phar-io/manifest": "^1.0.2",
3148 | "phar-io/version": "^2.0",
3149 | "php": "^7.1",
3150 | "phpspec/prophecy": "^1.7",
3151 | "phpunit/php-code-coverage": "^6.0.7",
3152 | "phpunit/php-file-iterator": "^2.0.1",
3153 | "phpunit/php-text-template": "^1.2.1",
3154 | "phpunit/php-timer": "^2.1",
3155 | "sebastian/comparator": "^3.0",
3156 | "sebastian/diff": "^3.0",
3157 | "sebastian/environment": "^4.0",
3158 | "sebastian/exporter": "^3.1",
3159 | "sebastian/global-state": "^2.0",
3160 | "sebastian/object-enumerator": "^3.0.3",
3161 | "sebastian/resource-operations": "^2.0",
3162 | "sebastian/version": "^2.0.1"
3163 | },
3164 | "conflict": {
3165 | "phpunit/phpunit-mock-objects": "*"
3166 | },
3167 | "require-dev": {
3168 | "ext-pdo": "*"
3169 | },
3170 | "suggest": {
3171 | "ext-soap": "*",
3172 | "ext-xdebug": "*",
3173 | "phpunit/php-invoker": "^2.0"
3174 | },
3175 | "bin": [
3176 | "phpunit"
3177 | ],
3178 | "type": "library",
3179 | "extra": {
3180 | "branch-alias": {
3181 | "dev-master": "7.5-dev"
3182 | }
3183 | },
3184 | "autoload": {
3185 | "classmap": [
3186 | "src/"
3187 | ]
3188 | },
3189 | "notification-url": "https://packagist.org/downloads/",
3190 | "license": [
3191 | "BSD-3-Clause"
3192 | ],
3193 | "authors": [
3194 | {
3195 | "name": "Sebastian Bergmann",
3196 | "role": "lead",
3197 | "email": "sebastian@phpunit.de"
3198 | }
3199 | ],
3200 | "description": "The PHP Unit Testing framework.",
3201 | "homepage": "https://phpunit.de/",
3202 | "keywords": [
3203 | "phpunit",
3204 | "testing",
3205 | "xunit"
3206 | ],
3207 | "time": "2019-08-21T07:05:16+00:00"
3208 | },
3209 | {
3210 | "name": "sebastian/code-unit-reverse-lookup",
3211 | "version": "1.0.1",
3212 | "source": {
3213 | "type": "git",
3214 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
3215 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
3216 | },
3217 | "dist": {
3218 | "type": "zip",
3219 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
3220 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
3221 | "shasum": ""
3222 | },
3223 | "require": {
3224 | "php": "^5.6 || ^7.0"
3225 | },
3226 | "require-dev": {
3227 | "phpunit/phpunit": "^5.7 || ^6.0"
3228 | },
3229 | "type": "library",
3230 | "extra": {
3231 | "branch-alias": {
3232 | "dev-master": "1.0.x-dev"
3233 | }
3234 | },
3235 | "autoload": {
3236 | "classmap": [
3237 | "src/"
3238 | ]
3239 | },
3240 | "notification-url": "https://packagist.org/downloads/",
3241 | "license": [
3242 | "BSD-3-Clause"
3243 | ],
3244 | "authors": [
3245 | {
3246 | "name": "Sebastian Bergmann",
3247 | "email": "sebastian@phpunit.de"
3248 | }
3249 | ],
3250 | "description": "Looks up which function or method a line of code belongs to",
3251 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
3252 | "time": "2017-03-04T06:30:41+00:00"
3253 | },
3254 | {
3255 | "name": "sebastian/comparator",
3256 | "version": "3.0.2",
3257 | "source": {
3258 | "type": "git",
3259 | "url": "https://github.com/sebastianbergmann/comparator.git",
3260 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
3261 | },
3262 | "dist": {
3263 | "type": "zip",
3264 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
3265 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
3266 | "shasum": ""
3267 | },
3268 | "require": {
3269 | "php": "^7.1",
3270 | "sebastian/diff": "^3.0",
3271 | "sebastian/exporter": "^3.1"
3272 | },
3273 | "require-dev": {
3274 | "phpunit/phpunit": "^7.1"
3275 | },
3276 | "type": "library",
3277 | "extra": {
3278 | "branch-alias": {
3279 | "dev-master": "3.0-dev"
3280 | }
3281 | },
3282 | "autoload": {
3283 | "classmap": [
3284 | "src/"
3285 | ]
3286 | },
3287 | "notification-url": "https://packagist.org/downloads/",
3288 | "license": [
3289 | "BSD-3-Clause"
3290 | ],
3291 | "authors": [
3292 | {
3293 | "name": "Jeff Welch",
3294 | "email": "whatthejeff@gmail.com"
3295 | },
3296 | {
3297 | "name": "Volker Dusch",
3298 | "email": "github@wallbash.com"
3299 | },
3300 | {
3301 | "name": "Bernhard Schussek",
3302 | "email": "bschussek@2bepublished.at"
3303 | },
3304 | {
3305 | "name": "Sebastian Bergmann",
3306 | "email": "sebastian@phpunit.de"
3307 | }
3308 | ],
3309 | "description": "Provides the functionality to compare PHP values for equality",
3310 | "homepage": "https://github.com/sebastianbergmann/comparator",
3311 | "keywords": [
3312 | "comparator",
3313 | "compare",
3314 | "equality"
3315 | ],
3316 | "time": "2018-07-12T15:12:46+00:00"
3317 | },
3318 | {
3319 | "name": "sebastian/diff",
3320 | "version": "3.0.2",
3321 | "source": {
3322 | "type": "git",
3323 | "url": "https://github.com/sebastianbergmann/diff.git",
3324 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
3325 | },
3326 | "dist": {
3327 | "type": "zip",
3328 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
3329 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
3330 | "shasum": ""
3331 | },
3332 | "require": {
3333 | "php": "^7.1"
3334 | },
3335 | "require-dev": {
3336 | "phpunit/phpunit": "^7.5 || ^8.0",
3337 | "symfony/process": "^2 || ^3.3 || ^4"
3338 | },
3339 | "type": "library",
3340 | "extra": {
3341 | "branch-alias": {
3342 | "dev-master": "3.0-dev"
3343 | }
3344 | },
3345 | "autoload": {
3346 | "classmap": [
3347 | "src/"
3348 | ]
3349 | },
3350 | "notification-url": "https://packagist.org/downloads/",
3351 | "license": [
3352 | "BSD-3-Clause"
3353 | ],
3354 | "authors": [
3355 | {
3356 | "name": "Kore Nordmann",
3357 | "email": "mail@kore-nordmann.de"
3358 | },
3359 | {
3360 | "name": "Sebastian Bergmann",
3361 | "email": "sebastian@phpunit.de"
3362 | }
3363 | ],
3364 | "description": "Diff implementation",
3365 | "homepage": "https://github.com/sebastianbergmann/diff",
3366 | "keywords": [
3367 | "diff",
3368 | "udiff",
3369 | "unidiff",
3370 | "unified diff"
3371 | ],
3372 | "time": "2019-02-04T06:01:07+00:00"
3373 | },
3374 | {
3375 | "name": "sebastian/environment",
3376 | "version": "4.2.2",
3377 | "source": {
3378 | "type": "git",
3379 | "url": "https://github.com/sebastianbergmann/environment.git",
3380 | "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404"
3381 | },
3382 | "dist": {
3383 | "type": "zip",
3384 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404",
3385 | "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404",
3386 | "shasum": ""
3387 | },
3388 | "require": {
3389 | "php": "^7.1"
3390 | },
3391 | "require-dev": {
3392 | "phpunit/phpunit": "^7.5"
3393 | },
3394 | "suggest": {
3395 | "ext-posix": "*"
3396 | },
3397 | "type": "library",
3398 | "extra": {
3399 | "branch-alias": {
3400 | "dev-master": "4.2-dev"
3401 | }
3402 | },
3403 | "autoload": {
3404 | "classmap": [
3405 | "src/"
3406 | ]
3407 | },
3408 | "notification-url": "https://packagist.org/downloads/",
3409 | "license": [
3410 | "BSD-3-Clause"
3411 | ],
3412 | "authors": [
3413 | {
3414 | "name": "Sebastian Bergmann",
3415 | "email": "sebastian@phpunit.de"
3416 | }
3417 | ],
3418 | "description": "Provides functionality to handle HHVM/PHP environments",
3419 | "homepage": "http://www.github.com/sebastianbergmann/environment",
3420 | "keywords": [
3421 | "Xdebug",
3422 | "environment",
3423 | "hhvm"
3424 | ],
3425 | "time": "2019-05-05T09:05:15+00:00"
3426 | },
3427 | {
3428 | "name": "sebastian/exporter",
3429 | "version": "3.1.1",
3430 | "source": {
3431 | "type": "git",
3432 | "url": "https://github.com/sebastianbergmann/exporter.git",
3433 | "reference": "06a9a5947f47b3029d76118eb5c22802e5869687"
3434 | },
3435 | "dist": {
3436 | "type": "zip",
3437 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687",
3438 | "reference": "06a9a5947f47b3029d76118eb5c22802e5869687",
3439 | "shasum": ""
3440 | },
3441 | "require": {
3442 | "php": "^7.0",
3443 | "sebastian/recursion-context": "^3.0"
3444 | },
3445 | "require-dev": {
3446 | "ext-mbstring": "*",
3447 | "phpunit/phpunit": "^6.0"
3448 | },
3449 | "type": "library",
3450 | "extra": {
3451 | "branch-alias": {
3452 | "dev-master": "3.1.x-dev"
3453 | }
3454 | },
3455 | "autoload": {
3456 | "classmap": [
3457 | "src/"
3458 | ]
3459 | },
3460 | "notification-url": "https://packagist.org/downloads/",
3461 | "license": [
3462 | "BSD-3-Clause"
3463 | ],
3464 | "authors": [
3465 | {
3466 | "name": "Sebastian Bergmann",
3467 | "email": "sebastian@phpunit.de"
3468 | },
3469 | {
3470 | "name": "Jeff Welch",
3471 | "email": "whatthejeff@gmail.com"
3472 | },
3473 | {
3474 | "name": "Volker Dusch",
3475 | "email": "github@wallbash.com"
3476 | },
3477 | {
3478 | "name": "Adam Harvey",
3479 | "email": "aharvey@php.net"
3480 | },
3481 | {
3482 | "name": "Bernhard Schussek",
3483 | "email": "bschussek@gmail.com"
3484 | }
3485 | ],
3486 | "description": "Provides the functionality to export PHP variables for visualization",
3487 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
3488 | "keywords": [
3489 | "export",
3490 | "exporter"
3491 | ],
3492 | "time": "2019-08-11T12:43:14+00:00"
3493 | },
3494 | {
3495 | "name": "sebastian/global-state",
3496 | "version": "2.0.0",
3497 | "source": {
3498 | "type": "git",
3499 | "url": "https://github.com/sebastianbergmann/global-state.git",
3500 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
3501 | },
3502 | "dist": {
3503 | "type": "zip",
3504 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
3505 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
3506 | "shasum": ""
3507 | },
3508 | "require": {
3509 | "php": "^7.0"
3510 | },
3511 | "require-dev": {
3512 | "phpunit/phpunit": "^6.0"
3513 | },
3514 | "suggest": {
3515 | "ext-uopz": "*"
3516 | },
3517 | "type": "library",
3518 | "extra": {
3519 | "branch-alias": {
3520 | "dev-master": "2.0-dev"
3521 | }
3522 | },
3523 | "autoload": {
3524 | "classmap": [
3525 | "src/"
3526 | ]
3527 | },
3528 | "notification-url": "https://packagist.org/downloads/",
3529 | "license": [
3530 | "BSD-3-Clause"
3531 | ],
3532 | "authors": [
3533 | {
3534 | "name": "Sebastian Bergmann",
3535 | "email": "sebastian@phpunit.de"
3536 | }
3537 | ],
3538 | "description": "Snapshotting of global state",
3539 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
3540 | "keywords": [
3541 | "global state"
3542 | ],
3543 | "time": "2017-04-27T15:39:26+00:00"
3544 | },
3545 | {
3546 | "name": "sebastian/object-enumerator",
3547 | "version": "3.0.3",
3548 | "source": {
3549 | "type": "git",
3550 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
3551 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
3552 | },
3553 | "dist": {
3554 | "type": "zip",
3555 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
3556 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
3557 | "shasum": ""
3558 | },
3559 | "require": {
3560 | "php": "^7.0",
3561 | "sebastian/object-reflector": "^1.1.1",
3562 | "sebastian/recursion-context": "^3.0"
3563 | },
3564 | "require-dev": {
3565 | "phpunit/phpunit": "^6.0"
3566 | },
3567 | "type": "library",
3568 | "extra": {
3569 | "branch-alias": {
3570 | "dev-master": "3.0.x-dev"
3571 | }
3572 | },
3573 | "autoload": {
3574 | "classmap": [
3575 | "src/"
3576 | ]
3577 | },
3578 | "notification-url": "https://packagist.org/downloads/",
3579 | "license": [
3580 | "BSD-3-Clause"
3581 | ],
3582 | "authors": [
3583 | {
3584 | "name": "Sebastian Bergmann",
3585 | "email": "sebastian@phpunit.de"
3586 | }
3587 | ],
3588 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
3589 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
3590 | "time": "2017-08-03T12:35:26+00:00"
3591 | },
3592 | {
3593 | "name": "sebastian/object-reflector",
3594 | "version": "1.1.1",
3595 | "source": {
3596 | "type": "git",
3597 | "url": "https://github.com/sebastianbergmann/object-reflector.git",
3598 | "reference": "773f97c67f28de00d397be301821b06708fca0be"
3599 | },
3600 | "dist": {
3601 | "type": "zip",
3602 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
3603 | "reference": "773f97c67f28de00d397be301821b06708fca0be",
3604 | "shasum": ""
3605 | },
3606 | "require": {
3607 | "php": "^7.0"
3608 | },
3609 | "require-dev": {
3610 | "phpunit/phpunit": "^6.0"
3611 | },
3612 | "type": "library",
3613 | "extra": {
3614 | "branch-alias": {
3615 | "dev-master": "1.1-dev"
3616 | }
3617 | },
3618 | "autoload": {
3619 | "classmap": [
3620 | "src/"
3621 | ]
3622 | },
3623 | "notification-url": "https://packagist.org/downloads/",
3624 | "license": [
3625 | "BSD-3-Clause"
3626 | ],
3627 | "authors": [
3628 | {
3629 | "name": "Sebastian Bergmann",
3630 | "email": "sebastian@phpunit.de"
3631 | }
3632 | ],
3633 | "description": "Allows reflection of object attributes, including inherited and non-public ones",
3634 | "homepage": "https://github.com/sebastianbergmann/object-reflector/",
3635 | "time": "2017-03-29T09:07:27+00:00"
3636 | },
3637 | {
3638 | "name": "sebastian/recursion-context",
3639 | "version": "3.0.0",
3640 | "source": {
3641 | "type": "git",
3642 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
3643 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
3644 | },
3645 | "dist": {
3646 | "type": "zip",
3647 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
3648 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
3649 | "shasum": ""
3650 | },
3651 | "require": {
3652 | "php": "^7.0"
3653 | },
3654 | "require-dev": {
3655 | "phpunit/phpunit": "^6.0"
3656 | },
3657 | "type": "library",
3658 | "extra": {
3659 | "branch-alias": {
3660 | "dev-master": "3.0.x-dev"
3661 | }
3662 | },
3663 | "autoload": {
3664 | "classmap": [
3665 | "src/"
3666 | ]
3667 | },
3668 | "notification-url": "https://packagist.org/downloads/",
3669 | "license": [
3670 | "BSD-3-Clause"
3671 | ],
3672 | "authors": [
3673 | {
3674 | "name": "Jeff Welch",
3675 | "email": "whatthejeff@gmail.com"
3676 | },
3677 | {
3678 | "name": "Sebastian Bergmann",
3679 | "email": "sebastian@phpunit.de"
3680 | },
3681 | {
3682 | "name": "Adam Harvey",
3683 | "email": "aharvey@php.net"
3684 | }
3685 | ],
3686 | "description": "Provides functionality to recursively process PHP variables",
3687 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
3688 | "time": "2017-03-03T06:23:57+00:00"
3689 | },
3690 | {
3691 | "name": "sebastian/resource-operations",
3692 | "version": "2.0.1",
3693 | "source": {
3694 | "type": "git",
3695 | "url": "https://github.com/sebastianbergmann/resource-operations.git",
3696 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
3697 | },
3698 | "dist": {
3699 | "type": "zip",
3700 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
3701 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
3702 | "shasum": ""
3703 | },
3704 | "require": {
3705 | "php": "^7.1"
3706 | },
3707 | "type": "library",
3708 | "extra": {
3709 | "branch-alias": {
3710 | "dev-master": "2.0-dev"
3711 | }
3712 | },
3713 | "autoload": {
3714 | "classmap": [
3715 | "src/"
3716 | ]
3717 | },
3718 | "notification-url": "https://packagist.org/downloads/",
3719 | "license": [
3720 | "BSD-3-Clause"
3721 | ],
3722 | "authors": [
3723 | {
3724 | "name": "Sebastian Bergmann",
3725 | "email": "sebastian@phpunit.de"
3726 | }
3727 | ],
3728 | "description": "Provides a list of PHP built-in functions that operate on resources",
3729 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
3730 | "time": "2018-10-04T04:07:39+00:00"
3731 | },
3732 | {
3733 | "name": "sebastian/version",
3734 | "version": "2.0.1",
3735 | "source": {
3736 | "type": "git",
3737 | "url": "https://github.com/sebastianbergmann/version.git",
3738 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
3739 | },
3740 | "dist": {
3741 | "type": "zip",
3742 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
3743 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
3744 | "shasum": ""
3745 | },
3746 | "require": {
3747 | "php": ">=5.6"
3748 | },
3749 | "type": "library",
3750 | "extra": {
3751 | "branch-alias": {
3752 | "dev-master": "2.0.x-dev"
3753 | }
3754 | },
3755 | "autoload": {
3756 | "classmap": [
3757 | "src/"
3758 | ]
3759 | },
3760 | "notification-url": "https://packagist.org/downloads/",
3761 | "license": [
3762 | "BSD-3-Clause"
3763 | ],
3764 | "authors": [
3765 | {
3766 | "name": "Sebastian Bergmann",
3767 | "role": "lead",
3768 | "email": "sebastian@phpunit.de"
3769 | }
3770 | ],
3771 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
3772 | "homepage": "https://github.com/sebastianbergmann/version",
3773 | "time": "2016-10-03T07:35:21+00:00"
3774 | },
3775 | {
3776 | "name": "theseer/tokenizer",
3777 | "version": "1.1.3",
3778 | "source": {
3779 | "type": "git",
3780 | "url": "https://github.com/theseer/tokenizer.git",
3781 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
3782 | },
3783 | "dist": {
3784 | "type": "zip",
3785 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
3786 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
3787 | "shasum": ""
3788 | },
3789 | "require": {
3790 | "ext-dom": "*",
3791 | "ext-tokenizer": "*",
3792 | "ext-xmlwriter": "*",
3793 | "php": "^7.0"
3794 | },
3795 | "type": "library",
3796 | "autoload": {
3797 | "classmap": [
3798 | "src/"
3799 | ]
3800 | },
3801 | "notification-url": "https://packagist.org/downloads/",
3802 | "license": [
3803 | "BSD-3-Clause"
3804 | ],
3805 | "authors": [
3806 | {
3807 | "name": "Arne Blankerts",
3808 | "role": "Developer",
3809 | "email": "arne@blankerts.de"
3810 | }
3811 | ],
3812 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
3813 | "time": "2019-06-13T22:48:21+00:00"
3814 | },
3815 | {
3816 | "name": "webmozart/assert",
3817 | "version": "1.4.0",
3818 | "source": {
3819 | "type": "git",
3820 | "url": "https://github.com/webmozart/assert.git",
3821 | "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
3822 | },
3823 | "dist": {
3824 | "type": "zip",
3825 | "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
3826 | "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
3827 | "shasum": ""
3828 | },
3829 | "require": {
3830 | "php": "^5.3.3 || ^7.0",
3831 | "symfony/polyfill-ctype": "^1.8"
3832 | },
3833 | "require-dev": {
3834 | "phpunit/phpunit": "^4.6",
3835 | "sebastian/version": "^1.0.1"
3836 | },
3837 | "type": "library",
3838 | "extra": {
3839 | "branch-alias": {
3840 | "dev-master": "1.3-dev"
3841 | }
3842 | },
3843 | "autoload": {
3844 | "psr-4": {
3845 | "Webmozart\\Assert\\": "src/"
3846 | }
3847 | },
3848 | "notification-url": "https://packagist.org/downloads/",
3849 | "license": [
3850 | "MIT"
3851 | ],
3852 | "authors": [
3853 | {
3854 | "name": "Bernhard Schussek",
3855 | "email": "bschussek@gmail.com"
3856 | }
3857 | ],
3858 | "description": "Assertions to validate method input/output with nice error messages.",
3859 | "keywords": [
3860 | "assert",
3861 | "check",
3862 | "validate"
3863 | ],
3864 | "time": "2018-12-25T11:19:39+00:00"
3865 | }
3866 | ],
3867 | "aliases": [],
3868 | "minimum-stability": "dev",
3869 | "stability-flags": [],
3870 | "prefer-stable": true,
3871 | "prefer-lowest": false,
3872 | "platform": {
3873 | "php": "^7.1.3"
3874 | },
3875 | "platform-dev": []
3876 | }
3877 |
--------------------------------------------------------------------------------