esimonetti / sugar-module-packager
将Sugar定制功能打包成可加载模块的实用工具
0.2.3
2021-07-14 08:50 UTC
Requires
- php: >=5.6
Requires (Dev)
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
)
- 本地目录模板文件中的字符串 `
- 可以基于多个模板操作和模式定义多个模板部分以跨多个模块复制
- 必须在 `