Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to open stream and cannot open phar archive #433

Closed
allejo opened this issue Sep 8, 2019 · 17 comments · Fixed by #444
Closed

Failed to open stream and cannot open phar archive #433

allejo opened this issue Sep 8, 2019 · 17 comments · Fixed by #444
Labels

Comments

@allejo
Copy link

allejo commented Sep 8, 2019

So about a week ago, I ran the box.phar no problem built a PHAR successfully with 3.8.0. However, since then, I believe I've changed/updated PHP versions and now I'm getting this error on PHP 7.2.21.

And for the life of me, I can't figure out what has changed that now I can't compile any PHARs.

In ClassLoader.php line 444:

  include(phar:///path/to/box.phar/vendor/composer/../amphp/amp/lib/Failure.php): failed to open stream: phar error: Cannot open phar archive "/path/to/box.phar" for reading


compile [-c|--config CONFIG] [--debug] [--no-parallel] [--no-restart] [--dev] [--no-config] [--with-docker] [-d|--working-dir WORKING-DIR]

PHP Fatal error:  Uncaught ErrorException: include(phar:///path/to/box.phar/vendor/composer/../amphp/process/lib/ProcessException.php): failed to open stream: phar error: Cannot open phar archive "/path/to/box.phar" for reading in phar:///path/to/box.phar/.box/vendor/composer/ClassLoader.php:444
Stack trace:
#0 phar:///path/to/box.phar/.box/vendor/composer/ClassLoader.php(444): _HumbugBox7eb78fbcc73e\KevinGH\Box\{closure}(2, 'include(phar://...', 'phar:///Users/a...', 444, Array)
#1 phar:///path/to/box.phar/.box/vendor/composer/ClassLoader.php(444): include()
#2 phar:///path/to/box.phar/.box/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('phar:///path/t...')
#3 [internal function]: Composer\Autoload\ClassLoader->loadClass('_HumbugBox7eb78...')
#4 phar:///path/to/box.phar/vendor/amphp/process/lib/Internal/Posix/Runner.php(134): spl_autoload_call('_HumbugBox7eb78...')
#5 phar:///path/to/bo in phar:///path/to/box.phar/.box/vendor/composer/ClassLoader.php on line 444
@theofidry
Copy link
Member

Thanks for the report. It sounds very weird indeed, could you upload the problematic PHAR just in case?

@theofidry theofidry added the bug label Sep 9, 2019
@allejo
Copy link
Author

allejo commented Sep 10, 2019

I just downloaded the latest 3.8.0 phar from the releases page, but here it is just in case

box.phar.zip

@theofidry
Copy link
Member

I'm honestly lost at what could do this... Trying to install 7.2.21 to see if this is happening locally as well...

@allejo
Copy link
Author

allejo commented Sep 19, 2019

So I decided to clone the repo and run bin/box from my clone and I got this error. The failed file looks to be the same, could this be related?

In ClassLoader.php line 444:

  include(/tmp/box/vendor/amphp/amp/lib/Failure.php): failed to open stream: Too many open files


compile [-c|--config CONFIG] [--debug] [--no-parallel] [--no-restart] [--dev] [--no-config] [--with-docker] [-d|--working-dir WORKING-DIR]


Fatal error: Uncaught ErrorException: include(/tmp/box/vendor/amphp/process/lib/ProcessException.php): failed to open stream: Too many open files in /tmp/box/vendor/composer/ClassLoader.php:444
Stack trace:
#0 /tmp/box/vendor/composer/ClassLoader.php(444): KevinGH\Box\{closure}(2, 'include(/tmp...', '/tmp/...', 444, Array)
#1 /tmp/box/vendor/composer/ClassLoader.php(444): include()
#2 /tmp/box/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/tmp/...')
#3 [internal function]: Composer\Autoload\ClassLoader->loadClass('Amp\\Process\\Pro...')
#4 /tmp/box/vendor/amphp/process/lib/Internal/Posix/Runner.php(198): spl_autoload_call('Amp\\Process\\Pro...')
#5 /tmp/box/vendor/amphp/process/lib/Process.php(141): Amp\Process\Internal\Posix\Run in /tmp/box/vendor/composer/ClassLoader.php on line 444

@theofidry
Copy link
Member

This is really curious... I was aware of a similar issue when compressing the PHAR, hence Box raises the file limit: https://github.com/humbug/box/blob/master/src/Console/Command/Compile.php#L621

This however looks unrelated and happening in the processes when parallelising the work...

@kelunik do you have an idea on what's going there? Or maybe on how we could debug this or make it easier to debug

@kelunik
Copy link

kelunik commented Sep 19, 2019

@theofidry I've no idea, sorry. Could you check which setup worked before, so which PHP version you used before? What's the configured file limit?

@theofidry
Copy link
Member

@allejo could you confirm:

  • The OS
  • The PHP version (and which one was working before)
  • The current file limit: posix_getrlimit()

If possible run the compilation step with --debug, it should create a ./box_dump/.box_configuration file with some information in it. If it doesn't, maybe you can "hack" the Compile command to export it earlier, the export code is here.

@allejo
Copy link
Author

allejo commented Sep 20, 2019

  1. macOS 10.14.6
  2. tried with PHP 7.2.21 and 7.3.8 (previously worked with PHP 7.2.14 but can no longer replicate it working)
  3. here you go!
    php > print_r(posix_getrlimit());
    Array
    (
        [soft core] => 0
        [hard core] => unlimited
        [soft data] => unlimited
        [hard data] => unlimited
        [soft stack] => 8388608
        [hard stack] => 67104768
        [soft totalmem] => unlimited
        [hard totalmem] => unlimited
        [soft rss] => unlimited
        [hard rss] => unlimited
        [soft maxproc] => 2837
        [hard maxproc] => 2837
        [soft memlock] => unlimited
        [hard memlock] => unlimited
        [soft cpu] => unlimited
        [hard cpu] => unlimited
        [soft filesize] => unlimited
        [hard filesize] => unlimited
        [soft openfiles] => 256
        [hard openfiles] => unlimited
    )
    

Here's the output of the .box_dump/.box_configuration file:

//
// Processed content of the configuration file "/path/to/Development/BZFlag/rrlog/box.json.dist" dumped for debugging purposes
//
// PHP Version: 7.3.8
// PHP extensions: Core,date,libxml,openssl,pcre,sqlite3,zlib,bcmath,bz2,calendar,ctype,curl,dom,hash,fileinfo,filter,ftp,gd,SPL,iconv,intl,json,mbstring,session,standard,mysqlnd,PDO,pdo_mysql,pdo_sqlite,Phar,posix,readline,Reflection,mysqli,SimpleXML,soap,sockets,sodium,exif,tokenizer,wddx,xml,xmlreader,xmlwriter,xsl,zip,imap,gettext,pgsql,pdo_pgsql
// OS: Darwin / 18.7.0
// Command: /path/to/tmp/box/bin/box compile --debug --dev --ansi
// Box: 3.8.0@e7d8df3
// Time: 2019-09-20T04:40:44+00:00
//

KevinGH\Box\Configuration\Configuration {#173
  -file: "box.json.dist"
  -fileMode: "0755"
  -alias: "box-auto-generated-alias-538e6d46a437.phar"
  -basePath: "/path/to/Development/BZFlag/rrlog"
  -composerJson: KevinGH\Box\Composer\ComposerFile {#856
    -path: "composer.json"
    -contents: array:10 [
      "name" => "allejo/rrlog"
      "description" => "A command-line tool for converting BZFlag replays into text formats"
      "type" => "project"
      "require" => array:5 [
        "php" => ">=7.1"
        "ext-json" => "*"
        "allejo/bzflag-networking.php" => "^1.0"
        "symfony/console" => "^4.3"
        "violet/streaming-json-encoder" => "^1.1"
      ]
      "require-dev" => array:1 [
        "phpunit/phpunit" => "^7.5"
      ]
      "autoload" => array:1 [
        "psr-4" => array:1 [
          "allejo\rrlog\" => "src/allejo/rrlog/"
        ]
      ]
      "autoload-dev" => array:1 [
        "psr-4" => array:1 [
          "allejo\rrlog\Tests\" => "tests/allejo/rrlog/"
        ]
      ]
      "license" => "MIT"
      "authors" => array:1 [
        0 => array:2 [
          "name" => "Vladimir "allejo" Jimenez"
          "email" => "me@allejo.io"
        ]
      ]
      "config" => array:1 [
        "sort-packages" => true
      ]
    ]
  }
  -composerLock: KevinGH\Box\Composer\ComposerFile {#858
    -path: "composer.lock"
    -contents: array:11 [
      "_readme" => array:3 [
        0 => "This file locks the dependencies of your project to a known state"
        1 => "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies"
        2 => "This file is @generated automatically"
      ]
      "content-hash" => "3ef8a24ada12b0b112f3eaf1126497d2"
      "packages" => array:8 [
        0 => array:14 [
          "name" => "allejo/bzflag-networking.php"
          "version" => "v1.0.9"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/allejo/bzflag-networking.php.git"
            "reference" => "6ac7ead8d322da105b05af057d9cb4751a2ea56b"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/allejo/bzflag-networking.php/zipball/6ac7ead8d322da105b05af057d9cb4751a2ea56b"
            "reference" => "6ac7ead8d322da105b05af057d9cb4751a2ea56b"
            "shasum" => ""
          ]
          "require" => array:2 [
            "ext-json" => "*"
            "php" => ">=7.1"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^7.5"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.0-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "allejo\bzflag\networking\" => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Vladimir "allejo" Jimenez"
              "email" => "me@allejo.io"
            ]
          ]
          "description" => "A library for unpacking BZFlag network packets"
          "time" => "2019-09-08T22:36:08+00:00"
        ]
        1 => array:15 [
          "name" => "psr/container"
          "version" => "1.0.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/php-fig/container.git"
            "reference" => "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
            "reference" => "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.3.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "Psr\Container\" => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "PHP-FIG"
              "homepage" => "http://www.php-fig.org/"
            ]
          ]
          "description" => "Common Container Interface (PHP FIG PSR-11)"
          "homepage" => "https://github.com/php-fig/container"
          "keywords" => array:5 [
            0 => "PSR-11"
            1 => "container"
            2 => "container-interface"
            3 => "container-interop"
            4 => "psr"
          ]
          "time" => "2017-02-14T16:28:37+00:00"
        ]
        2 => array:15 [
          "name" => "psr/http-message"
          "version" => "1.0.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/php-fig/http-message.git"
            "reference" => "f6561bf28d520154e4b0ec72be95418abe6d9363"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363"
            "reference" => "f6561bf28d520154e4b0ec72be95418abe6d9363"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.3.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "Psr\Http\Message\" => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "PHP-FIG"
              "homepage" => "http://www.php-fig.org/"
            ]
          ]
          "description" => "Common interface for HTTP messages"
          "homepage" => "https://github.com/php-fig/http-message"
          "keywords" => array:6 [
            0 => "http"
            1 => "http-message"
            2 => "psr"
            3 => "psr-7"
            4 => "request"
            5 => "response"
          ]
          "time" => "2016-08-06T14:39:51+00:00"
        ]
        3 => array:18 [
          "name" => "symfony/console"
          "version" => "v4.3.4"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/symfony/console.git"
            "reference" => "de63799239b3881b8a08f8481b22348f77ed7b36"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/symfony/console/zipball/de63799239b3881b8a08f8481b22348f77ed7b36"
            "reference" => "de63799239b3881b8a08f8481b22348f77ed7b36"
            "shasum" => ""
          ]
          "require" => array:4 [
            "php" => "^7.1.3"
            "symfony/polyfill-mbstring" => "~1.0"
            "symfony/polyfill-php73" => "^1.8"
            "symfony/service-contracts" => "^1.1"
          ]
          "conflict" => array:3 [
            "symfony/dependency-injection" => "<3.4"
            "symfony/event-dispatcher" => "<4.3"
            "symfony/process" => "<3.3"
          ]
          "provide" => array:1 [
            "psr/log-implementation" => "1.0"
          ]
          "require-dev" => array:7 [
            "psr/log" => "~1.0"
            "symfony/config" => "~3.4|~4.0"
            "symfony/dependency-injection" => "~3.4|~4.0"
            "symfony/event-dispatcher" => "^4.3"
            "symfony/lock" => "~3.4|~4.0"
            "symfony/process" => "~3.4|~4.0"
            "symfony/var-dumper" => "^4.3"
          ]
          "suggest" => array:4 [
            "psr/log" => "For using the console logger"
            "symfony/event-dispatcher" => ""
            "symfony/lock" => ""
            "symfony/process" => ""
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "4.3-dev"
            ]
          ]
          "autoload" => array:2 [
            "psr-4" => array:1 [
              "Symfony\Component\Console\" => ""
            ]
            "exclude-from-classmap" => array:1 [
              0 => "/Tests/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:2 [
            0 => array:2 [
              "name" => "Fabien Potencier"
              "email" => "fabien@symfony.com"
            ]
            1 => array:2 [
              "name" => "Symfony Community"
              "homepage" => "https://symfony.com/contributors"
            ]
          ]
          "description" => "Symfony Console Component"
          "homepage" => "https://symfony.com"
          "time" => "2019-08-26T08:26:39+00:00"
        ]
        4 => array:16 [
          "name" => "symfony/polyfill-mbstring"
          "version" => "v1.12.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/symfony/polyfill-mbstring.git"
            "reference" => "b42a2f66e8f1b15ccf25652c3424265923eb4f17"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17"
            "reference" => "b42a2f66e8f1b15ccf25652c3424265923eb4f17"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.3.3"
          ]
          "suggest" => array:1 [
            "ext-mbstring" => "For best performance"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.12-dev"
            ]
          ]
          "autoload" => array:2 [
            "psr-4" => array:1 [
              "Symfony\Polyfill\Mbstring\" => ""
            ]
            "files" => array:1 [
              0 => "bootstrap.php"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:2 [
            0 => array:2 [
              "name" => "Nicolas Grekas"
              "email" => "p@tchwork.com"
            ]
            1 => array:2 [
              "name" => "Symfony Community"
              "homepage" => "https://symfony.com/contributors"
            ]
          ]
          "description" => "Symfony polyfill for the Mbstring extension"
          "homepage" => "https://symfony.com"
          "keywords" => array:5 [
            0 => "compatibility"
            1 => "mbstring"
            2 => "polyfill"
            3 => "portable"
            4 => "shim"
          ]
          "time" => "2019-08-06T08:03:45+00:00"
        ]
        5 => array:15 [
          "name" => "symfony/polyfill-php73"
          "version" => "v1.12.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/symfony/polyfill-php73.git"
            "reference" => "2ceb49eaccb9352bff54d22570276bb75ba4a188"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188"
            "reference" => "2ceb49eaccb9352bff54d22570276bb75ba4a188"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.3.3"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.12-dev"
            ]
          ]
          "autoload" => array:3 [
            "psr-4" => array:1 [
              "Symfony\Polyfill\Php73\" => ""
            ]
            "files" => array:1 [
              0 => "bootstrap.php"
            ]
            "classmap" => array:1 [
              0 => "Resources/stubs"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:2 [
            0 => array:2 [
              "name" => "Nicolas Grekas"
              "email" => "p@tchwork.com"
            ]
            1 => array:2 [
              "name" => "Symfony Community"
              "homepage" => "https://symfony.com/contributors"
            ]
          ]
          "description" => "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions"
          "homepage" => "https://symfony.com"
          "keywords" => array:4 [
            0 => "compatibility"
            1 => "polyfill"
            2 => "portable"
            3 => "shim"
          ]
          "time" => "2019-08-06T08:03:45+00:00"
        ]
        6 => array:16 [
          "name" => "symfony/service-contracts"
          "version" => "v1.1.6"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/symfony/service-contracts.git"
            "reference" => "ea7263d6b6d5f798b56a45a5b8d686725f2719a3"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/symfony/service-contracts/zipball/ea7263d6b6d5f798b56a45a5b8d686725f2719a3"
            "reference" => "ea7263d6b6d5f798b56a45a5b8d686725f2719a3"
            "shasum" => ""
          ]
          "require" => array:2 [
            "php" => "^7.1.3"
            "psr/container" => "^1.0"
          ]
          "suggest" => array:1 [
            "symfony/service-implementation" => ""
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.1-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "Symfony\Contracts\Service\" => ""
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:2 [
            0 => array:2 [
              "name" => "Nicolas Grekas"
              "email" => "p@tchwork.com"
            ]
            1 => array:2 [
              "name" => "Symfony Community"
              "homepage" => "https://symfony.com/contributors"
            ]
          ]
          "description" => "Generic abstractions related to writing services"
          "homepage" => "https://symfony.com"
          "keywords" => array:6 [
            0 => "abstractions"
            1 => "contracts"
            2 => "decoupling"
            3 => "interfaces"
            4 => "interoperability"
            5 => "standards"
          ]
          "time" => "2019-08-20T14:44:19+00:00"
        ]
        7 => array:15 [
          "name" => "violet/streaming-json-encoder"
          "version" => "v1.1.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/violet-php/streaming-json-encoder.git"
            "reference" => "5aa8bc3494c4a24116b46c0d461c409eeb8bf313"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/violet-php/streaming-json-encoder/zipball/5aa8bc3494c4a24116b46c0d461c409eeb8bf313"
            "reference" => "5aa8bc3494c4a24116b46c0d461c409eeb8bf313"
            "shasum" => ""
          ]
          "require" => array:2 [
            "php" => ">=5.6.0"
            "psr/http-message" => "^1.0"
          ]
          "require-dev" => array:3 [
            "friendsofphp/php-cs-fixer" => "^2.3"
            "phpunit/phpunit" => "^5.7 || ^6.2"
            "squizlabs/php_codesniffer" => "^3.0"
          ]
          "type" => "library"
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "Violet\StreamingJsonEncoder\" => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Riikka Kalliomäki"
              "email" => "riikka.kalliomaki@gmail.com"
              "homepage" => "http://riimu.net"
            ]
          ]
          "description" => "Library for iteratively encoding large JSON documents piece by piece"
          "homepage" => "http://violet.riimu.net"
          "keywords" => array:4 [
            0 => "encoder"
            1 => "json"
            2 => "psr-7"
            3 => "streaming"
          ]
          "time" => "2017-07-09T14:42:39+00:00"
        ]
      ]
      "packages-dev" => array:28 [
        0 => array:16 [
          "name" => "doctrine/instantiator"
          "version" => "1.2.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/doctrine/instantiator.git"
            "reference" => "a2c590166b2133a4633738648b6b064edae0814a"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a"
            "reference" => "a2c590166b2133a4633738648b6b064edae0814a"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.1"
          ]
          "require-dev" => array:7 [
            "doctrine/coding-standard" => "^6.0"
            "ext-pdo" => "*"
            "ext-phar" => "*"
            "phpbench/phpbench" => "^0.13"
            "phpstan/phpstan-phpunit" => "^0.11"
            "phpstan/phpstan-shim" => "^0.11"
            "phpunit/phpunit" => "^7.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.2.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "Doctrine\Instantiator\" => "src/Doctrine/Instantiator/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Marco Pivetta"
              "email" => "ocramius@gmail.com"
              "homepage" => "http://ocramius.github.com/"
            ]
          ]
          "description" => "A small, lightweight utility to instantiate objects in PHP without invoking their constructors"
          "homepage" => "https://www.doctrine-project.org/projects/instantiator.html"
          "keywords" => array:2 [
            0 => "constructor"
            1 => "instantiate"
          ]
          "time" => "2019-03-17T17:37:11+00:00"
        ]
        1 => array:14 [
          "name" => "myclabs/deep-copy"
          "version" => "1.9.3"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/myclabs/DeepCopy.git"
            "reference" => "007c053ae6f31bba39dfa19a7726f56e9763bbea"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea"
            "reference" => "007c053ae6f31bba39dfa19a7726f56e9763bbea"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.1"
          ]
          "replace" => array:1 [
            "myclabs/deep-copy" => "self.version"
          ]
          "require-dev" => array:3 [
            "doctrine/collections" => "^1.0"
            "doctrine/common" => "^2.6"
            "phpunit/phpunit" => "^7.1"
          ]
          "type" => "library"
          "autoload" => array:2 [
            "psr-4" => array:1 [
              "DeepCopy\" => "src/DeepCopy/"
            ]
            "files" => array:1 [
              0 => "src/DeepCopy/deep_copy.php"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "description" => "Create deep copies (clones) of your objects"
          "keywords" => array:5 [
            0 => "clone"
            1 => "copy"
            2 => "duplicate"
            3 => "object"
            4 => "object graph"
          ]
          "time" => "2019-08-09T12:45:53+00:00"
        ]
        2 => array:13 [
          "name" => "phar-io/manifest"
          "version" => "1.0.3"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/phar-io/manifest.git"
            "reference" => "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
            "reference" => "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
            "shasum" => ""
          ]
          "require" => array:4 [
            "ext-dom" => "*"
            "ext-phar" => "*"
            "phar-io/version" => "^2.0"
            "php" => "^5.6 || ^7.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:3 [
            0 => array:3 [
              "name" => "Arne Blankerts"
              "role" => "Developer"
              "email" => "arne@blankerts.de"
            ]
            1 => array:3 [
              "name" => "Sebastian Heuer"
              "role" => "Developer"
              "email" => "sebastian@phpeople.de"
            ]
            2 => array:3 [
              "name" => "Sebastian Bergmann"
              "role" => "Developer"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Component for reading phar.io manifest information from a PHP Archive (PHAR)"
          "time" => "2018-07-08T19:23:20+00:00"
        ]
        3 => array:12 [
          "name" => "phar-io/version"
          "version" => "2.0.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/phar-io/version.git"
            "reference" => "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6"
            "reference" => "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^5.6 || ^7.0"
          ]
          "type" => "library"
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:3 [
            0 => array:3 [
              "name" => "Arne Blankerts"
              "email" => "arne@blankerts.de"
              "role" => "Developer"
            ]
            1 => array:3 [
              "name" => "Sebastian Heuer"
              "email" => "sebastian@phpeople.de"
              "role" => "Developer"
            ]
            2 => array:3 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
              "role" => "Developer"
            ]
          ]
          "description" => "Library for handling version information and constraints"
          "time" => "2018-07-08T19:19:57+00:00"
        ]
        4 => array:16 [
          "name" => "phpdocumentor/reflection-common"
          "version" => "1.0.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/phpDocumentor/ReflectionCommon.git"
            "reference" => "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
            "reference" => "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.5"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^4.6"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "phpDocumentor\Reflection\" => array:1 [
                0 => "src"
              ]
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Jaap van Otterdijk"
              "email" => "opensource@ijaap.nl"
            ]
          ]
          "description" => "Common reflection classes used by phpdocumentor to reflect the code structure"
          "homepage" => "http://www.phpdoc.org"
          "keywords" => array:5 [
            0 => "FQSEN"
            1 => "phpDocumentor"
            2 => "phpdoc"
            3 => "reflection"
            4 => "static analysis"
          ]
          "time" => "2017-09-11T18:02:19+00:00"
        ]
        5 => array:14 [
          "name" => "phpdocumentor/reflection-docblock"
          "version" => "4.3.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/phpDocumentor/ReflectionDocBlock.git"
            "reference" => "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
            "reference" => "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
            "shasum" => ""
          ]
          "require" => array:4 [
            "php" => "^7.0"
            "phpdocumentor/reflection-common" => "^1.0.0"
            "phpdocumentor/type-resolver" => "^0.4.0"
            "webmozart/assert" => "^1.0"
          ]
          "require-dev" => array:3 [
            "doctrine/instantiator" => "~1.0.5"
            "mockery/mockery" => "^1.0"
            "phpunit/phpunit" => "^6.4"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "4.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "phpDocumentor\Reflection\" => array:1 [
                0 => "src/"
              ]
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Mike van Riel"
              "email" => "me@mikevanriel.com"
            ]
          ]
          "description" => "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock."
          "time" => "2019-04-30T17:48:53+00:00"
        ]
        6 => array:13 [
          "name" => "phpdocumentor/type-resolver"
          "version" => "0.4.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/phpDocumentor/TypeResolver.git"
            "reference" => "9c977708995954784726e25d0cd1dddf4e65b0f7"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7"
            "reference" => "9c977708995954784726e25d0cd1dddf4e65b0f7"
            "shasum" => ""
          ]
          "require" => array:2 [
            "php" => "^5.5 || ^7.0"
            "phpdocumentor/reflection-common" => "^1.0"
          ]
          "require-dev" => array:2 [
            "mockery/mockery" => "^0.9.4"
            "phpunit/phpunit" => "^5.2||^4.8.24"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "phpDocumentor\Reflection\" => array:1 [
                0 => "src/"
              ]
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Mike van Riel"
              "email" => "me@mikevanriel.com"
            ]
          ]
          "time" => "2017-07-14T14:27:02+00:00"
        ]
        7 => array:16 [
          "name" => "phpspec/prophecy"
          "version" => "1.8.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/phpspec/prophecy.git"
            "reference" => "1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
            "reference" => "1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
            "shasum" => ""
          ]
          "require" => array:5 [
            "doctrine/instantiator" => "^1.0.2"
            "php" => "^5.3|^7.0"
            "phpdocumentor/reflection-docblock" => "^2.0|^3.0.2|^4.0"
            "sebastian/comparator" => "^1.1|^2.0|^3.0"
            "sebastian/recursion-context" => "^1.0|^2.0|^3.0"
          ]
          "require-dev" => array:2 [
            "phpspec/phpspec" => "^2.5|^3.2"
            "phpunit/phpunit" => "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.8.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "Prophecy\" => "src/Prophecy"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:2 [
            0 => array:3 [
              "name" => "Konstantin Kudryashov"
              "email" => "ever.zet@gmail.com"
              "homepage" => "http://everzet.com"
            ]
            1 => array:2 [
              "name" => "Marcello Duarte"
              "email" => "marcello.duarte@gmail.com"
            ]
          ]
          "description" => "Highly opinionated mocking framework for PHP 5.3+"
          "homepage" => "https://github.com/phpspec/prophecy"
          "keywords" => array:6 [
            0 => "Double"
            1 => "Dummy"
            2 => "fake"
            3 => "mock"
            4 => "spy"
            5 => "stub"
          ]
          "time" => "2019-06-13T12:50:23+00:00"
        ]
        8 => array:17 [
          "name" => "phpunit/php-code-coverage"
          "version" => "6.1.4"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/php-code-coverage.git"
            "reference" => "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
            "reference" => "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
            "shasum" => ""
          ]
          "require" => array:10 [
            "ext-dom" => "*"
            "ext-xmlwriter" => "*"
            "php" => "^7.1"
            "phpunit/php-file-iterator" => "^2.0"
            "phpunit/php-text-template" => "^1.2.1"
            "phpunit/php-token-stream" => "^3.0"
            "sebastian/code-unit-reverse-lookup" => "^1.0.1"
            "sebastian/environment" => "^3.1 || ^4.0"
            "sebastian/version" => "^2.0.1"
            "theseer/tokenizer" => "^1.1"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^7.0"
          ]
          "suggest" => array:1 [
            "ext-xdebug" => "^2.6.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "6.1-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
              "role" => "lead"
            ]
          ]
          "description" => "Library that provides collection, processing, and rendering functionality for PHP code coverage information."
          "homepage" => "https://github.com/sebastianbergmann/php-code-coverage"
          "keywords" => array:3 [
            0 => "coverage"
            1 => "testing"
            2 => "xunit"
          ]
          "time" => "2018-10-31T16:06:48+00:00"
        ]
        9 => array:16 [
          "name" => "phpunit/php-file-iterator"
          "version" => "2.0.2"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/php-file-iterator.git"
            "reference" => "050bedf145a257b1ff02746c31894800e5122946"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946"
            "reference" => "050bedf145a257b1ff02746c31894800e5122946"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.1"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^7.1"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "2.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Sebastian Bergmann"
              "role" => "lead"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "FilterIterator implementation that filters files based on a list of suffixes."
          "homepage" => "https://github.com/sebastianbergmann/php-file-iterator/"
          "keywords" => array:2 [
            0 => "filesystem"
            1 => "iterator"
          ]
          "time" => "2018-09-13T20:33:42+00:00"
        ]
        10 => array:14 [
          "name" => "phpunit/php-text-template"
          "version" => "1.2.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/php-text-template.git"
            "reference" => "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
            "reference" => "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.3.3"
          ]
          "type" => "library"
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Sebastian Bergmann"
              "role" => "lead"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Simple template engine."
          "homepage" => "https://github.com/sebastianbergmann/php-text-template/"
          "keywords" => array:1 [
            0 => "template"
          ]
          "time" => "2015-06-21T13:50:34+00:00"
        ]
        11 => array:16 [
          "name" => "phpunit/php-timer"
          "version" => "2.1.2"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/php-timer.git"
            "reference" => "1038454804406b0b5f5f520358e78c1c2f71501e"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e"
            "reference" => "1038454804406b0b5f5f520358e78c1c2f71501e"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.1"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^7.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "2.1-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Sebastian Bergmann"
              "role" => "lead"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Utility class for timing"
          "homepage" => "https://github.com/sebastianbergmann/php-timer/"
          "keywords" => array:1 [
            0 => "timer"
          ]
          "time" => "2019-06-07T04:22:29+00:00"
        ]
        12 => array:16 [
          "name" => "phpunit/php-token-stream"
          "version" => "3.1.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/php-token-stream.git"
            "reference" => "e899757bb3df5ff6e95089132f32cd59aac2220a"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a"
            "reference" => "e899757bb3df5ff6e95089132f32cd59aac2220a"
            "shasum" => ""
          ]
          "require" => array:2 [
            "ext-tokenizer" => "*"
            "php" => "^7.1"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^7.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "3.1-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Wrapper around PHP's tokenizer extension."
          "homepage" => "https://github.com/sebastianbergmann/php-token-stream/"
          "keywords" => array:1 [
            0 => "tokenizer"
          ]
          "time" => "2019-07-25T05:29:42+00:00"
        ]
        13 => array:19 [
          "name" => "phpunit/phpunit"
          "version" => "7.5.15"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/phpunit.git"
            "reference" => "d79c053d972856b8b941bb233e39dc521a5093f0"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d79c053d972856b8b941bb233e39dc521a5093f0"
            "reference" => "d79c053d972856b8b941bb233e39dc521a5093f0"
            "shasum" => ""
          ]
          "require" => array:23 [
            "doctrine/instantiator" => "^1.1"
            "ext-dom" => "*"
            "ext-json" => "*"
            "ext-libxml" => "*"
            "ext-mbstring" => "*"
            "ext-xml" => "*"
            "myclabs/deep-copy" => "^1.7"
            "phar-io/manifest" => "^1.0.2"
            "phar-io/version" => "^2.0"
            "php" => "^7.1"
            "phpspec/prophecy" => "^1.7"
            "phpunit/php-code-coverage" => "^6.0.7"
            "phpunit/php-file-iterator" => "^2.0.1"
            "phpunit/php-text-template" => "^1.2.1"
            "phpunit/php-timer" => "^2.1"
            "sebastian/comparator" => "^3.0"
            "sebastian/diff" => "^3.0"
            "sebastian/environment" => "^4.0"
            "sebastian/exporter" => "^3.1"
            "sebastian/global-state" => "^2.0"
            "sebastian/object-enumerator" => "^3.0.3"
            "sebastian/resource-operations" => "^2.0"
            "sebastian/version" => "^2.0.1"
          ]
          "conflict" => array:1 [
            "phpunit/phpunit-mock-objects" => "*"
          ]
          "require-dev" => array:1 [
            "ext-pdo" => "*"
          ]
          "suggest" => array:3 [
            "ext-soap" => "*"
            "ext-xdebug" => "*"
            "phpunit/php-invoker" => "^2.0"
          ]
          "bin" => array:1 [
            0 => "phpunit"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "7.5-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Sebastian Bergmann"
              "role" => "lead"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "The PHP Unit Testing framework."
          "homepage" => "https://phpunit.de/"
          "keywords" => array:3 [
            0 => "phpunit"
            1 => "testing"
            2 => "xunit"
          ]
          "time" => "2019-08-21T07:05:16+00:00"
        ]
        14 => array:15 [
          "name" => "sebastian/code-unit-reverse-lookup"
          "version" => "1.0.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git"
            "reference" => "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
            "reference" => "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^5.6 || ^7.0"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^5.7 || ^6.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Looks up which function or method a line of code belongs to"
          "homepage" => "https://github.com/sebastianbergmann/code-unit-reverse-lookup/"
          "time" => "2017-03-04T06:30:41+00:00"
        ]
        15 => array:16 [
          "name" => "sebastian/comparator"
          "version" => "3.0.2"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/comparator.git"
            "reference" => "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
            "reference" => "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
            "shasum" => ""
          ]
          "require" => array:3 [
            "php" => "^7.1"
            "sebastian/diff" => "^3.0"
            "sebastian/exporter" => "^3.1"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^7.1"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "3.0-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:4 [
            0 => array:2 [
              "name" => "Jeff Welch"
              "email" => "whatthejeff@gmail.com"
            ]
            1 => array:2 [
              "name" => "Volker Dusch"
              "email" => "github@wallbash.com"
            ]
            2 => array:2 [
              "name" => "Bernhard Schussek"
              "email" => "bschussek@2bepublished.at"
            ]
            3 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Provides the functionality to compare PHP values for equality"
          "homepage" => "https://github.com/sebastianbergmann/comparator"
          "keywords" => array:3 [
            0 => "comparator"
            1 => "compare"
            2 => "equality"
          ]
          "time" => "2018-07-12T15:12:46+00:00"
        ]
        16 => array:16 [
          "name" => "sebastian/diff"
          "version" => "3.0.2"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/diff.git"
            "reference" => "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
            "reference" => "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.1"
          ]
          "require-dev" => array:2 [
            "phpunit/phpunit" => "^7.5 || ^8.0"
            "symfony/process" => "^2 || ^3.3 || ^4"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "3.0-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:2 [
            0 => array:2 [
              "name" => "Kore Nordmann"
              "email" => "mail@kore-nordmann.de"
            ]
            1 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Diff implementation"
          "homepage" => "https://github.com/sebastianbergmann/diff"
          "keywords" => array:4 [
            0 => "diff"
            1 => "udiff"
            2 => "unidiff"
            3 => "unified diff"
          ]
          "time" => "2019-02-04T06:01:07+00:00"
        ]
        17 => array:17 [
          "name" => "sebastian/environment"
          "version" => "4.2.2"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/environment.git"
            "reference" => "f2a2c8e1c97c11ace607a7a667d73d47c19fe404"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404"
            "reference" => "f2a2c8e1c97c11ace607a7a667d73d47c19fe404"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.1"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^7.5"
          ]
          "suggest" => array:1 [
            "ext-posix" => "*"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "4.2-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Provides functionality to handle HHVM/PHP environments"
          "homepage" => "http://www.github.com/sebastianbergmann/environment"
          "keywords" => array:3 [
            0 => "Xdebug"
            1 => "environment"
            2 => "hhvm"
          ]
          "time" => "2019-05-05T09:05:15+00:00"
        ]
        18 => array:16 [
          "name" => "sebastian/exporter"
          "version" => "3.1.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/exporter.git"
            "reference" => "06a9a5947f47b3029d76118eb5c22802e5869687"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687"
            "reference" => "06a9a5947f47b3029d76118eb5c22802e5869687"
            "shasum" => ""
          ]
          "require" => array:2 [
            "php" => "^7.0"
            "sebastian/recursion-context" => "^3.0"
          ]
          "require-dev" => array:2 [
            "ext-mbstring" => "*"
            "phpunit/phpunit" => "^6.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "3.1.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:5 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
            1 => array:2 [
              "name" => "Jeff Welch"
              "email" => "whatthejeff@gmail.com"
            ]
            2 => array:2 [
              "name" => "Volker Dusch"
              "email" => "github@wallbash.com"
            ]
            3 => array:2 [
              "name" => "Adam Harvey"
              "email" => "aharvey@php.net"
            ]
            4 => array:2 [
              "name" => "Bernhard Schussek"
              "email" => "bschussek@gmail.com"
            ]
          ]
          "description" => "Provides the functionality to export PHP variables for visualization"
          "homepage" => "http://www.github.com/sebastianbergmann/exporter"
          "keywords" => array:2 [
            0 => "export"
            1 => "exporter"
          ]
          "time" => "2019-08-11T12:43:14+00:00"
        ]
        19 => array:17 [
          "name" => "sebastian/global-state"
          "version" => "2.0.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/global-state.git"
            "reference" => "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
            "reference" => "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.0"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^6.0"
          ]
          "suggest" => array:1 [
            "ext-uopz" => "*"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "2.0-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Snapshotting of global state"
          "homepage" => "http://www.github.com/sebastianbergmann/global-state"
          "keywords" => array:1 [
            0 => "global state"
          ]
          "time" => "2017-04-27T15:39:26+00:00"
        ]
        20 => array:15 [
          "name" => "sebastian/object-enumerator"
          "version" => "3.0.3"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/object-enumerator.git"
            "reference" => "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5"
            "reference" => "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
            "shasum" => ""
          ]
          "require" => array:3 [
            "php" => "^7.0"
            "sebastian/object-reflector" => "^1.1.1"
            "sebastian/recursion-context" => "^3.0"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^6.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "3.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Traverses array structures and object graphs to enumerate all referenced objects"
          "homepage" => "https://github.com/sebastianbergmann/object-enumerator/"
          "time" => "2017-08-03T12:35:26+00:00"
        ]
        21 => array:15 [
          "name" => "sebastian/object-reflector"
          "version" => "1.1.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/object-reflector.git"
            "reference" => "773f97c67f28de00d397be301821b06708fca0be"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be"
            "reference" => "773f97c67f28de00d397be301821b06708fca0be"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.0"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^6.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.1-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Allows reflection of object attributes, including inherited and non-public ones"
          "homepage" => "https://github.com/sebastianbergmann/object-reflector/"
          "time" => "2017-03-29T09:07:27+00:00"
        ]
        22 => array:15 [
          "name" => "sebastian/recursion-context"
          "version" => "3.0.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/recursion-context.git"
            "reference" => "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
            "reference" => "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.0"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^6.0"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "3.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:3 [
            0 => array:2 [
              "name" => "Jeff Welch"
              "email" => "whatthejeff@gmail.com"
            ]
            1 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
            2 => array:2 [
              "name" => "Adam Harvey"
              "email" => "aharvey@php.net"
            ]
          ]
          "description" => "Provides functionality to recursively process PHP variables"
          "homepage" => "http://www.github.com/sebastianbergmann/recursion-context"
          "time" => "2017-03-03T06:23:57+00:00"
        ]
        23 => array:14 [
          "name" => "sebastian/resource-operations"
          "version" => "2.0.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/resource-operations.git"
            "reference" => "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
            "reference" => "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => "^7.1"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "2.0-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Sebastian Bergmann"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Provides a list of PHP built-in functions that operate on resources"
          "homepage" => "https://www.github.com/sebastianbergmann/resource-operations"
          "time" => "2018-10-04T04:07:39+00:00"
        ]
        24 => array:14 [
          "name" => "sebastian/version"
          "version" => "2.0.1"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/sebastianbergmann/version.git"
            "reference" => "99732be0ddb3361e16ad77b68ba41efc8e979019"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019"
            "reference" => "99732be0ddb3361e16ad77b68ba41efc8e979019"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.6"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "2.0.x-dev"
            ]
          ]
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Sebastian Bergmann"
              "role" => "lead"
              "email" => "sebastian@phpunit.de"
            ]
          ]
          "description" => "Library that helps with managing the version number of Git-hosted PHP projects"
          "homepage" => "https://github.com/sebastianbergmann/version"
          "time" => "2016-10-03T07:35:21+00:00"
        ]
        25 => array:16 [
          "name" => "symfony/polyfill-ctype"
          "version" => "v1.12.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/symfony/polyfill-ctype.git"
            "reference" => "550ebaac289296ce228a706d0867afc34687e3f4"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4"
            "reference" => "550ebaac289296ce228a706d0867afc34687e3f4"
            "shasum" => ""
          ]
          "require" => array:1 [
            "php" => ">=5.3.3"
          ]
          "suggest" => array:1 [
            "ext-ctype" => "For best performance"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.12-dev"
            ]
          ]
          "autoload" => array:2 [
            "psr-4" => array:1 [
              "Symfony\Polyfill\Ctype\" => ""
            ]
            "files" => array:1 [
              0 => "bootstrap.php"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:2 [
            0 => array:2 [
              "name" => "Gert de Pagter"
              "email" => "BackEndTea@gmail.com"
            ]
            1 => array:2 [
              "name" => "Symfony Community"
              "homepage" => "https://symfony.com/contributors"
            ]
          ]
          "description" => "Symfony polyfill for ctype functions"
          "homepage" => "https://symfony.com"
          "keywords" => array:4 [
            0 => "compatibility"
            1 => "ctype"
            2 => "polyfill"
            3 => "portable"
          ]
          "time" => "2019-08-06T08:03:45+00:00"
        ]
        26 => array:12 [
          "name" => "theseer/tokenizer"
          "version" => "1.1.3"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/theseer/tokenizer.git"
            "reference" => "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
            "reference" => "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
            "shasum" => ""
          ]
          "require" => array:4 [
            "ext-dom" => "*"
            "ext-tokenizer" => "*"
            "ext-xmlwriter" => "*"
            "php" => "^7.0"
          ]
          "type" => "library"
          "autoload" => array:1 [
            "classmap" => array:1 [
              0 => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "BSD-3-Clause"
          ]
          "authors" => array:1 [
            0 => array:3 [
              "name" => "Arne Blankerts"
              "role" => "Developer"
              "email" => "arne@blankerts.de"
            ]
          ]
          "description" => "A small library for converting tokenized PHP source code into XML and potentially other formats"
          "time" => "2019-06-13T22:48:21+00:00"
        ]
        27 => array:15 [
          "name" => "webmozart/assert"
          "version" => "1.5.0"
          "source" => array:3 [
            "type" => "git"
            "url" => "https://github.com/webmozart/assert.git"
            "reference" => "88e6d84706d09a236046d686bbea96f07b3a34f4"
          ]
          "dist" => array:4 [
            "type" => "zip"
            "url" => "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4"
            "reference" => "88e6d84706d09a236046d686bbea96f07b3a34f4"
            "shasum" => ""
          ]
          "require" => array:2 [
            "php" => "^5.3.3 || ^7.0"
            "symfony/polyfill-ctype" => "^1.8"
          ]
          "require-dev" => array:1 [
            "phpunit/phpunit" => "^4.8.36 || ^7.5.13"
          ]
          "type" => "library"
          "extra" => array:1 [
            "branch-alias" => array:1 [
              "dev-master" => "1.3-dev"
            ]
          ]
          "autoload" => array:1 [
            "psr-4" => array:1 [
              "Webmozart\Assert\" => "src/"
            ]
          ]
          "notification-url" => "https://packagist.org/downloads/"
          "license" => array:1 [
            0 => "MIT"
          ]
          "authors" => array:1 [
            0 => array:2 [
              "name" => "Bernhard Schussek"
              "email" => "bschussek@gmail.com"
            ]
          ]
          "description" => "Assertions to validate method input/output with nice error messages."
          "keywords" => array:3 [
            0 => "assert"
            1 => "check"
            2 => "validate"
          ]
          "time" => "2019-08-24T08:43:50+00:00"
        ]
      ]
      "aliases" => []
      "minimum-stability" => "stable"
      "stability-flags" => []
      "prefer-stable" => false
      "prefer-lowest" => false
      "platform" => array:2 [
        "php" => ">=7.1"
        "ext-json" => "*"
      ]
      "platform-dev" => []
    ]
  }
  -files: array:179 [
    0 => "composer.json"
    1 => "composer.lock"
    2 => "src/allejo/rrlog/Command/ExportCommand.php"
    3 => "src/allejo/rrlog/Console/Application.php"
    4 => "src/allejo/rrlog/Filesystem.php"
    5 => "src/allejo/rrlog/Writer/BaseWriter.php"
    6 => "src/allejo/rrlog/Writer/IReplayWriter.php"
    7 => "src/allejo/rrlog/Writer/JsonWriter.php"
    8 => "vendor/allejo/bzflag-networking.php/src/GameData/BZDBSetting.php"
    9 => "vendor/allejo/bzflag-networking.php/src/GameData/FiringInfoData.php"
    10 => "vendor/allejo/bzflag-networking.php/src/GameData/FiringIntoData.php"
    11 => "vendor/allejo/bzflag-networking.php/src/GameData/FlagData.php"
    12 => "vendor/allejo/bzflag-networking.php/src/GameData/PlayerData.php"
    13 => "vendor/allejo/bzflag-networking.php/src/GameData/PlayerInfo.php"
    14 => "vendor/allejo/bzflag-networking.php/src/GameData/PlayerScore.php"
    15 => "vendor/allejo/bzflag-networking.php/src/GameData/PlayerState.php"
    16 => "vendor/allejo/bzflag-networking.php/src/GameData/ScoreData.php"
    17 => "vendor/allejo/bzflag-networking.php/src/GameData/ShotData.php"
    18 => "vendor/allejo/bzflag-networking.php/src/GameData/TeamData.php"
    19 => "vendor/allejo/bzflag-networking.php/src/InvalidReplayException.php"
    20 => "vendor/allejo/bzflag-networking.php/src/JsonSerializePublicGetters.php"
    21 => "vendor/allejo/bzflag-networking.php/src/Packets/GamePacket.php"
    22 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgAddPlayer.php"
    23 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgAdminInfo.php"
    24 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgAlive.php"
    25 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgCaptureFlag.php"
    26 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgFlagDrop.php"
    27 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgFlagGrab.php"
    28 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgFlagUpdate.php"
    29 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgGMUpdate.php"
    30 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgGameTime.php"
    31 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgKilled.php"
    32 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgMessage.php"
    33 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgNewRabbit.php"
    34 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgNull.php"
    35 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgPause.php"
    36 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgPlayerInfo.php"
    37 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgPlayerUpdate.php"
    38 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgRemovePlayer.php"
    39 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgScore.php"
    40 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgScoreOver.php"
    41 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgSetVar.php"
    42 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgShotBegin.php"
    43 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgShotEnd.php"
    44 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgTeamUpdate.php"
    45 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgTeleport.php"
    46 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgTimeUpdate.php"
    47 => "vendor/allejo/bzflag-networking.php/src/Packets/MsgTransferFlag.php"
    48 => "vendor/allejo/bzflag-networking.php/src/Packets/NetworkMessage.php"
    49 => "vendor/allejo/bzflag-networking.php/src/Packets/NetworkPacket.php"
    50 => "vendor/allejo/bzflag-networking.php/src/Packets/NetworkProtocol.php"
    51 => "vendor/allejo/bzflag-networking.php/src/Packets/PacketInvalidException.php"
    52 => "vendor/allejo/bzflag-networking.php/src/Packets/PacketNotSetException.php"
    53 => "vendor/allejo/bzflag-networking.php/src/Packets/Unpackable.php"
    54 => "vendor/allejo/bzflag-networking.php/src/Packets/UnsupportedPacketException.php"
    55 => "vendor/allejo/bzflag-networking.php/src/Replay.php"
    56 => "vendor/allejo/bzflag-networking.php/src/ReplayDuration.php"
    57 => "vendor/allejo/bzflag-networking.php/src/ReplayHeader.php"
    58 => "vendor/composer/installed.json"
    59 => "vendor/psr/container/LICENSE"
    60 => "vendor/psr/container/src/ContainerExceptionInterface.php"
    61 => "vendor/psr/container/src/ContainerInterface.php"
    62 => "vendor/psr/container/src/NotFoundExceptionInterface.php"
    63 => "vendor/psr/http-message/LICENSE"
    64 => "vendor/psr/http-message/src/MessageInterface.php"
    65 => "vendor/psr/http-message/src/RequestInterface.php"
    66 => "vendor/psr/http-message/src/ResponseInterface.php"
    67 => "vendor/psr/http-message/src/ServerRequestInterface.php"
    68 => "vendor/psr/http-message/src/StreamInterface.php"
    69 => "vendor/psr/http-message/src/UploadedFileInterface.php"
    70 => "vendor/psr/http-message/src/UriInterface.php"
    71 => "vendor/symfony/console/Application.php"
    72 => "vendor/symfony/console/Command/Command.php"
    73 => "vendor/symfony/console/Command/HelpCommand.php"
    74 => "vendor/symfony/console/Command/ListCommand.php"
    75 => "vendor/symfony/console/Command/LockableTrait.php"
    76 => "vendor/symfony/console/CommandLoader/CommandLoaderInterface.php"
    77 => "vendor/symfony/console/CommandLoader/ContainerCommandLoader.php"
    78 => "vendor/symfony/console/CommandLoader/FactoryCommandLoader.php"
    79 => "vendor/symfony/console/ConsoleEvents.php"
    80 => "vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php"
    81 => "vendor/symfony/console/Descriptor/ApplicationDescription.php"
    82 => "vendor/symfony/console/Descriptor/Descriptor.php"
    83 => "vendor/symfony/console/Descriptor/DescriptorInterface.php"
    84 => "vendor/symfony/console/Descriptor/JsonDescriptor.php"
    85 => "vendor/symfony/console/Descriptor/MarkdownDescriptor.php"
    86 => "vendor/symfony/console/Descriptor/TextDescriptor.php"
    87 => "vendor/symfony/console/Descriptor/XmlDescriptor.php"
    88 => "vendor/symfony/console/Event/ConsoleCommandEvent.php"
    89 => "vendor/symfony/console/Event/ConsoleErrorEvent.php"
    90 => "vendor/symfony/console/Event/ConsoleEvent.php"
    91 => "vendor/symfony/console/Event/ConsoleTerminateEvent.php"
    92 => "vendor/symfony/console/EventListener/ErrorListener.php"
    93 => "vendor/symfony/console/Exception/CommandNotFoundException.php"
    94 => "vendor/symfony/console/Exception/ExceptionInterface.php"
    95 => "vendor/symfony/console/Exception/InvalidArgumentException.php"
    96 => "vendor/symfony/console/Exception/InvalidOptionException.php"
    97 => "vendor/symfony/console/Exception/LogicException.php"
    98 => "vendor/symfony/console/Exception/NamespaceNotFoundException.php"
    99 => "vendor/symfony/console/Exception/RuntimeException.php"
    100 => "vendor/symfony/console/Formatter/OutputFormatter.php"
    101 => "vendor/symfony/console/Formatter/OutputFormatterInterface.php"
    102 => "vendor/symfony/console/Formatter/OutputFormatterStyle.php"
    103 => "vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php"
    104 => "vendor/symfony/console/Formatter/OutputFormatterStyleStack.php"
    105 => "vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php"
    106 => "vendor/symfony/console/Helper/DebugFormatterHelper.php"
    107 => "vendor/symfony/console/Helper/DescriptorHelper.php"
    108 => "vendor/symfony/console/Helper/Dumper.php"
    109 => "vendor/symfony/console/Helper/FormatterHelper.php"
    110 => "vendor/symfony/console/Helper/Helper.php"
    111 => "vendor/symfony/console/Helper/HelperInterface.php"
    112 => "vendor/symfony/console/Helper/HelperSet.php"
    113 => "vendor/symfony/console/Helper/InputAwareHelper.php"
    114 => "vendor/symfony/console/Helper/ProcessHelper.php"
    115 => "vendor/symfony/console/Helper/ProgressBar.php"
    116 => "vendor/symfony/console/Helper/ProgressIndicator.php"
    117 => "vendor/symfony/console/Helper/QuestionHelper.php"
    118 => "vendor/symfony/console/Helper/SymfonyQuestionHelper.php"
    119 => "vendor/symfony/console/Helper/Table.php"
    120 => "vendor/symfony/console/Helper/TableCell.php"
    121 => "vendor/symfony/console/Helper/TableRows.php"
    122 => "vendor/symfony/console/Helper/TableSeparator.php"
    123 => "vendor/symfony/console/Helper/TableStyle.php"
    124 => "vendor/symfony/console/Input/ArgvInput.php"
    125 => "vendor/symfony/console/Input/ArrayInput.php"
    126 => "vendor/symfony/console/Input/Input.php"
    127 => "vendor/symfony/console/Input/InputArgument.php"
    128 => "vendor/symfony/console/Input/InputAwareInterface.php"
    129 => "vendor/symfony/console/Input/InputDefinition.php"
    130 => "vendor/symfony/console/Input/InputInterface.php"
    131 => "vendor/symfony/console/Input/InputOption.php"
    132 => "vendor/symfony/console/Input/StreamableInputInterface.php"
    133 => "vendor/symfony/console/Input/StringInput.php"
    134 => "vendor/symfony/console/LICENSE"
    135 => "vendor/symfony/console/Logger/ConsoleLogger.php"
    136 => "vendor/symfony/console/Output/BufferedOutput.php"
    137 => "vendor/symfony/console/Output/ConsoleOutput.php"
    138 => "vendor/symfony/console/Output/ConsoleOutputInterface.php"
    139 => "vendor/symfony/console/Output/ConsoleSectionOutput.php"
    140 => "vendor/symfony/console/Output/NullOutput.php"
    141 => "vendor/symfony/console/Output/Output.php"
    142 => "vendor/symfony/console/Output/OutputInterface.php"
    143 => "vendor/symfony/console/Output/StreamOutput.php"
    144 => "vendor/symfony/console/Question/ChoiceQuestion.php"
    145 => "vendor/symfony/console/Question/ConfirmationQuestion.php"
    146 => "vendor/symfony/console/Question/Question.php"
    147 => "vendor/symfony/console/Resources/bin/hiddeninput.exe"
    148 => "vendor/symfony/console/Style/OutputStyle.php"
    149 => "vendor/symfony/console/Style/StyleInterface.php"
    150 => "vendor/symfony/console/Style/SymfonyStyle.php"
    151 => "vendor/symfony/console/Terminal.php"
    152 => "vendor/symfony/console/Tester/ApplicationTester.php"
    153 => "vendor/symfony/console/Tester/CommandTester.php"
    154 => "vendor/symfony/console/Tester/TesterTrait.php"
    155 => "vendor/symfony/polyfill-mbstring/LICENSE"
    156 => "vendor/symfony/polyfill-mbstring/Mbstring.php"
    157 => "vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php"
    158 => "vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php"
    159 => "vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php"
    160 => "vendor/symfony/polyfill-mbstring/bootstrap.php"
    161 => "vendor/symfony/polyfill-php73/LICENSE"
    162 => "vendor/symfony/polyfill-php73/Php73.php"
    163 => "vendor/symfony/polyfill-php73/Resources/stubs/JsonException.php"
    164 => "vendor/symfony/polyfill-php73/bootstrap.php"
    165 => "vendor/symfony/service-contracts/LICENSE"
    166 => "vendor/symfony/service-contracts/ResetInterface.php"
    167 => "vendor/symfony/service-contracts/ServiceLocatorTrait.php"
    168 => "vendor/symfony/service-contracts/ServiceProviderInterface.php"
    169 => "vendor/symfony/service-contracts/ServiceSubscriberInterface.php"
    170 => "vendor/symfony/service-contracts/ServiceSubscriberTrait.php"
    171 => "vendor/violet/streaming-json-encoder/LICENSE"
    172 => "vendor/violet/streaming-json-encoder/src/AbstractJsonEncoder.php"
    173 => "vendor/violet/streaming-json-encoder/src/BufferJsonEncoder.php"
    174 => "vendor/violet/streaming-json-encoder/src/EncodingException.php"
    175 => "vendor/violet/streaming-json-encoder/src/JsonStream.php"
    176 => "vendor/violet/streaming-json-encoder/src/JsonToken.php"
    177 => "vendor/violet/streaming-json-encoder/src/StreamJsonEncoder.php"
    178 => "vendor/violet/streaming-json-encoder/src/autoload.php"
  ]
  -binaryFiles: []
  -autodiscoveredFiles: true
  -dumpAutoload: true
  -excludeComposerFiles: true
  -excludeDevFiles: true
  -compactors: array:2 [
    0 => "KevinGH\Box\Compactor\Php"
    1 => "KevinGH\Box\Compactor\PhpScoper"
  ]
  -compressionAlgorithm: "GZ"
  -mainScriptPath: "bin/rrlog"
  -mainScriptContents: """
    <?php\n
    \n
    /*\n
     * (c) Vladimir "allejo" Jimenez <me@allejo.io>\n
     *\n
     * For the full copyright and license information, please view the\n
     * LICENSE.md file that was distributed with this source code.\n
     */\n
    \n
    use allejo\rrlog\Console\Application;\n
    \n
    require __DIR__ . '/../vendor/autoload.php';\n
    \n
    $application = new Application('rrlog', '@package_version@');\n
    $application->run();\n
    """
  -fileMapper: KevinGH\Box\MapFile {#325
    -basePath: "/path/to/Development/BZFlag/rrlog"
    -map: []
  }
  -metadata: null
  -tmpOutputPath: "rrlog.phar"
  -outputPath: "rrlog.phar"
  -privateKeyPassphrase: null
  -privateKeyPath: null
  -promptForPrivateKey: false
  -processedReplacements: array:2 [
    "@package_version@" => "v0.1.1"
    "@release-date@" => "2019-09-20 04:40:44 UTC"
  ]
  -shebang: "#!/usr/bin/env php"
  -signingAlgorithm: "SHA1"
  -stubBannerContents: """
    Generated by Humbug Box 3.8.0@e7d8df3.\n
    \n
    @link https://github.com/humbug/box
    """
  -stubBannerPath: null
  -stubPath: null
  -isInterceptFileFuncs: false
  -isStubGenerated: true
  -checkRequirements: true
  -warnings: []
  -recommendations: array:1 [
    0 => "The "chmod" setting can be omitted since is set to its default value"
  ]
}

Thanks a lot for taking the time to help!

@theofidry
Copy link
Member

theofidry commented Sep 21, 2019

I really can't find anything on it :( Can you try with --no-parallel just to confirm it works without? You don't seem to have that many files so maybe it will still be fast enough

@allejo
Copy link
Author

allejo commented Sep 21, 2019

Yup! Running it with --no-parallel works and I was able to get the PHAR built successfully. I can just stick with using that flag for now 👍

@allejo
Copy link
Author

allejo commented Oct 1, 2019

I stumbled upon box-project/box2#80, which recommended increasing the soft open file limit with ulimit. Looks like 256 wasn't enough for me, so increasing it so something greater worked for me. However, I'm not sure how it ever worked the first time around without my modifying the ulimit; maybe something changed it on my system...?

@theofidry
Copy link
Member

You can find more information about that in #437, but maybe the issue is that this is happening before...

Could you try to clone the project, edit Compile to bump the file limit before adding the files to see if that issue is solved with that?

@allejo
Copy link
Author

allejo commented Oct 3, 2019

It looks like that fixed it for me. I manually called posix_setrlimit from inside Compile to set the ulimit to an arbitrary number, 2048.

diff --git a/src/Console/Command/Compile.php b/src/Console/Command/Compile.php
index 2a7ec70..069005a 100644
--- a/src/Console/Command/Compile.php
+++ b/src/Console/Command/Compile.php
@@ -223,6 +223,15 @@ HELP;
 
         $check = $this->registerRequirementsChecker($config, $box, $logger);
 
+        $hardLimit = posix_getrlimit()['hard openfiles'];
+        $filesCount = 2048;
+
+        posix_setrlimit(
+            POSIX_RLIMIT_NOFILE,
+            $filesCount,
+            'unlimited' === $hardLimit ? POSIX_RLIMIT_INFINITY : $hardLimit
+        );
+
         $this->addFiles($config, $box, $logger, $io);
 
         $this->registerStub($config, $box, $main, $check, $logger);

@theofidry
Copy link
Member

Cool. Then I guess it could be dumped to a safe number beforehand as well then

@ondrejmirtes
Copy link

I also have this problem. described in OP.

@theofidry
Copy link
Member

Could you try with 3.8.3?

@allejo
Copy link
Author

allejo commented Nov 4, 2019

3.8.3 fixes the issue for me 🎉 Thanks @theofidry!

@allejo allejo closed this as completed Nov 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants