Composer 更新时报错:PHP Fatal error: composerRequireac6b4…(): Failed opening required ‘…/src/helpers.php

简介: Composer 更新时报错:PHP Fatal error: composerRequireac6b4…(): Failed opening required ‘…/src/helpers.php

错误汇总


Could not scan for classes inside "D:\Code\project\vendor/smarty/smarty/libs/" which does not appear to be a file nor a folder

'D:\Code\project/vendor/composer/tmp-973d3e9dbc666fef3952c17d41b99a9b' is not a zip archive.

PHP Fatal error:  composerRequireac6b44eedc50f3bd79d92b906ff545c6(): Failed opening required 'D:\Code\project\vendor\composer/../encore/laravel-admin/src/helpers.php'  

今天在执行composer update的过程中连续出现几个错误,在这记录下解决过程

错误产生


同事升级了项目中使用的laravel-admin依赖,更新到git,我pull下来后执行composer update进行依赖更新;报错如下:

PHP Fatal error:  composerRequireac6b44eedc50f3bd79d92b906ff545c6(): Failed opening required 'D:\Code\project\vendor\composer/../encore/laravel-admin/src/helpers.php' (include_path='.;C:\php\pear') in D:\Code\project\vendor\composer
\autoload_real.php on line 71

解决过程


第一时间想到的是,是不是缓存原因造成的,因此执行composer clearcache清除缓存操作

D:\Code\project>composer clearcache
Cache directory does not exist (cache-vcs-dir): 
Clearing cache (cache-repo-dir): C:\Users\lauwen\AppData\Local\Composer\repo
Clearing cache (cache-files-dir): C:\Users\lauwen\AppData\Local\Composer\files
Clearing cache (cache-dir): C:\Users\lauwen\AppData\Local\Composer
All caches cleared.

清除完缓存后,再次更新还是出现相同错误,因此把vendor目录删掉重新,执行composer install重新安装所有依赖,安装过程出现新错误:

[UnexpectedValueException]                                                                    
  'D:\Code\project/vendor/composer/tmp-973d3e9dbc666fef3952c17d41b99a9b' is not a zip archive. 

再次执行安装命令,出现下面错误,之后重新执行安装更新都出现同一错误

[RuntimeException]                                                                                                              
  Could not scan for classes inside "D:\Code\project\vendor/smarty/smarty/libs/" which does not appear to be a file nor a folder

解决方案


最后,把项目根目录下的composer.lock文件删掉,重新执行composer install进行安装,安装成功!

原因分析


错误产生原因应该是我的composer版本过高,与同事们的版本不一致导致的,我的composer版本是2.0.4,两者产生的composer.lock文件是有差别的。主要差别如下图,2.0版本会多了一些support和funding

20201105105629649.png

建议


建议在项目提交git过程中应当在.gitignore中设置忽略composer.lock文件

目录
相关文章
|
10月前
|
JavaScript Linux PHP
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
288 3
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
|
10月前
|
PHP
Composer在PHP项目中的手动类自动加载策略
为了确保文件名和类名的一致性及其可预测性,类名通常应该与文件名相匹配,所有的类都应属于一个命名空间,并且目录结构应该反映命名空间的结构。如此一来,当新的类被创建时,它们会自动遵守已有的约定,从而无需修改自动加载逻辑,确保了代码的模块化和可管理性。
127 8
|
11月前
|
安全 API PHP
Composer在现代PHP项目中的进阶实践
简介:本文深入探讨PHP依赖管理工具Composer的核心功能与企业实践。首先介绍其如何通过`composer.json`实现声明式依赖管理,变革PHP生态;接着解析自动加载优化、版本策略(如`~`和`^`)及私有仓库集成等关键特性;然后分享CI/CD集成、多环境配置与性能优化技巧(如阿里云镜像加速)的企业级方案;最后提供常见问题排查方法,如内存不足和依赖冲突解决,助力开发者高效管理项目依赖。
242 3
|
PHP Windows
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
363 1
|
存储 安全 Linux
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
223 0
|
敏捷开发 数据可视化 测试技术
阿里云云效产品使用合集之怎么在php composer安装自己服务器的代码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
缓存 PHP 开发工具
PHP 开发者该知道的 5 个 Composer 小技巧
PHP 开发者该知道的 5 个 Composer 小技巧
238 3
|
PHP 开发者
如何用Composer管理PHP项目的第三方扩展包
【7月更文挑战第2天】**Composer 是PHP开发的关键工具,用于管理项目依赖。安装需PHP 5.6.4+,通过官网脚本安装。在项目根目录创建 `composer.json` 文件定义依赖,使用 `composer require` 命令安装扩展包,如Guzzle。`composer.lock` 保证版本一致。`require_once 'vendor/autoload.php';` 实现自动加载。更新依赖用 `composer update`,管理依赖提升效率和项目维护性。深入学习可发掘更多高级功能。**
626 0
|
JSON 前端开发 PHP
dataType:'json'时post,总是调用error???附带php和json的一些坑
ajax是一个不错的东西 当dataType:'json'时提交,总是返回error 这是为什么? 经过折腾,终于发现因为要求的是json,返回的信息并不是json格式,因此总是出错
205 0
|
8月前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
465 0
PHP和Mysql前后端交互效果实现