PHP PHAR 归档的优点

2024-03-24

PHP 5.3 有一个新功能称为PHAR如同JAR在JAVA中。它基本上是 PHP 文件的存档。它的优点是什么?我不明白它们在网络场景中有何帮助。

除“易于部署”之外的任何其他用途 - 只需复制一个文件即可部署整个应用程序


开源项目有巨大的好处(排名不分先后)。

  1. 更轻松的部署意味着更容易采用。想象一下:您通过将 CMS、论坛或博客系统拖到 FTP 客户端来在您的网站上安装它。就是这样。

  2. 更轻松的部署意味着更轻松的安全性。如果您只需要担心一个文件,那么更新到最新版本的软件包就会简单得多。

  3. 更快的部署。如果您的网络主机不提供 shell 访问权限,则您无需在上传前解压缩,这样就可以减少每个文件的传输开销。

  4. 天生的区隔。作为包一部分的文件与添加或自定义的文件明显不同。您知道您可以轻松替换存档,但您需要备份您的配置和自定义模板(并且它们不会全部混合在一起)。

  5. 更简单的图书馆。您不需要弄清楚如何使用 PEAR 安装程序,或者查明这个或那个库是否具有嵌套目录结构,或者是否必须包含 X、Y 或 Z(按这个顺序?)。只需上传,包括存档,开始编码。

  6. 更容易维护。不确定更新库是否会破坏您的应用程序?只需更换它即可。破碎的?恢复one file。您甚至不需要触摸您的应用程序。

  7. 你所看到的就是你得到的。很有可能,有人不会费尽心思去捏造存档,因此,如果您看到您维护的系统上安装了一个存档,您就可以相当确信它没有被某人随机黑客攻击。哈希值可以快速告诉您它是什么版本或是否已更改。

不要拉屎,让部署更容易。对于本土 SaaS 来说,它不会产生任何影响,但对于任何发布或安装 PHP 软件包的人来说,它是一个游戏规则改变者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP PHAR 归档的优点 的相关文章

随机推荐

  • Spring IOC 和 Spring AOP 的区别

    有什么区别春季国际奥委会 and 春季AOP以及它们的重要性 您在网上搜索过 IoC 和 AOP 吗 有一个lot对两者的引用 简而言之 IoC 允许外部力量来决定代码将使用什么实现 而不是由代码决定实现 外力 可能是配置文件 单元测试 其
  • 为什么从 Unicode 字符集中删除了 U+D800 到 U+DFFF 范围内的代码点?

    我正在学习UTF 16编码 并且我读到如果你想表示U 10000到U 10FFFF范围内的代码点 那么你必须使用代理对 其范围在U D800至 U DFFF 假设我想对以下代码点进行编码 U 10123 二进制为 1000000010010
  • Python 中的随机数生成方法有何不同?

    生成随机数int在 Python 中 0 到 10 之间 我可以执行以下任意操作 import numpy as np print np random randint 0 10 or import random print random r
  • Google 关于推送通知的回应

    我正在创建一个用于 Google 日历集成的应用程序 当任何人手动更改 Google 日历事件时 我试图从 Google 获取通知 因此 我们在 Google 和我的应用程序之间创建了一个通道 现在的问题是 当 google 将响应标头发送
  • 如何编写通用方法来查找最大元素并调用该方法?

    当我试图解决运动问题时来自泛型教程问答 http docs oracle com javase tutorial java generics QandE generics answers html我的答案略有不同 我的回答 public s
  • 完成调试/编码后,如何处理 print()

    致Python专家 我使用了很多 print 来检查变量的值 完成后 我需要删除 print 它非常耗时并且容易出现人为错误 想了解一下你们如何处理 print 是编码时删除还是最后删除 或者有一种方法可以自动删除它或者您不使用 print
  • AngularJS 中的 Rails 路由参数

    我正在尝试构建一个不使用 ngView 的 AngularJS Rails 多页面应用程序 基本上 我想在我的 Rails 应用程序中使用 Angular 的数据绑定和其他功能 同时仍然拥有由我的 Rails 路由确定的视图 到目前为止 它
  • 分别计算每列的不同值

    我可以计算每列的不同值而不枚举它们吗 假设我有一张桌子col1 col2 col3 并且没有其他列 在不明确提及这些列的情况下 我希望得到与以下相同的结果 SELECT count distinct col1 as col1 count d
  • 不同航线如何使用相同的护照策略?

    假设我有这样的代码 var api1 require api1 var api2 require api2 var app express app use api1 api1 app use api2 api2 这是 api1 模块的代码
  • 斯坦福 NLP - VP 与 NP

    我有一个例子 斯坦福 NLP 为句子输出了一个奇怪的解析树 Clean my desk ROOT NP NP JJ Clean NP PRP my NN desk 正如你所看到的 它标记了这个词Clean作为依赖于动词的形容词desk整个短
  • 保持 OpenCV 2 和 OpenCV 3 之间的代码兼容性

    我的库当前使用 OpenCV 2 现在 我正在尝试编译该库以使用 OpenCV 3 似乎一些头文件被移动 一些常量被重命名 例如 CV INTER LINEAROpenCV 3 中未定义 由于我的库需要在 OpenCV 2 和 3 上编译和
  • AmazonRDSEnhancedMonitoringRole 的 Cloudformation 模板

    我正在尝试通过 Cloudformation 模板启动 RDS 堆栈 我想在我的数据库实例上启用增强监控 为了做到这一点 MonitoringRoleArn必须在资源上指定属性 据我了解 这个 ARN 应该指向一个 IAM 服务角色 该角色
  • python urllib2 urlopen 响应

    python urllib2 urlopen 响应
  • 在 eclipse RCP 中安装新插件/功能后,是否有任何方法可以自动从磁盘中清除旧插件/功能?

    我正在构建一个 RCP 应用程序 每个季度都会更新功能 插件 因此 如果用户选择自动更新功能 插件 则将下载更新插件的新 jar 但旧插件仍在使用我不再使用的磁盘空间 我厌倦了删除包含旧 jar 信息的安装历史记录 当我尝试删除它时 它向我
  • 我们什么时候应该使用 RxJS tap 运算符?

    我不明白从the docs https rxjs dev firebaseapp com api operators tap 有人能给我解释一下吗 大多数操作符都按流顺序工作 例如 source pipe map a string gt c
  • 如何将支持的操作系统添加到 Windows 单击一次应用程序清单中?

    我正在尝试将supportedOS标签添加到单击一次应用程序清单中 对于常规应用程序执行此操作的常用方法是将 app manifest 文件添加到包含supportedOS 标记的项目中 如下所示 我删除了自动生成的单击一次清单中已包含的所
  • 在 Swift 中将两字节 UInt8 数组转换为 UInt16

    使用 Swift 我想将 uint8 t 数组中的字节转换为整数 C 示例 char bytes 2 0x01 0x02 NSData data NSData dataWithBytes bytes length 2 NSLog data
  • Vue.js 从 webpack 包中排除文件夹

    我陷入了一个关于 webpack 的非常简单的问题 我有一个使用 vue cli 创建的简单 Vue js 应用程序 我创建了文件夹public Reports我想从捆绑包中排除它 该文件夹包含子文件夹和 PDF 我的项目结构是标准的 di
  • 从边框外部绝对定位

    当我将元素绝对定位在相对元素内时 坐标是从容器的边缘计算的 而不考虑边框 相当于从边框的内侧定位 除了从边框的外侧定位元素之外 还有什么方法可以定位元素吗 例如 如果我有一个没有边框的红色方块 如第一个 则文本会粘在容器的左上角 因为它有t
  • PHP PHAR 归档的优点

    PHP 5 3 有一个新功能称为PHAR如同JAR在JAVA中 它基本上是 PHP 文件的存档 它的优点是什么 我不明白它们在网络场景中有何帮助 除 易于部署 之外的任何其他用途 只需复制一个文件即可部署整个应用程序 开源项目有巨大的好处