搜索
首页后端开发php教程用盒子快速轻松地将应用程序装箱为PHAR

本教程将使用盒子的PHP应用程序包装到PHAR中,简化了通过作曲家的分布和全局安装。 我们将使用Webiny的FolderBuilder(用于交互式设计项目文件夹结构的工具)作为我们的示例。

Boxing up your Apps as Phars Quickly and Easily with Box

密钥概念:

    盒子简化了PHAR创建,以便于PHP应用程序部署和作曲家集成。>
  • a
  • >文件定义了PHAR内容(文件,入口点,输出文件名等)。
  • 命令构建了Phar。 将box.json添加到box>使PHAR可执行。chmod> box.json> Composer's
  • >中的字段允许PHAR分布作为全局命令行工具(需要Packagist上传)。
  • bin composer.json
  • 项目设置:

>我们将使用FolderBuilder的PHP脚本,该脚本生成项目结构的JSON表示。 虽然很容易直接运行,但将其包装为PHAR可增强可用性:>

>盒子项目创建:

composer global require webiny/folderbuilder
folderbuilder . > structure.json

首先,安装框:

接下来,克隆和结帐文件工具:

composer global require kherge/box
创建

cd ~
git clone https://github.com/webiny/folderbuilder
cd folderbuilder
git checkout 74b234fa33bd69690a2c26df38ef7d188c4e69eb

box.json指定包括文件,输出路径,存根,入口点,可执行权限和较小phar尺寸的压缩机。 运行:

{
  "files": ["structure.php", "bin/stub.php"],
  "output": "bin/wfb.phar",
  "stub": true,
  "main": "bin/stub.php",
  "chmod": "0755",
  "compactors": ["Herrera\Box\Compactor\Json", "Herrera\Box\Compactor\Php"]
}
然后,重命名和测试:

box.json 用作曲家的分发

box build -v
mv bin/wfb.phar bin/wfb
bin/wfb
>将项目上传到Packagist。

测试全局安装:

>

创建一个新的环境(例如,一个新的宅基地改进实例)并运行:> bin composer.json这确认了全球安装的PHAR的功能。

>
"bin": ["bin/wfb"]

结论:

此教程详细介绍了使用框创建和分发PHP PHAR,从而改善了应用程序的部署和可用性。 进一步的增强可能涉及PHAR签名和自动更新机制。 FolderBuilder欢迎捐款以扩展其功能。

>
composer global require webiny/folderbuilder
wfb ~/Code > out.json
经常询问有关拳击应用程序和phars的问题(常见问题解答):

(本节在很大程度上与输入保持不变,因为这是一个有用且相关的FAQ部分。)

在PHP中使用PHAR的主要目的是什么? PHARS或PHP档案库,将整个PHP应用程序包装到一个文件中,以便于分发和安装。 它们类似于Java的jar文件,通过合并所有必要的组件来简化部署。

我如何创建一个Phar文件?

> PHP中的

Phar类促进了Phar的创建。 您可以实例化课程,使用addFile添加文件,然后使用stopBuffering保存。 也可以设置一个存根(在PHAR执行上执行的小脚本)。

>

使用Box-Project等拳击应用程序有什么好处?

>拳击应用程序自动化PHAR创建,简化了分发过程。 诸如GIT和COMPOSER集成之类的功能进一步提高了工作流程效率。

我如何使用Box-project创建Phar文件?

>

>安装Box-project,创建一个定义包装说明的文件,然后使用命令生成PHAR。 可用于压缩和存根配置的选项。

box.json我可以将PHAR与Web应用程序使用吗? box是的,当通过Web服务器访问时,PHAR作为常规PHP应用程序。 但是,请确保您的Web服务器配置为执行PHAR文件。

是否有使用PHAR的安全问题?

>使用来自受信任的来源的PHAR,并将其更新。 php's

设置增强了安全性。

我如何更新Phar文件?phar.readonly> phar.require_hash>创建一个带有更新的新PHAR,然后替换旧的PHAR。 这可以自动化或手动完成。

>

我可以将PHAR与PHP框架使用吗?

是的,许多框架支持PHAR,允许您将应用程序(包括框架)包装到一个文件中。

盒子项目和Box-project 2? 我该如何解决PHAR的问题?>

>检查PHP错误日志,在不同系统上测试并验证正确的PHP配置。 文件权限问题也很常见。

以上是用盒子快速轻松地将应用程序装箱为PHAR的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您如何在PHP中创建和使用接口?您如何在PHP中创建和使用接口?Apr 30, 2025 pm 03:40 PM

本文解释了如何创建,实施和使用PHP中的接口,重点关注其对代码组织和可维护性的好处。

crypt()和password_hash()有什么区别?crypt()和password_hash()有什么区别?Apr 30, 2025 pm 03:39 PM

本文讨论了PHP中的crypt()和password_hash()之间的差异,以进行密码哈希,重点介绍其实施,安全性和对现代Web应用程序的适用性。

如何防止PHP中的跨站点脚本(XSS)?如何防止PHP中的跨站点脚本(XSS)?Apr 30, 2025 pm 03:38 PM

文章讨论了通过输入验证,输出编码以及使用OWASP ESAPI和HTML净化器之类的工具来防止PHP中的跨站点脚本(XSS)。

PHP中的自动加载是什么?PHP中的自动加载是什么?Apr 30, 2025 pm 03:37 PM

自动加载PHP会在需要时自动加载类文件,从而通过减少内存使用和增强代码组织来提高性能。最佳实践包括使用PSR-4和有效组织代码。

什么是PHP流?什么是PHP流?Apr 30, 2025 pm 03:36 PM

PHP流通过一致的API统一处理文件,网络插座和压缩格式等资源的处理,从而提高复杂性并增强代码灵活性和效率。

可以使用PHP上传的文件的最大大小是多少?可以使用PHP上传的文件的最大大小是多少?Apr 30, 2025 pm 03:35 PM

本文讨论了在PHP中管理文件上传大小的管理,重点是2MB的默认限制以及如何通过修改PHP.INI设置来增加它。

PHP中的无效类型是什么?PHP中的无效类型是什么?Apr 30, 2025 pm 03:34 PM

本文讨论了PHP 7.1中引入的PHP中的无效类型,允许变量或参数为指定类型或NULL。它突出显示了诸如提高可读性,类型安全性和明确意图的好处,并解释了如何声明

unset()和unlink()函数之间有什么区别?unset()和unlink()函数之间有什么区别?Apr 30, 2025 pm 03:33 PM

本文讨论了unset()和unlink()功能在编程中的差异,重点关注其目的和用例。 unset()从内存中删除变量,而unlink()从文件系统中删除文件。两者都对效率至关重要

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。