在 Phing 中更改内存分配

在 Phing 中运行复杂任务可能意味着内存不足,尤其是在更改或更改大量文件时。我最近在做一个基于 EXIF 信息对图像进行排序的图像排序 Phing 项目。涉及的数千个文件以及用于提取 EXIF 数据的自定义目标导致默认的 avai

<php expression="ini_set('memory_limit', '1G');"></php>

标签内存很快就会耗尽。

没有直接的方法可以通过 Phing 更改 PHP 内存限制设置,但可以使用 Phing php 任务轻松更改。这将评估 PHP 函数ini_set()并设置memory_limit值。以下 Phing 任务将此限制设置为 1G,即 1 GB。

<php expression="ini_get('memory_limit');" returnproperty="limit"> <echo>${limit}</echo></php>

这看起来像是分配给单个 PHP 实例的大量内存,但在处理数千个步骤时有时需要它。使用 PHP 函数查看当前内存限制ini_get(),以下 Phing 命令将获取 memory_limit 设置的值并将其打印出来。