maartenvr98/cakephp-settings

CakePHP 设置插件

安装次数: 3,113

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 18

开放问题: 0

类型:cakephp-plugin

3.0.2 2023-05-15 08:43 UTC

This package is auto-updated.

Last update: 2024-09-15 11:26:32 UTC


README

设置插件允许您在数据库中管理设置(通常与cake的Configure类一起使用)。

注意:设置插件以前缀为主。例如:Prefix.Name

安装

您可以使用composer将此插件安装到您的CakePHP应用程序中。对于现有应用程序,您可以将以下内容添加到您的composer.json文件中

"require": {
	"maartenvr98/cakephp-settings": "dev-master"
}

然后运行/composer update

要求

  • CakePHP 4.x
  • PHP 8.x

配置

您需要将以下行添加到应用程序的bootstrap.php文件中

Plugin::load('Settings', ['bootstrap' => true, 'routes' => true]);

// or run in your shell

$ bin/cake plugin load -b -r Settings

接下来,您需要创建表。使用以下命令初始化设置表。

$ bin/cake migrations migrate -p Settings

用法

Setting类与CakePHP自带的Configure类工作方式相同。

您可以使用以下方式包含该类

use Settings\Core\Setting;

写入

您可以使用以下方式写入设置

Setting::write('App.Name', 'Custom Name');

Custom Name现在已写入数据库,键为App.Name。空数组可以包含多个选项

读取

现在我们将从刚才创建的键中读取值。使用

Setting::read('App.Name');

这将返回我们的值:Custom Name

注册

为了防止迁移到另一个环境时缺失配置,引入了register方法。使用以下方法确保配置存在于您的应用程序中

Setting::register('App.Name', 'Default Value', []);

选项

以下选项可用

  • description - 设置的描述。
  • type - 使用类型,如textselect等。
  • options - 包含可用选项的数组。与type = select选项结合使用时,这将生成带有给定选项的选择框。
  • editable - 如果设置应可编辑则为布尔值。
  • weight - 设置的权重(顺序)。

选项键可以处理多种类型。您可以定义一个选项数组,也可以创建一个接近的数组以防止在每次请求时进行长查询。示例

Setting::register('App.Index', false, [
    'options' => function() {
        return TableRegistry::get('Blogs')->find('list')->toArray();
    }
]);

使用设置表单

如果您使用CakeAdmin 插件,我们将创建一个默认表单,您可以在此编辑设置(如果字段editable设置为1)。设置插件将自动添加一个菜单项到管理区域。

如果您点击菜单项,您将看到一个包含所选前缀的所有可编辑设置的列表(或默认为App)。

注册

要将前缀添加到设置列表,请使用以下

Configure::write('Settings.Prefixes.Test', 'Test');

致谢

此作品基于CakeManager的代码