esimonetti/sugar-module-packager

将Sugar定制功能打包成可加载模块的实用工具

0.2.3 2021-07-14 08:50 UTC

This package is auto-updated.

Last update: 2024-09-10 01:47:20 UTC


README

开始使用Sugar模块打包器的两种方法:

  • 从预制的模板开始(带或不含Docker)
  • 通过composer库从头开始(带或不含Docker)

Docker

如果您已安装Docker,可以方便地运行以下命令

新建包 - 从预制的模板开始

mkdir my-module
cd my-module
docker run -it -v ${PWD}:/usr/src/packager -w /usr/src/packager esimonetti/sugarmodulepackager template

新建包 - 从头开始

mkdir my-module
cd my-module
docker run -it -v ${PWD}:/usr/src/packager -w /usr/src/packager esimonetti/sugarmodulepackager new

代码打包

Sugar模块打包器安装成功后,可以通过执行以下命令(通过Docker打包代码):./vendor/bin/package-docker <版本号> 例如:./vendor/bin/package-docker 1.6

手动方法

除了Docker,还可以采用手动方法

新建包 - 从预制的模板开始

访问https://github.com/esimonetti/SugarTemplateModule并按照说明操作

新建包 - 从头开始

在模块的源目录中通过执行:composer require esimonetti/sugar-module-packager 0.2.3

`.gitignore` 应该如下所示

composer.lock
/vendor/
/pkg/
/releases/

代码打包

Sugar模块打包器安装成功后,可以通过执行以下命令(不使用Docker打包代码):./vendor/bin/package <版本号> 例如:./vendor/bin/package 1.6

附加示例

如何在代码中利用此库的一个简单示例可以在以下链接找到:https://github.com/esimonetti/SugarModulePackagerSample

打包器详细信息

  • 在 `src` 目录中包含的代码应按照它们在 `src` 中的相对路径复制到Sugar实例中
    • 有几个例外:`LICENSE` 和 `README.txt` 文件将不会复制到实例中,只复制到可安装的包中
  • `configuration` 目录
    • 必须在 `manifest.php` 中定义 `manifest` 信息
    • 可选的,可以在 `installdefs.php` 中定义 `installdefs 操作
    • 可选的,对于更复杂的使用案例,可以在 `templates.php` 文件中定义代码模板操作,由打包器在多个模块中完成
      • 可以基于多个模板操作和模式定义多个模板部分以跨多个模块复制
        • 模板配置数组的键定义了在生成输出时读取文件的包目录
        • 数组内容定义了 `directory_pattern` 树前缀,该前缀将附加为本地目录每个文件路径的前缀
          • 在 `directory_pattern` 模板配置选项中的字符串 `{MODULENAME}` 将在打包生成期间替换为当前模块名称
        • 数组内容定义了 `modules` 列表,该列表必须包含模块名称作为数组键和对象名称作为数组值
          • 本地目录模板文件中的字符串 `{MODULENAME}` 将在打包生成期间替换为配置的模块列表数组键(模块名称,通常是复数例如:Accounts
          • 您本地目录模板文件中的字符串 {OBJECTNAME} 将在生成包时替换为配置的模块列表数组值(模块的对象名称,通常为单数,例如:Account