mvccore/packager

库可以将任何类型的应用程序打包成PHAR存档或任何MvcCore应用程序打包成单个PHP超级快速结果文件。

v2.5.1 2023-12-13 12:47 UTC

README

Latest Stable Version License PHP Version

功能

  • 将PHP MvcCore应用程序打包成单个PHP文件
  • 将任何PHP应用程序打包成PHAR存档

安装

composer require mvccore/packager

配置

  • 包含整个应用程序源代码的目录(/development/...
  • 存储打包结果的代码index.php文件
  • 无需再定义PHP脚本的顺序 - 自动通过读取PHP脚本来检测顺序
  • 通过正则表达式排除模式,排除应用程序源代码中的任何文件或文件夹
  • 在最小化之前对每个打包的PHP文件应用字符串替换
  • 最小化PHTML模板
  • 最小化PHP脚本
  • PHP打包现在有4个选项,如何实现文件系统封装函数的行为
    • 严格包模式(\Packager_Php::FS_MODE_STRICT_PACKAGE)(所有内容只能从index.php中获取,对于特定类型的应用程序在IIS/PHP/op_cache中非常快)
    • 严格硬盘模式(\Packager_Php::FS_MODE_STRICT_HDD)(无文件系统封装函数)
    • PHP库模式(\Packager_Php::FS_MODE_PHP_LIBRARY)(无文件系统封装函数,无PHP代码替换,除非命名空间合并)
    • 保留包模式(\Packager_Php::FS_MODE_PRESERVE_PACKAGE)(首先检查是否可以从不index.php中获取任何内容,然后从硬盘上获取)
    • 保留硬盘模式(\Packager_Php::FS_MODE_PRESERVE_HDD)(首先检查是否可以从硬盘上获取任何内容,然后从不index.php中获取)
  • 实现了以下文件系统封装函数和常量
    • __DIR____FILE__
    • require_once();include_once();require();include();
    • new DirectoryIterator();new SplFileInfo();
    • readfile();file_get_contents();
    • file_exists();is_file();is_dir();mkdir()filemtime();filesize();
    • simplexml_load_file();parse_ini_file();md5_file();
  • 可以定义应该保留哪些文件系统封装函数不进行封装
  • 对于PHP打包 - 可以定义通过扩展名如何将文件存储在index.php结果中
    • 纯文本
    • PHP代码
    • 二进制
    • gzip内容
    • base64编码内容

示例