php - PHP作曲家耗尽内存......为什么?怎么了?
问题描述
尝试初始化 PHP/Laravel 项目(通过运行composer install
),我遇到了与这里描述的完全相同的问题:在哪里可以找到这个 Client.php laravel
我尝试通过尝试升级有问题的包来升级与较新的 PHP 版本交互不佳composer require
的包,但它并不顺利:
$ composer require sentry/sentry-laravel:1.8.0
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.10.7/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.10.7/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
我在文档中阅读了如何增加内存限制(是的 - 最容易通过COMPOSER_MEMORY_LIMIT
在运行之前设置环境变量,composer
就像很多人提到的那样),但在我这样做之前,我想了解项目是否有问题以耗尽 1536Mb内存限制,如果是,如何理解和解决问题?更具体地说,这个命令除了替换composer.json
文件中的版本要求还有什么作用?如果我只是手动编辑composer.json
文件并compose install
从干净的表中运行(在擦除vendor/
目录和写入项目目录的任何其他内容之后)会出现什么问题 - 版本会与检测到的其他依赖项冲突吗?
解决方案
更具体地说,这个命令除了替换
composer.json
文件中的版本要求还有什么作用?
它还尝试安装新版本的依赖项,为此它需要检查这是否可能(新版本与其他依赖项不冲突)以及还需要做什么(安装/升级子依赖项)。在实践中这意味着完全重建依赖树,这是一个复杂的过程,需要大量的内存。
手动编辑composer.json
不会给您任何东西,因为它不会安装此依赖项。您仍然需要运行composer update
来执行此操作,这将需要重建依赖关系树并导致与命令相同的内存问题require
。
推荐阅读
- python - 你能让 os.system 保持子shell的状态吗
- c# - 如何在 C# 中正确解密存储在 SQL Server 数据库中的密码
- angular - 级联两个 observables 并以 angular 和 firebase 返回一个 ng-container 列表
- javascript - DiscordAPIError:无效的表单正文 embed.image.url:不支持方案“[对象响应]”。方案必须是 ('http', 'https') 之一
- apache - Apache Web 服务器日志中的 HTTP CONNECT 请求
- java - 过滤自定义数据类型的来源
- docker - jib-maven-plugin - 如何设置文件夹权限
- go - goroutine 和 Waitgroup 的问题
- c# - 如何在wpf中绑定具有应用样式的文本框
- angular - 类型'可观察的
' 不可分配给类型 'Observable '