maartenvr98 / cakephp-settings
CakePHP 设置插件
Requires
- php: ^8.0
- cakephp/orm: ^4.0
This package is auto-updated.
Last update: 2024-09-15 11:26:32 UTC
README
设置插件允许您在数据库中管理设置(通常与cake的Configure类一起使用)。
-
易于使用:您可以通过
Setting类使用Configure::read()和Configure::write()方法。 -
此外,您还可以通过控制台读取和写入设置。
-
最后但同样重要的是:如果您使用CakeAdmin 插件,您将获得一个自动生成的表单 :).
注意:设置插件以前缀为主。例如:
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- 使用类型,如text、select等。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的代码。