October CMS 使用 Composer 来发布软件包并完全兼容,因此他们的文档可作为本文的扩展。
若要在 October CMS 市场上发布您的插件或主题,您需要先成为一名作者并选择一个作者代码。此代码将决定您的包的名称,并且以后无法更改。
您的软件包应位于一个可由 October CMS 网关访问的源代码管理仓库中,例如 GitHub 或 BitBucket。对于私有软件包,服务器可以使用您在发布过程中提供的凭据来访问它们。
务必确保您的包name名称分别以**-plugin或-theme**结尾,这将有助于他人找到您的包并符合开发者指南。
当更新您的插件或主题以兼容新版本 October CMS 时,务必遵循 语义化版本控制 以保护旧站点免受破坏性更改的影响。
发布你的插件时 composer.json 文件至少应包含此 JSON 内容。请注意包名必须以 -plugin 结尾并包含 composer/installers 包作为依赖项。
{
"name": "acme/blog-plugin",
"type": "october-plugin",
"description": "Enter a meaningful description here",
"require": {
"composer/installers": "~1.0"
}
}一个带代码的插件 Acme.Blog 将拥有一个 Composer 包名 acme/blog-plugin 并将安装在 plugins/acme/blog 目录下.
发布主题时,composer.json 文件应至少包含此 JSON 内容。请注意包名必须以 -theme 结尾,并包含 composer/installers 包作为依赖项。
{
"name": "acme/boilerplate-theme",
"type": "october-theme",
"description": "Enter a meaningful description here",
"require": {
"composer/installers": "~1.0"
}
}代码为 Acme.Boilerplate 的插件 其 Composer 包名为 acme/boilerplate-theme 并将安装到 themes/boilerplate 目录中。
插件和主题都可以要求特定版本的 October CMS,并且也依赖于其他包,只需将它们包含在你的 composer.json 文件中。
只需引入 october/rain 包到所需的 目标版本模式。 以下操作将要求平台安装使用 October CMS 3.1 版或更高版本。
"require": {
"october/rain": ">=3.1"
}导航到您的主题或插件目录,并打开 composer.json 文件,以包含一个依赖项及其目标版本。以下内容将包含 Acme.Blog 插件,其 版本范围为 1.2。
"require": {
"acme/blog-plugin": "^1.2"
}你还应该确保此包包含在 插件注册文件 中找到的 $require 属性中。
导航到您的主题或插件目录并打开 composer.json 文件,以包含一个依赖项及其目标版本. 以下内容将包含 Acme.Vanilla 主题,及其版本范围为 1.2.
"require": {
"acme/vanilla-theme": "^1.2"
}确保此包包含在 主题信息文件 中找到的 require 属性中。
要创建一个使用外部包或库的新插件或主题,您应该将其安装到您的根 composer 文件中,然后将定义复制到您的插件 composer 文件中。例如,如果您希望您的插件 acme/blog-plugin 依赖于 aws/aws-sdk-php 包。
在根目录中,运行 composer require aws/aws-sdk-php。这将安装该软件包到根 composer 文件,并确保它与其他软件包兼容。
完成后,打开根目录下的 composer.json 文件以找到新定义的依赖项。例如,你会看到类似以下内容:
"require": {
"aws/aws-sdk-php": "^3.158"
}October CMS 中的软件包遵循 语义版本控制 并且 Composer 使用 Git 来确定给定版本的稳定性及影响。
语义化版本控制是一个过程,它保护旧站点免受破坏性更改的影响。需要注意的是,默认情况下,Composer 不会自动更新主版本。
以下版本路径将是一个手动升级过程:
v1.0.0 升级到 v2.0.0Composer 会自动更新次版本和补丁版本:
v1.2.0 更新到 v1.3.0v1.3.5 更新到 v1.3.6阅读 Composer 关于 Composer 版本和约束 的文章以了解更多信息。
使用 git tag 命令列出您的包的现有标签。
$ git tag
v1.0
v2.0要创建新标签 添加 (-a) 版本 附带一个可选的 (-m) 消息.
git tag -a v2.0.1 -m "Version 2 is here!"除了打标签之外,你还应该递增位于你的插件版本文件 或者 主题设置中的版本文件。 该文件指示 October CMS 网关最新版本,并且包含之前的版本历史。
为了帮助理解其工作原理:
这意味着默认分支中的版本文件应该始终与 Git 中最新的稳定标签匹配。
Composer 允许您将来自 GitHub 和其他提供商的私有仓库添加到您的 October CMS 项目。请确保您已遵循相同的说明,分别用于发布插件和主题。
在所有情况下,您都应该将私有插件或主题的副本存储在主项目可用的某个位置。plugin:install 和 theme:install 命令可用于从远程或本地源安装私有插件。这会将位置添加到您的 composer 文件中,并像安装其他任何包一样安装它。
使用 --from 选项来指定在安装时你的远程源的位置。
php artisan plugin:install Acme.Blog --from=git@github.com:acme/blog-plugin.git要使用特定版本或分支,请使用 --want 选项,例如请求 develop 分支版本。
php artisan plugin:install Acme.Blog --from=git@github.com:acme/blog-plugin.git --want=dev-develop如果你使用一个仓库的
git@地址,Composer 将优先选择源版本并克隆该仓库以便你可以继续正常推送更新。
:::
从同一项目源使用 Composer 安装插件。
php artisan plugin:install Acme.Blog --from=./plugins/acme/blog您还可以使用位于本地或网络驱动器上的源。
php artisan plugin:install Acme.Blog --from=/home/sam/private-plugins/acme-blog