picocms/pico-deprecated

这是 Pico 官方的 PicoDeprecated 插件。Pico 是一个极其简单、速度极快、基于扁平文件的 CMS。

v3.0.0-alpha.2 2020-12-24 16:52 UTC

README

这是 Pico 官方 PicoDeprecated 插件的仓库。

Pico 是一个极其简单、速度极快、基于扁平文件的 CMS。更多信息请访问 http://picocms.org/

PicoDeprecated 的目的是通过重新引入被从 Pico 核心中移除的特性,来保持与旧版本的 Pico 的向后兼容性。例如,它会触发旧事件(如 Pico 1.0 之前使用的 before_render 事件)并读取使用 PHP 编写的配置文件(如 Pico 2.0 之前使用的 config/config.php)。

有关如何贡献或获取帮助的信息,请参阅 picocms/Pico

安装

通常您不需要手动安装此插件,它包含在 Pico 的预构建发布包和默认依赖项 picocms/pico-composer 中。

如果您使用仅兼容 Pico 最新 API 版本的插件和主题,可以安全地从您的 Pico 安装中删除 PicoDeprecated 或禁用插件(请参阅下方的“使用”部分)。但是,如果您不确定这一点,请保留它不变——它不会造成伤害... 😉

如果您使用基于 composer 的 Pico 安装,并希望删除或安装 PicoDeprecated,请打开服务器上的 shell 并导航到 Pico 的安装目录(例如 /var/www/html)。运行 composer remove picocms/pico-deprecated 以删除 PicoDeprecated,或运行 composer require picocms/pico-deprecated(通过 Packagist.org)来安装 PicoDeprecated

如果您更愿意使用 Pico 的预构建发布包之一,最好禁用 PicoDeprecated 并不要实际删除它。原因是,PicoDeprecated 是 Pico 预构建发布包的一部分,因此当更新 Pico 时,它将自动重新安装。但是,如果您确实想删除 PicoDeprecated,请简单地将 Pico 安装目录中的 plugins/PicoDeprecated 目录(例如 /var/www/html)删除。如果您想安装 PicoDeprecated,您必须在服务器上首先创建一个空的 plugins/PicoDeprecated 目录,下载与您的 Pico 安装版本匹配的 PicoDeprecated 版本,并将所有包含的文件(特别是 PicoDeprecated.php 以及 lib/plugins/vendor/ 目录)上传到该 plugins/PicoDeprecated 目录中(结果为 plugins/PicoDeprecated/PicoDeprecated.php)。

PicoDeprecated的版本严格遵循Pico核心的版本。您绝对不能使用与Pico核心版本不匹配的PicoDeprecated版本(例如,PicoDeprecated 2.0.1与Pico 2.0.0不兼容)。如果您正在使用基于composer的Pico安装,只需使用版本约束如^2.0即可——PicoDeprecated将确保其版本与Pico的版本匹配。即使您正在使用Pico的预构建发布包之一,您也不必担心任何事情——匹配的PicoDeprecated版本已经是Pico预构建发布包的一部分。

使用方法

您可以通过在您的config/config.yml中添加PicoDeprecated.enabled: false来显式禁用PicoDeprecated。如果您想重新启用PicoDeprecated,只需从您的config/config.yml中删除此行即可。PicoDeprecated本身没有配置选项,它根据是否存在需要这些特性的插件和/或主题来启用和禁用其所有功能。

PicoDeprecated的功能分为各种所谓的“兼容性插件”。每个旧API版本都有一个兼容性插件(Pico 0.9及以前使用API版本0,Pico 1.0使用API版本1,Pico 2.0使用API版本2;当前API版本是版本3,由Pico 2.1使用),一个用于插件,另一个用于主题。它们的目的在于重新引入插件和主题可能依赖的API版本中的特性。例如,插件API兼容性插件负责模拟旧的Pico核心事件(如Pico 0.9及以前使用的before_render事件)。主题API兼容性插件将注册旧Twig变量(如Pico 1.0使用的is_front_page Twig变量)。如果您使用API版本2安装插件,将加载相应的PicoPluginApi2CompatPlugin。所有插件API兼容性插件也依赖于它们各自的主题对应版本,因此也会加载PicoThemeApi2CompatPlugin。此外,所有兼容性插件都依赖于它们各自的API后继者。

插件提供了一个简单的API,允许其他插件加载它们自己的兼容性插件。作为插件开发者,您可以使用PicoDeprecated::loadCompatPlugin(PicoCompatPluginInterface $compatPlugin)方法来加载自定义兼容性插件。使用PicoDeprecated::getCompatPlugins()来返回所有已加载兼容性插件的列表。您还可以使用PicoDeprecated::getPlugins(int $apiVersion)方法来返回所有使用特定API版本的Pico插件的列表。如果您只想在特定API版本的插件上触发自定义事件,请使用PicoDeprecated::triggerEvent(int $apiVersion, string $eventName, array $parameters = [])。此外,PicoDeprecated还触发自定义的onPicoDeprecated(PicoDeprecated $picoDeprecated)事件。

获取帮助

请参阅我们主存储库中的“获取帮助”部分

贡献

请参阅我们主存储库中的“贡献”部分

通过向Pico贡献,您接受并同意针对您提交给Pico的当前和未来贡献的开发者证书。请参阅我们主存储库中CONTRIBUTING.md“开发者证书”部分