【发布时间】: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 具有内置的操作码缓存。该文件仅在第一次编译操作码时解压缩。