【问题标题】:Do Phar files in PHP equate to Assemblies in Dot Net?PHP 中的 Phar 文件是否等同于 Dot Net 中的程序集?
【发布时间】:2014-10-02 10:06:16
【问题描述】:

我是一名 Dot Net 程序员,现在学习 PHP 只是为了好玩,看看 PHP 如何处理某些事情。对我来说,基本概念很简单,因为它们或多或少在 Web 编程和一般编程(如 OOP、会话、安全等)中很常见。但是,由于 PHP 的构建方式与 Dot Net 世界不同,因此似乎有些领域让我感到困惑。其中之一是 Phar 文件。在 Dot Net 中,我们非常习惯于创建松散耦合的程序集,以便在任何地方重复使用。然而,在 PHP 中,我读过的大多数书籍和我见过的代码只会创建类并直接在项目中使用它们。我现在的困惑是:

  • Phar 文件是否类似于 Dot Net 世界中的 dll 文件?
  • 如果是,为什么不经常使用它们?
  • 使用 Phar 文件时它们的性能是否受到影响?
  • 我可以积极地使用 Phar 文件来创建可重用的代码库吗?

如果你有很多PHP经验,请指导我,我想知道PHP专家是如何处理事情的。

【问题讨论】:

  • 我将从阅读 this 开始。第一行之一:“Phar 存档用于在单个文件中分发完整的 PHP 应用程序或库。”
  • 您可以将phar文件与Windows中的exe文件一样,在一个可执行文件(php可执行文件)中比较源代码的压缩版本。
  • 没有多少人使用它,因为它不是编译代码只是一个压缩的php文件,而且由于PHP更像是Web语言,因此执行phar文件有一定的开销(每次都需要解压缩)你使用它),因此会减慢网络响应等。
  • @Wold 是的,我阅读了那个帮助文件,这实际上引起了混乱。您会看到,当我们创建应用程序时,我们会生成一个 exe 供客户端安装应用程序。而我们创建程序集以在多个项目中重用它们。我的困惑是phar文件是否等同于exe或dll?
  • @BojanT 正如对已接受答案的评论中提到的那样,根本没有开销,因为 PHP 具有内置的操作码缓存。该文件仅在第一次编译操作码时解压缩。

标签: php phar


【解决方案1】:

Phar 文件是否类似于 Dot Net 世界中的 dll 文件?

不,他们不是。它们只是纯文本源代码的存档

如果是,为什么不经常使用?

因为它们非常新

使用 Phar 文件时它们的性能是否受到影响?

不,它们只是源代码,经过 gzip 压缩。提取后,它们只是源代码。

我可以积极地使用 Phar 文件来创建可重用的代码库吗?

“积极”是什么意思?您不能积极地使用压缩包。使用或不使用它们,它们只是用于在单个文件中分发代码(无论是库还是应用程序)的归档格式。您可以通过使用它们来限制您的受众,因为它们仅适用于相对较新的 PHP 版本。

【讨论】:

  • 感谢 meagar,您回答了我的问题,只是为了通过广泛使用来澄清我的意思是养成创建小型代码库然后创建它们的 phar 文件并在我的项目中使用它们的习惯。我想在性能问题上仍然存在一些混淆,因为另一条评论表明使用它们存在开销,因为每次使用它们时都需要解压缩。
  • @AfrazAli 应该没有任何开销,因为 PHP 的内置操作码缓存会处理这个问题。
猜你喜欢
  • 2011-04-07
  • 2018-07-15
  • 2011-04-12
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多