An error is reported in the compiler require of laravel: installation failed, reversing/ composer.json to its original content.

1, preface

when I checked the laravel document, I saw that laravel Passport implements API authentication, which is really good. However, when I actually installed it locally, I could not install it all the time, and the error message was described in the title, which was very annoying. Now I will record the solution process and solution.

, resolution process

error reporting begins at the first step of installing Passport;

composer require laravel/passport

about Passport : http://laravelacademy.org/post/8298.html

1, composer version is not enough?

is suspected to be a problem with my own local composer version, so I decided to update it:

composer self-update 

upgrades Composer itself to the latest version, just run self-update command. It will replace your composer. Phar file to the latest version. Attempt to install failed after update.

2, is the downloaded version too high?

composer require laravel/passport (安装最新版本)
composer require laravel/passport ~4.0(安装4.0版本)

try with the lower version, as always error.

3, there is no stable version, must be compatible with the development version?

is added at the bottom of the composer. Json file:

 "minimum-stability": "dev" 

this section you can refer to the link: https://www.cnblogs.com/XACOOL/p/5627444.html

will not work even if the development version is compatible.

4, I am using the composer source is wrong, the file is wall?

because after downloading and installing composer, the default is foreign mirror, so the connection speed of foreign websites is very slow, and they may be "walled" or even "non-existent" at any time. Therefore, it is suggested to use the domestic composer source

reference link; https://pkg.phpcomposer.com/

, it still doesn't work to replace it with a domestic source.

Solution

Json is useless in composer. So is it the reason why composer. Lock ?

1, about composer. Lock

use composer to install PHP components and you will find that you have created a composer. Lock file. What does this do?

composer. Lock is the version that records all installed PHP components. If multiple developers need to keep the downloaded version of PHP components to reduce unnecessary trouble, then composer. Lock should be added to version control, such as using git or SVN. Not the other way around. It should be noted that when composer install for component dependency, the composer. Lock file will not be updated unless new components are introduced into composer. Json .

, delete composer. Lock try

    1、把需要引入的包写入composer.json中
    (写入的话,就不需要composer require了,直接composer update 即可。)
    2、删除composer.lock
    3、composer clearcache   清除缓存
    4、composer update  更新依赖(重新生成composer.lock

execute once according to the above scheme, and find that Passport has been successfully installed. It seems that the composer. Lock file has not been updated. Json is not directly modified in composer. Then try updating with composer. It is really a mistake.

4. The second solution (I didn't try it myself) 1. If you manually update the composer. Json file, autoload:

    composer dump-autoload

here refer to the link: https://segmentfault.com/q/1010000006974110
composer autoload document address: https://docs.phpcomposer.com/03-cli.html#dump-autoload
2. Execute the composer update command to update the dependency

composer install and composer update

https://blog.csdn.net/sanbingyutuoniao123/article/details/52025565

Oliver:

depth Composer portal https://www.cnblogs.com/XACOOL/p/5627444.html

as for the second option, I haven't had a chance to try it myself. I just checked some materials and thought it might be ok. We can have a try and progress together!

end

Read More: