October CMS 使用 Composer 发布包并且完全兼容,因此他们的文档可以作为本文的扩展。
要在 October CMS 市场发布您的插件或主题,您首先需要成为一名作者并选择一个作者代码。此代码将决定您的软件包的名称,并且之后无法更改。
您的包应位于一个源代码控制仓库中,该仓库可由 October CMS 网关访问,例如 GitHub 或 BitBucket。对于私有包,服务器可以使用您在发布过程中提供的凭据访问它们。
务必确保您的包名以**-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 版本和约束 的文章以了解更多信息。
使用 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