问题标签 [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 投票
2 回答
4721 浏览

php - 请解释如何创建 PHP 的 Phar 存根

我正在尝试创建一个非常简单的 PHP CLI 应用程序,它可以作为phar文件从命令行运行:

这是我迄今为止尝试过的:

我的项目

我的项目位于一个名为的目录中MyProject,其中包含以下两个文件:

引导程序.php

bootstrap.php文件包含以下内容:

当我从 Ubuntu 命令行运行此脚本时:

我得到以下输出:

创建Phar.php

createPhar.php 文件旨在将项目转换为 Phar 存档。它看起来像这样:

当我运行该脚本时...

MyProject.phar...在我的项目目录中创建了一个名为的新文件。

现在问题来了

当我运行 phar 文件时...

...我希望看到与运行bootstrap.php脚本时相同的输出。

相反,我什么也看不见。根本没有输出。这意味着我的bootstrap.php脚本未包含在由创建的默认存根中$phar->createDefaultStub('bootstrap.php')

我想我误解了 Phars 和他们的存根是如何被创建的。请你解释一下我哪里出错了。

0 投票
1 回答
778 浏览

php - PHP 的 Phar::mapPhar() 方法有什么作用?

我正在考虑创建一个 phar 存根以在 PHP CLI 应用程序中使用。

Phar::mapPhar方法的文档说它“读取当前执行的文件(一个 phar)并注册它的清单”。

您能否解释一下“注册其清单”的含义,并指出如果在没有参数的情况下调用它会发生什么。为什么要注册清单?将此调用添加到我的 phar 存根有什么好处。

0 投票
2 回答
1952 浏览

php - 使用 PHP / PHAR 构建单文件可执行文件

我想创建一些 PHP cli 应用程序的单文件可执行文件,它应该驻留在例如。“/usr/local/bin” 打包为 PHAR 之后。这已经很好了,但是我有点困惑:

看来,在创建目标文件时需要具有“.phar”扩展名。当我想创建一个不带扩展名的 phar 时,new Phar('/usr/local/bin/app', ...)会引发异常:

但是:当我使用“.phar”扩展名创建它并在创建后重命名它时,一切似乎都正常。我想知道为什么会这样,我需要在创建时进行扩展,以及在创建文件后重命名文件时是否有任何问题?

0 投票
1 回答
2724 浏览

php - phar 存档中的静态内容

我只是想知道将静态内容添加到 phar 档案(图像、javascript 或 html 文件)是否合法。如果是这样,我如何让他们为客户服务?

到目前为止,我看到的唯一例子是:

但我想这不是一条路要走。

UPATE:以防万一有人试图做同样的事情。这段代码集作为 phar 存档的存根对我有用:

phar 存档中的所有静态内容仍然通过 php 解释器,但至少不需要手动设置标题 mime 类型和使用 readfile() 提供静态文件内容。phar 存根中的这些函数使其看起来透明。

0 投票
1 回答
549 浏览

php - 替代 Eclipse PDT 用于导出和生成 PHAR 档案

我想创建一些 PHAR 档案,但没有找到任何替代 Eclipse 的好方法。可能需要 Aptana 或独立解决方案的解决方案。

你知道一些程序吗?

需要它作为我笔记本电脑上的 Windows 程序。

0 投票
2 回答
1170 浏览

php - 我可以将 PHPUnit 打包为 phar 吗?

我想将 PHPUnit 和其他各种测试依赖项打包成一个 phar 并将其放入 svn。这样我就可以在任何客户端机器上运行 phpunit 而不需要梨。这可以做到吗?

0 投票
1 回答
920 浏览

php - 如何在没有 pear 或 phar 的情况下为 TYPO3 安装 PEAR::Mail?

为了在外部 SMTP 服务器上使用 TYPO3 扩展“Direct Mail”,我需要安装 PEAR::Mail (http://pear.php.net/package/Mail/download/1.2.0)。

至少,这是 Direct Mail 配置中的文本告诉我的:

启用通过 SMTP 发送 [SmtpEnabled] 不通过 sendmail 而是通过外部 SMTP 帐户发送所有电子邮件(需要在系统上安装 PEAR::Mail)

我既没有梨也没有 phar。

手动下载后如何安装包?

0 投票
2 回答
5122 浏览

php - 在 PHP 脚本中包含 PHAR 文件 (PHP5.3 / Debian)

我正在尝试在我的 PHP 脚本中包含一个 PHAR 文件(PHP 存档),它在 WAMP 上运行良好,但在我的 debian 服务器上却不行!

我的服务器有 PHP5.3(包括原生的 PHAR 扩展!),但我的脚本在包含 PHAR 时停止(实际上是Silex

我的代码(file_exists() 工作正常):

我看到由于 phpinfo() 启用了 PHAR。

但是,我尝试了很多方法来纠正这个问题:

没有任何效果...有解决方案吗?

0 投票
2 回答
3955 浏览

php - 使用 PHP Phar 加密

是否可以对 Phar 存档进行加密/密码保护以启用闭源软件分发?

0 投票
1 回答
3652 浏览

php - 找不到类“PharData”

我在生产服务器(CentOS 5.4 和 php 5.3.5)上收到此错误:

警告:include_once(PharData.php):无法打开流:第 146 行的 /var/www/ZendFramework/library/Zend/Loader.php 中没有这样的文件或目录

警告:include_once():无法打开“PharData.php”以包含(include_path='/var/www/fw:/var/www/vmms:/var/www/ZendFw/library:.:/usr/share/pear :/usr/share/php') 在 /var/www/ZendFw/library/Zend/Loader.php 第 146 行

致命错误:在第 40 行的 /var/www/vm/app/Backup.php 中找不到类“PharData”

这是失败的代码:

这段代码在我自己的电脑上运行良好。

PharData 应该默认包含在 php 5.3+ ...

谢谢你的帮助!


更新 :

我正在使用 Zend Auto loader 功能使用以下代码加载好的 php 文件:

Zend 自动加载器正在执行include_once(PharData.php).