打包phar文件过大的问题。
2024-08-23 09:17:19
根据一个开源工具得到的灵感,使用流打包,并使用token_get_all移除了所用PHP文件的空白。现在打包出来只有93k了。谢谢关注。
我一个简单的文件,加上一个symfony的process包,打包出来竟有125M之巨,而composer那么多文件打包出来只有1.6M,百思不得其解。附上打包代码:
<?php
$pharFilename = 'deploy.phar';
if (file_exists($pharFilename)) {
e('remove old file...');
unlink($pharFilename);
}
$ignoreFiles = [
'readme.md',
'composer.json',
'composer.lock',
'.gitignore',
basename(__FILE__),
];
e('putting files...');
try {
$phar = new Phar(
__DIR__.DIRECTORY_SEPARATOR.$pharFilename,
FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
$pharFilename
);
} catch (UnexpectedValueException $e) {
echo $e->getMessage(), PHP_EOL;
} catch (BadMethodCallException $e) {
echo $e->getMessage(), PHP_EOL;
}
e('building...');
$phar->buildFromDirectory(__DIR__);
e('remove unused files...');
array_walk($ignoreFiles, function ($file) use ($phar) {
$phar->delete($file);
});
e('set stub...');
$phar->setStub($phar->createDefaultStub('deploy.php', 'deploy.php'));
e('compress...');
$phar->compressFiles(Phar::BZ2);
e('build done.');
function e($string)
{
echo $string, PHP_EOL;
}
打包phar文件过大的问题。 >> php
这个答案描述的挺清楚的:
http://www.goodpm.net/postreply/php/1010000007306359/打包phar文件过大的问题.html
最新文章
- (转载)哈夫曼编码(Huffman)
- ASP.NET MVC 表单submit()
- [Unity3D+算法]一小时做个2048
- Mysql ID重新排列
- bzoj1801
- 「前端开发者」如何把握住「微信小程序」这波红利?
- 测试报告_HTMLTestRunner.py
- python之计算机硬件基本认知_数据单位_进制间转换_数的原码反码补码
- Metasploit Framework(5)弱点扫描
- Python&#160;基于urllib.request封装http协议类
- js MD5加密处理
- hashCode 一致性hash 算法
- 对类型“DevExpress.Xpf.Grid.GridControl”的构造函数执行符合指定的绑定约束的调用时引发了异常。
- nodejs tutorials
- 【转】每天一个linux命令(48):watch命令
- MSTSC 修改端口的简单方法 3389
- Objective-C 学习笔记(二) 函数
- WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定
- Spring_Spring与IoC_基于XML的DI
- [EffectiveC++]item39:明智而审慎地使用private