clue / phar-composer

Simple phar creation for every PHP project managed via Composer
https://clue.engineering/2019/introducing-phar-composer
MIT License
855 stars 78 forks source link

First time attempting to create a phar. #105

Closed rquadling closed 3 years ago

rquadling commented 4 years ago

Building a CLI app to help coordinate merging of data.

Currently (whilst in development), I would run bin/merger and the Symfony Console application would do its thing and all is good - show commands, options, arguments, etc.

I want to package this up so I can give it to the team as a package, similar to how composer is a package.

We are all running PHP 7.4.7, so that's the minimum we are supporting.

The results below (2 notices and a fatal TypeError).

Hopefully there's enough to look at to fix this.

$ phar-composer build .
Your configuration disabled writing phar files (phar.readonly = On), please update your configuration or run with "php -d phar.readonly=off ./vendor/bin/phar-composer", trying to re-spawn with correct config
[1/1] Creating phar mergie.phar
  - Adding main package "wsv/mergie"
  - Adding composer base files
PHP Notice:  Undefined index: name in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php on line 130
PHP Stack trace:
PHP   1. {main}() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:0
PHP   2. Clue\PharComposer\App->run() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:14
PHP   3. Clue\PharComposer\App->doRun() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:140
PHP   4. Clue\PharComposer\App->doRunCommand() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:264
PHP   5. Clue\PharComposer\Command\Build->run() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:911
PHP   6. Clue\PharComposer\Command\Build->execute() /Users/richardquadling/mergie/vendor/symfony/console/Command/Command.php:258
PHP   7. Clue\PharComposer\Phar\PharComposer->build() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Command/Build.php:46
PHP   8. Clue\PharComposer\Phar\PharComposer->getPackagesDependencies() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php:170

Notice: Undefined index: name in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php on line 130

Call Stack:
    0.0004     396960   1. {main}() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:0
    0.0154    2436648   2. Clue\PharComposer\App->run() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:14
    0.0180    2673920   3. Clue\PharComposer\App->doRun() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:140
    0.0187    2685664   4. Clue\PharComposer\App->doRunCommand() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:264
    0.0187    2685664   5. Clue\PharComposer\Command\Build->run() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:911
    0.0189    2687496   6. Clue\PharComposer\Command\Build->execute() /Users/richardquadling/mergie/vendor/symfony/console/Command/Command.php:258
    0.0232    2747376   7. Clue\PharComposer\Phar\PharComposer->build() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Command/Build.php:46
    0.0575    2984992   8. Clue\PharComposer\Phar\PharComposer->getPackagesDependencies() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php:170

PHP Notice:  Trying to access array offset on value of type bool in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php on line 130
PHP Stack trace:
PHP   1. {main}() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:0
PHP   2. Clue\PharComposer\App->run() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:14
PHP   3. Clue\PharComposer\App->doRun() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:140
PHP   4. Clue\PharComposer\App->doRunCommand() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:264
PHP   5. Clue\PharComposer\Command\Build->run() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:911
PHP   6. Clue\PharComposer\Command\Build->execute() /Users/richardquadling/mergie/vendor/symfony/console/Command/Command.php:258
PHP   7. Clue\PharComposer\Phar\PharComposer->build() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Command/Build.php:46
PHP   8. Clue\PharComposer\Phar\PharComposer->getPackagesDependencies() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php:170

Notice: Trying to access array offset on value of type bool in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php on line 130

Call Stack:
    0.0004     396960   1. {main}() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:0
    0.0154    2436648   2. Clue\PharComposer\App->run() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:14
    0.0180    2673920   3. Clue\PharComposer\App->doRun() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:140
    0.0187    2685664   4. Clue\PharComposer\App->doRunCommand() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:264
    0.0187    2685664   5. Clue\PharComposer\Command\Build->run() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:911
    0.0189    2687496   6. Clue\PharComposer\Command\Build->execute() /Users/richardquadling/mergie/vendor/symfony/console/Command/Command.php:258
    0.0232    2747376   7. Clue\PharComposer\Phar\PharComposer->build() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Command/Build.php:46
    0.0575    2984992   8. Clue\PharComposer\Phar\PharComposer->getPackagesDependencies() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php:170

PHP Fatal error:  Uncaught TypeError: Argument 1 passed to Clue\PharComposer\Package\Package::__construct() must be of the type array, bool given, called in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php on line 136 and defined in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Package/Package.php:21
Stack trace:
#0 /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php(136): Clue\PharComposer\Package\Package->__construct(true, '/Users/richardq...')
#1 /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php(170): Clue\PharComposer\Phar\PharComposer->getPackagesDependencies()
#2 /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Command/Build.php(46): Clue\PharComposer\Phar\PharComposer->build()
#3 /Users/richardquadling/mergie/vendor/symfony/console/Command/Command.php(258): Clue\Phar in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Package/Package.php on line 21

Fatal error: Uncaught TypeError: Argument 1 passed to Clue\PharComposer\Package\Package::__construct() must be of the type array, bool given, called in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php on line 136 and defined in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Package/Package.php on line 21

TypeError: Argument 1 passed to Clue\PharComposer\Package\Package::__construct() must be of the type array, bool given, called in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php on line 136 in /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Package/Package.php on line 21

Call Stack:
    0.0004     396960   1. {main}() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:0
    0.0154    2436648   2. Clue\PharComposer\App->run() /Users/richardquadling/mergie/vendor/clue/phar-composer/bin/phar-composer:14
    0.0180    2673920   3. Clue\PharComposer\App->doRun() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:140
    0.0187    2685664   4. Clue\PharComposer\App->doRunCommand() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:264
    0.0187    2685664   5. Clue\PharComposer\Command\Build->run() /Users/richardquadling/mergie/vendor/symfony/console/Application.php:911
    0.0189    2687496   6. Clue\PharComposer\Command\Build->execute() /Users/richardquadling/mergie/vendor/symfony/console/Command/Command.php:258
    0.0232    2747376   7. Clue\PharComposer\Phar\PharComposer->build() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Command/Build.php:46
    0.0575    2984992   8. Clue\PharComposer\Phar\PharComposer->getPackagesDependencies() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php:170
    0.0605    3929872   9. Clue\PharComposer\Package\Package->__construct() /Users/richardquadling/mergie/vendor/clue/phar-composer/src/Clue/PharComposer/Phar/PharComposer.php:136
clue commented 3 years ago

@rquadling Thanks for reporting, this indeed didn't work with Composer 2.0 as reported in #106. I've just fixed this via #114.