打包phar文件过大的问题。

根据一个开源工具得到的灵感,使用流打包,并使用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

时间: 2024-08-01 22:46:51

打包phar文件过大的问题。的相关文章

angular8 打包时 文件过大 导致内存溢出解决方案(记录)

在package.json 中添加 "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "buildTest":

webpack打包后bundle.js文件过大的问题

由于webpack将所有的文件合并到一个js文件.因此打包后的文件过大,导致网络请求不畅. 今天尝试了一下webpack打包.结果打出来3.6M.因为之前在本地测试的原因,一直用的webpack -w的命令. 即监控入口文件有无改动,若有改动,则自动编译. 更改命令:webpack -p -w webpack -p起到压缩的作用. 结果为1.4M. 查阅了一下相关资料.果断用nginx进行gzip压缩. 进入 /usr/local/etc/nginx目录下 打开编辑nginx.conf 配置如下

21.Vue---npm run build 项目打包文件过大(体积优化)

在项目打包完成后,经常会遇到一些文件过大或者一些路径地址不对的问题从而导致项目加载缓慢以及一些图片加载不出来或者一些其他问题的产生.根据自己打包后遇到的一些问题在这里记录一下,以防下次遇到后还的麻烦性的查找,唉??~~~,就是懒,哈哈. (注:本文呢我就写一些遇到的问题和一些解决的方法,具体的实现过程,我想各位应该都查阅过一些博客了,我就附上参考链接吧!??这博主Realy lazy!!!) 一.vender文件过大,或者时app.js文件很大,又或者路径地址不对: 1.不常用的库的CDN方式引

Pyinstaller打包生成exe文件过大,四种常用处理方法集锦---嵌入式Python-02

上篇讲到 pyinstaller打包exe太大的问题 CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇?zhuanlan.zhihu.com 那既然pyinstaller这么麻(nan)烦(yong) 那为什么不找一种方法代替它呢? 经过多方面打听,一位道上的盆友告诉了我一个惊天大秘密 python有embedded版本 当我看完了官方的文档以后...我的表情是这样的 惊喜&惊喜&惊喜&惊喜 像发现了新大陆一样 python37的em

使用vux打包文件过大的解决方案

项目上线了,发现页面加载过慢,追其原因,发现打包后文件也依然2M大小,然后发现了vux是个大坑,部分vue组件居然会把整个vux引进去. 通过测试发现: import {} from 'vux' 这样虽然使用的vux组件的样式没有渲染上去,实际整个vux都被引入进来了...好坑 之前我的代码是 import {Blur,Cell,Range,Toast ,Group } from 'vux' 结果通过webpack打包后js逼近两兆,实在是太大了.当时考虑是不是因为vue-video-playe

Unity5 Assetbundle简单使用 及 打包Material文件超大的问题

因为项目中要用到ULUA,而ULUA的Demo 中用到的是 Unity5的Assetbundle 打包方式,所以还是学习下 5.0 版本的Assetbundle 打包方式. 简单的来说,Unity5中新添加的 AB 打包,和我们平时使用的方式一样,原理就是 为每个文件创建一个依赖文件,然后汇总到一个总的依赖文件中,在游戏最开始运行的时候需要加载这个 总的依赖文件,然后加载 Assetbundle的时候,从中获取到依赖关系来加载依赖. Unity5的打包Assetbundle API使用起来很方便

.git文件过大!删除大文件

在我们日常使用Git的时候,一般比较小的项目,我们可能不会注意到.git 这个文件. 其实, .git文件主要用来记录每次提交的变动,当我们的项目越来越大的时候,我们发现 .git文件越来越大. 很大的可能是因为提交了大文件,如果你提交了大文件,那么即使你在之后的版本中将其删除,但是, 实际上,记录中的大文件仍然存在. 为什么呢?仔细想一想,虽然你在后面的版本中删除了大文件,但是Git是有版本倒退功能的吧,那么如果大文件不记录下来, git拿什么来给你回退呢?但是,.git文件越来越大导致的问题

Go 语言打包静态文件

对于 Go 语言开发者来说,在享受语言便利性的同时,最终编译的单一可执行文件也是我们所热衷的.但是,一旦遇到我们需要分发的东西不只有可执行文件的时候,事情就变得稍微有点复杂了,例如,需要分发个默认的配置文件:或者说是一个 Web 服务需要附带一些简单的 js/css 文件之类的. 当然,对于经验丰富的老司机们来说这都不是问题,例如 RH 系列的 RPM 是很多老司机们的选择,像我这样的新手也是觉得老司机们的这车开得好,可以很方便得管理一个分发包.但是,对于我们说的如果只有一点点文件,我就来打个

一键解决pdf文件太大如何变小的难题

PDF文件是适用于文件下发,阅读等便捷的电子文件格式,在传输发送的过程中,我们PDF文件较大的情况下,就需要将PDF文件压缩,那么PDF文件太大如何变小呢?对于PDF文件压缩不是太了解的用户可能就想不到好的办法解决,本文将教大家一键解决pdf文件太大如何变小的难题. 1.首先,我们需要了解的是PDF文件进行压缩,我们这里是需要借助到一款叫作迅捷PDF转换器的软件,所以,现在需要做的就是打开浏览器,在电脑上下载安装.软件下载:pdf压缩器http://www.newasp.net/soft/213