问题标签 [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.
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 存档?事实上,我只需要存档成为我的文件的容器,不需要自动执行任何东西。
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() 从那里获取它
我真的很想考虑这种嵌套设置。也许你有另一个好主意?
最好的问候菲利普
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 返回一个没有堆栈跟踪或行号的异常。)
还有其他惊喜,我应该期待吗?还有其他已知问题吗?它们是否记录在任何地方?
php - PHP:找不到类“Phar”
我尝试使用 Silex 框架作为我的 Web 应用程序的基础。但是,如果我尝试包含 *.phar 存档,PHP 会抛出以下错误:
以下相关行在我的/etc/php/php.ini
(如 Silex 的文档中所建议的):
PHAR 库存在,/usr/lib/php/modules/phar.so
其中设置为我的所有库的扩展路径php.ini
有谁知道为什么 PHP 会抛出这个错误?
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 文件。
谢谢!
php - 包含在生产服务器上的 phar 存档中失败,但在本地开发服务器上没有
给出的错误是
似乎 phar 档案正在被加载,但是当它试图包含一些资产时它失败了。我不知道从哪里开始解决这个问题。它在我的本地机器上完美运行,但是当我将它上传到生产服务器时(如果重要,运行 plesk)它失败了。
Phar 似乎已启用。从 phpinfo():
注册的 PHP 流
https、ftps、compress.zlib、compress.bzip2、php、文件、glob、数据、http、ftp、phar、zip
有什么想法可能导致这种情况吗?
php - 错误:尝试通过 pecl 安装 php_phar 时,DSP phar.dsp 不存在
尝试通过 pecl 在 php 5.3.8 / windows7 x64 上安装 php_phar 时收到此错误:
(我的扩展目录中没有 php_phar.dll)。
无法通过谷歌搜索有关此问题的任何内容。
php - PHP phar 可能的用法
我将在 php 中启动一个新的门户应用程序,它将具有 5 7 个组件。几个月前我读到了 php phar,想知道单独创建每个组件的 phar 并以某种方式使用它们是否对我有益。我即将启动该应用程序并且没有以前的 phar 经验,因此愿意从我使用或不使用它的堆栈溢出人员那里获得一些输入。
在我看来,使用 phar 的主要主题是创建一些面板,站点管理员可以在其中启用/禁用整个组件,以备将来如果需要我会插入更多组件。我们在 .net DLL 中的概念相同
问候朱奈德
php - 编辑 PHAR 文件
我正在尝试编辑 phar 文件,但我知道它不支持增量更新,我必须提取 phar 文件,编辑其内容,然后再次压缩它才能使用它。
我无法理解如何提取 phar 文件。一个简单的操作方法将不胜感激。我目前在窗户上。
php - 致命错误:未找到“Silex”类
我尝试使用 silex 来构建我的应用程序。当我尝试测试我的第一个应用程序时,我收到如下错误:
致命错误:在第 5 行的 /opt/local/apache2/htdocs/silex/try.php 中找不到类 'Silex'
这是我的代码:
我在搜索引擎中搜索了我的错误,我有一些建议,比如在 php.ini 中添加此代码:
但是当我在网络浏览器中测试时,我仍然会遇到同样的错误。你有什么建议?