问题标签 [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 回答
438 浏览

php - Phar 存档中的 SQLite 数据库

我正在尝试通过 Phar 存档中的 PDO 扩展访问 SQLite 数据库,但出现错误:

带有消息“SQLSTATE [HY000] [14] 无法打开数据库文件”的异常“PDOException”

PHP手册说可以修改存档中的文件。我该如何解决?

0 投票
0 回答
212 浏览

symfony - 在 phar 存档中打包 Laravel4 或 Symfony2 命令

我正在研究使用 IronWorker 来运行一些计划任务。
( http://dev.iron.io/worker/ )

为此,我需要能够打包我需要的所有东西,然后再将其发送到 Iron。当我这样做时,我需要能够说“php”来实际运行它。

但是,就我当前的(Laravel 4)项目而言,命令实际上是作为“php artisan command:commandname”运行的。

我的问题:
如何将整个 Laravel 安装打包到 phar 存档中,并让 phar 直接指向该特定命令的执行?

(注意:如果有人知道如何为 Symfony2 执行此操作,请继续,我相信两者都非常相似)

谢谢,

迪特

0 投票
1 回答
451 浏览

php - 使用 phar 流的 require 文件在 ZendStudio 中不起作用

我在 ZendStudio 中遇到一个非常奇怪的问题。在 ZendStudio 中使用 phar 扩展 phar:// 流包装器在 phar 归档中包含或要求文件将不起作用。

这是我所做的。

给定以下文件结构:

具有以下内容:

法尔/Test.php:

phabuilder.php:

使用phar.php:

现在,如果您首先在 ZendStudio 中运行 pharbuilder.php(ZS 8:右键单击文件,以 PHP 脚本运行),phar 文件(test.phar)将被成功创建(在运行之前,您必须添加 ini 选项phar.readonly=0到相应的 php.ini)。但是,在 ZS 中运行 usephar.php 会导致错误。

所以很明显,可以找到该文件,但无法包含它。我还可以使用访问文件中 Test.php 的内容file_get_contents('phar://' . __DIR__ . '/test.phar/Test.php')

另外,我注意到如果我修改此脚本的运行配置并禁用“运行时显示调试信息”复选框,这不会发生。所以我认为它与 ZendDebugger 有关,但我不太确定。

当我从控制台运行相同的脚本时,一切正常。

我在 ZendStudio 8 和 10 以及 ZS 中提供的所有 php 版本(5.4.11、5.3.21、5.3.3 都在 CGI 和 CLI 中)进行了尝试。

由于我找不到其他人有同样的问题,我认为我做错了什么并且愿意接受任何建议。也许是一些秘密的 php.ini 指令或类似的东西。

0 投票
1 回答
282 浏览

php - mod_rewrite 如何与 phar 一起工作?

我从我的 Web 应用程序源目录中创建了一个 phar 存档。该目录还包含“css”和“js”目录。静态文件在 html 中被寻址为 /css/xyz.css 等。当我尝试访问应用程序时,html 加载正常,但静态文件没有。我尝试添加将 /css/xyz.css 映射到 /app.phar/css/xyz.css 的 apache 重写规则,但这不起作用。每次我打

它正在加载 index.php。

我是否必须修改对 /app.phar/css/xyz.css 的所有静态文件引用?相对于 phar 文件的静态文件 url 工作正常。

另外,使用 phar 时 mod_rewrite 是否完全无法使用?

谢谢!

0 投票
1 回答
11039 浏览

php - 找不到 phar 类

我正在尝试为 php“composer”安装依赖管理器,但“composer”需要扩展名“phar”。我已经意识到php6默认带有phar,但是为了执行“phar”文件而被禁用并且不是必需的。

当我尝试执行“composer.phar”(在 cmd:php composer.phar)时,它会抛出错误:

Fatal error: Class 'Phar' not found in composer.phar on line 13.

如果我尝试执行 Composer 安装程序,“installer.php”(在 cmd 中:php installer.php)会抛出此错误:

Some settings on you machine make composer unable to work properly. Make sure that you fix the issues listed below and run this script again:

缺少 phar 扩展名。我怎样才能解决这个问题?

--disable-phar我应该在不使用 appserv 2.6.4(apache 2.2、php6、mysql 4)的情况下安装它还是重新编译 php 。

0 投票
1 回答
2188 浏览

php - PHP Phar 部署性能

我正在考虑构建我们的 php 应用程序的部署过程,以便构建的输出为在生产中运行应用程序所需的代码生成单个 phar 存档。我想知道以这种方式部署 Web 应用程序与检出或复制源代码树本身到 Web 服务器的文档根目录的传统模型相比的性能。

打包方法的好处在于,包可以由 CI 服务器完全准备好(例如删除测试代码),然后将单个存档复制到服务器进行部署。原始档案也可以存储在存储库中。

但是,如果将应用程序作为 phar 运行会导致瓶颈,我不想使用这种方法。从 phar 中加载源代码有问题吗?该应用程序通过 Composer 使用自动加载来加载源代码。

0 投票
1 回答
510 浏览

php - 几个php Phar问题

有几个问题,但我相信答案对于许多人掌握相对较新的 phar 很有用。

  1. 当它实际运行时,是否可以从 phar 脚本中删除或编辑 phar 脚本中的文件?

  2. 我注意到我可以将我的 phar 文件的名称从 examplename.phar 更改为 examplename.php 并在 url 中运行它,它仍然可以正常工作。那正确吗?可以吗?那安全吗?

  3. 将所有文件放在同一个目录中然后 phar 它是更好的做法,还是可以保留所有文件夹和子文件夹并 phar 那样 - 还是没关系?

  4. 你能混淆phar文件吗?还是会毁了它?在pharing之前是否必须完成所有混淆?

希望phar专家可以回答这些问题。谢谢

0 投票
6 回答
4160 浏览

php - PHP Phar - file_exists() 问题

我的 Phar 脚本使用 fwrite 创建了一个新文件,它工作正常,它在 phar 之外创建新文件,与 phar 文件位于同一目录中。

但是当我使用 if(file_exists('file.php')) 时,它并没有捡起它。

但是然后包含并要求将其捡起。

有人知道这个问题吗?测试和研究了一段时间似乎无法找到解决方案。

0 投票
1 回答
120 浏览

orm - ZF2 Doctrine ORM 控制台应用程序 - 作为 phar 存档执行时出错

我简单地编写了基于 ZF2 控制台的应用程序。有来源:https ://github.com/vagovszky/console 。应用程序旨在将课程从 XML 导入数据库。一切正常,直到应用程序被打包到 phar 中。

如果我将此应用程序打包到 phar 存档中(如 README.md 中所述)并执行它,则会发生错误:

Doctrine\ORM\Mapping\MappingException 类“Database\Entity\Ligues”不是有效的实体或映射的超类。

我不知道如何解决这个问题,谢谢帮助。

0 投票
1 回答
813 浏览

phpunit - PHPUnit、Phar 和没有这样的文件或目录

我使用 phar 安装了 PHPUnit,如此处所述,http ://phpunit.de/manual/3.8/en/installation.html

当我执行phpunit --version它工作正常。但是,当我尝试执行测试时,它给了我以下错误:

PHP警告:需要(PHPUnit / Autoload.php):无法打开流:(等等,等等,等等)中没有这样的文件或目录...

phar 安装在 /usr/local/bin 中(如推荐的那样),我将此路径添加到 cli 的 php.ini 中的 include_path 中。

有任何想法吗?