devuri/wp-option

WordPress 选项管理的一个简单综合界面,提供面向对象的获取、添加、更新和删除操作。

v0.3.1 2024-02-29 16:50 UTC

This package is auto-updated.

Last update: 2024-09-29 18:12:16 UTC


README

WP Option 被设计为提供面向对象的接口,用于管理 WordPress 选项,简化在 WordPress 中获取、添加、更新和删除选项的过程。它充当 WordPress 选项 API 的 桥梁,增强代码的可读性和可维护性。

功能

  • 面向对象方法:将 WordPress 选项管理封装在一个单一的、统一的类中。
  • 依赖注入:通过允许自定义获取选项的函数,便于测试和灵活性。
  • 综合选项管理:支持对 WordPress 选项进行获取、添加、更新和删除操作。
  • 错误日志:基本错误日志,用于输入验证,有助于调试和问题解决。

要求

  • PHP 7.2 或更高版本
  • WordPress 4.7 或更高版本

安装

通过 Composer 安装此包

composer require devuri/wp-option

使用

初始化

首先,导入 WPOptionBridge 类并实例化它

use Urisoft\WPOptionBridge;

$optionBridge = new WPOptionBridge();

获取选项

使用 get_option 方法检索选项值

$siteName = $optionBridge->get_option('blogname', 'Default Site Name');

添加选项

使用 add_option 方法添加新选项

$optionBridge->add_option('my_custom_option', 'My Custom Value');

更新选项

使用 update_option 方法更新现有选项

$optionBridge->update_option('my_custom_option', 'Updated Custom Value');

删除选项

使用 delete_option 方法删除选项

$optionBridge->delete_option('my_custom_option');

高级使用

自定义选项检索

WPOptionBridge 类的设计考虑到灵活性,允许开发者注入自定义函数来检索选项值。这对于单元测试特别有用,在单元测试中,你可能想要将类与 WordPress 数据库隔离开来,或者与自定义缓存层或选项存储机制集成。

使用自定义可调用函数

WPOptionBridge 的 set_option_getter 接受一个 callable 参数,该参数替换默认的 WordPress get_option 函数。在 PHP 中,callable 是可以像函数一样调用的东西。这包括实际函数、静态类方法和对象方法等。

以下是利用此功能的方法

use Urisoft\WPOptionBridge;

// Define a custom function for getting options.
// This is a simple example that mimics the get_option behavior.
$customOptionGetter = function($option_name, $default = false) {
    // Custom logic to retrieve an option value
    // For example, you might want to check a local cache first
    $value = /* your custom retrieval logic */;

    return $value !== null ? $value : $default;
};


$optionBridge = new Urisoft\WPOptionBridge();

// Set a custom option getter
$optionBridge->set_option_getter($customOptionGetter);

在这个例子中,$customOptionGetter 是一个自定义函数,用于检索选项值。当创建 WPOptionBridge 的新实例时,将此函数作为参数传递。当调用 get_option 时,该类将使用此函数而不是默认的 WordPress get_option 函数。

自定义可调用函数的使用场景

  • 单元测试:通过注入返回预定义值的自定义函数,可以在不依赖 WordPress 环境或数据库的情况下测试使用 WPOptionBridge 的代码的行为。
  • 缓存:如果你的应用程序有自定义的选项缓存层,可以注入一个函数,该函数首先检查缓存,然后再回退到数据库。
  • 自定义存储:对于将选项存储在 WordPress 数据库之外的应用程序(如不同的数据库或文件),可以使用此功能将 WPOptionBridge 集成到你的存储机制中。

最佳实践

  • 确保你的自定义可调用函数符合预期的签名:它应该接受一个选项名称和一个可选的默认值,如果找到选项,则返回选项值,如果没有找到,则返回默认值。
  • 在用于缓存时,确保适当地处理缓存失效,以避免数据过时问题。

自定义选项管理

本类提供了在管理WordPress选项方面的完全灵活性,允许您为选项操作定义自定义函数。这对于单元测试、与缓存系统集成或使用自定义存储机制进行WordPress选项非常有用。

设置自定义函数

您可以使用以下方法为每个操作设置自定义函数:

  • set_option_getter(callable $function):自定义选项检索的方式。
  • set_option_adder(callable $function):自定义选项添加的方式。
  • set_option_updater(callable $function):自定义选项更新的方式。
  • set_option_deleter(callable $function):自定义选项删除的方式。

每个方法都接受一个callable参数,它应该是一个与相应的WordPress函数预期签名匹配的函数。

示例

use Urisoft\WPOptionBridge;

$optionBridge = new WPOptionBridge();

// Custom function for retrieving options
$optionBridge->set_option_getter(function($name, $default = false) {
    // Custom logic to retrieve an option
});

// Custom function for adding options
$optionBridge->set_option_adder(function($name, $value) {
    // Custom logic to add an option
});

// Custom function for updating options
$optionBridge->set_option_updater(function($name, $value) {
    // Custom logic to update an option
});

// Custom function for deleting options
$optionBridge->set_option_deleter(function($name) {
    // Custom logic to delete an option
});

使用场景

  • 单元测试:模拟选项函数,以在不与数据库交互的情况下测试您的应用程序逻辑。
  • 缓存:实现与缓存层协同工作的自定义获取器和设置器,以减少数据库负载。
  • 自定义存储:集成自定义存储系统,例如外部数据库或基于文件的存储系统。

利用这些自定义功能,WPOptionBridge成为了一个适应性强的工具,可以适应各种架构和测试环境,增强WordPress项目的模块化和可测试性。

贡献

欢迎贡献!请阅读我们的贡献指南,了解我们的行为准则和提交拉取请求的过程。

许可

WP Option Bridge是开源软件,根据MIT许可授权。