问题标签 [phar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1897 浏览

php - 如何创建没有索引的 Phar 存档?

我正在尝试用我的一个库制作一个 Phar 档案。lib 只是一堆组织成文件夹和子文件夹的类。这里根本没有 index.php,只是一个静态 Config 类来调用以启动自动加载器。

无论如何,我建立了一个这样的档案:

之后,我尝试像这样使用 phar :

但我收到以下错误:

警告:include(phar://D:\wamp\www_test\phar\lib.phar/index.php) [function.include]:无法打开流:phar 错误:“index.php”不是 phar 中的文件第 9 行 D:\wamp\www_test\phar\lib.phar 中的“D:/wamp/www/_test/phar/lib.phar”

如何制作一个没有任何 index.php 文件的 phar 存档?事实上,我只需要存档成为我的文件的容器,不需要自动执行任何东西。

0 投票
2 回答
664 浏览

php - 是否可以将 phar 放入 phar 中?

首先要做的事情是:我的 Phars 确实在运行。我正在玩一点,我有以下场景:

  • 应用程序的 Phar(没有什么不规则的)(application-phar)
  • 第二个 phar,例如用于图书馆。(lib-phar)

我想将 lib-phar 放入 application-phar。并且只需要应用程序phar。这样来自 application-phar 的引导程序(存根)从 lib-phar 加载引导程序。

这是我想出的最好的介绍资源: http ://www.slideboom.com/presentations/26182/PHP-5.3-Part-3---Introducing-PHAR

我有以下内容:

lib-phar

内部存根

应用程序pha

外存根

主要的

输出:

这么久,这么好,但是……我如何执行内部的index.php?我认为问题是,我想做一些非常令人困惑的事情:

这是可读的形式::

因为我的 lib.phar 在 application.phar 中。所以我想我需要一个包装器周围的包装器。所以也许 PHAR-Extension 不是为此而设计的。正如我们所见,调用了第二个存根,但是魔术__FILE__常数(以及Phar::running(TRUE|FALSE)此处设置错误。

你有什么想法?或者做了类似的设置?

我当然知道替代方案:

  • 对 lib + 应用程序使用一个存根和一个 phar
  • 将 lib.phar 解压缩到一个临时位置,并使用 Phar::load() 从那里获取它

我真的很想考虑这种嵌套设置。也许你有另一个好主意?

最好的问候菲利普

0 投票
2 回答
1078 浏览

php - PHP PHAR 的意外问题

在使用 PHP 5.3 PHAR 档案进行一些测试/脚本/播放后,我发现了一些问题。

球体

PHAR 不适用于 glob。既不是包装器(http://www.php.net/manual/en/phar.using.stream.php#104320)也不是函数调用。

在我的测试项目中,我必须遍历 PHAR 中的文件,并通过与 glob 等效的正则表达式过滤结果。

图像ttfbbox

我不知道为什么,但 imagettfbbox 也不理解 PHAR 流包装器。

这里最简单的解决方案是通过 copy() 提取文件。(PHAR::extractTo 返回一个没有堆栈跟踪或行号的异常。)

还有其他惊喜,我应该期待吗?还有其他已知问题吗?它们是否记录在任何地方?

0 投票
8 回答
61127 浏览

php - PHP:找不到类“Phar”

我尝试使用 Silex 框架作为我的 Web 应用程序的基础。但是,如果我尝试包含 *.phar 存档,PHP 会抛出以下错误:

以下相关行在我的/etc/php/php.ini(如 Silex 的文档中所建议的):

PHAR 库存在,/usr/lib/php/modules/phar.so其中设置为我的所有库的扩展路径php.ini

有谁知道为什么 PHP 会抛出这个错误?

0 投票
2 回答
2447 浏览

php - 将内存中的 PHP 数组压缩为 .tar.gz 文件(PHAR?)

我有一个大型的 xml 文件内存数组作为字符串。

我正在寻找从 PHP (5.3) 创建可读/可提取 .tar.gz 文件的最有效方法。

目前我正在使用这个类

但 :

  • 它看起来没有维护
  • 它需要文件(所以我从我的内存数组中创建了数千个文件,这些文件在几毫秒后就没用了)

所以我正在寻找一种处理 .tar.gz 文件的有效方法,最重要的一点是能够使用简单的命令轻松地将文件放入其中:

$myArchive->putFileFromString($fileName, $dataString);

看起来可以使用 TAR 和 GZ 配置 PHAR,所以它可能是一个解决方案?


额外的问题,我不确定是否最好实时构建它(在每个 xml 字符串生成之后)以节省内存,或者只是等待这个巨大的对象并压缩一次。在这种情况下,我不清楚 proc_usage / mem_usage 的比率。

目标最大使用量是 100K XML 文件。

谢谢!

0 投票
1 回答
938 浏览

php - 包含在生产服务器上的 phar 存档中失败,但在本地开发服务器上没有

给出的错误是

似乎 phar 档案正在被加载,但是当它试图包含一些资产时它失败了。我不知道从哪里开始解决这个问题。它在我的本地机器上完美运行,但是当我将它上传到生产服务器时(如果重要,运行 plesk)它失败了。

Phar 似乎已启用。从 phpinfo():

注册的 PHP 流

https、ftps、compress.zlib、compress.bzip2、php、文件、glob、数据、http、ftp、phar、zip

有什么想法可能导致这种情况吗?

0 投票
1 回答
2552 浏览

php - 错误:尝试通过 pecl 安装 php_phar 时,DSP phar.dsp 不存在

尝试通过 pecl 在 php 5.3.8 / windows7 x64 上安装 php_phar 时收到此错误:

(我的扩展目录中没有 php_phar.dll)。

无法通过谷歌搜索有关此问题的任何内容。

0 投票
1 回答
437 浏览

php - PHP phar 可能的用法

我将在 php 中启动一个新的门户应用程序,它将具有 5 7 个组件。几个月前我读到了 php phar,想知道单独创建每个组件的 phar 并以某种方式使用它们是否对我有益。我即将启动该应用程序并且没有以前的 phar 经验,因此愿意从我使用或不使用它的堆栈溢出人员那里获得一些输入。

在我看来,使用 phar 的主要主题是创建一些面板,站点管理员可以在其中启用/禁用整个组件,以备将来如果需要我会插入更多组件。我们在 .net DLL 中的概念相同

问候朱奈德

0 投票
1 回答
1728 浏览

php - 编辑 PHAR 文件

我正在尝试编辑 phar 文件,但我知道它不支持增量更新,我必须提取 phar 文件,编辑其内容,然后再次压缩它才能使用它。

我无法理解如何提取 phar 文件。一个简单的操作方法将不胜感激。我目前在窗户上。

0 投票
1 回答
2044 浏览

php - 致命错误:未找到“Silex”类

我尝试使用 silex 来构建我的应用程序。当我尝试测试我的第一个应用程序时,我收到如下错误:

致命错误:在第 5 行的 /opt/local/apache2/htdocs/silex/try.php 中找不到类 'Silex'

这是我的代码:

我在搜索引擎中搜索了我的错误,我有一些建议,比如在 php.ini 中添加此代码:

但是当我在网络浏览器中测试时,我仍然会遇到同样的错误。你有什么建议?