elhardoum/meta-php

简化将元数据保存到数据库的过程,灵感来源于WordPress的元数据(用户、选项、文章等)

1.0 2017-07-25 13:02 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:26:30 UTC


README

简化将元数据保存到数据库的过程,灵感来源于WordPress的元数据(用户、选项、文章等)

关于

此辅助类允许您将自定义元数据保存到数据库,并使操作和检索这些数据变得相当容易,性能更是锦上添花。

默认情况下,一旦您更新元数据或首次检索它,它就会被存储到全局变量中,以避免多次查询。

在我的配置中,我已配置Redis,缓存这些元数据以提升性能更为便捷。

安装

  1. 使用composer要求该包

composer require "elhardoum/meta-php:*@dev"

  1. 创建meta
create table if not exists meta (
  `object_id` bigint(20) default 0,
  `meta_key` varchar(255) not null,
  `meta_value` LONGTEXT not null,
  primary key(meta_key, object_id)
);
  1. 定义数据库凭据,并将loader.php文件包含到您的设置中
defined ( 'DB_HOST' ) || define ( 'DB_HOST', '<database-host>' );
defined ( 'DB_NAME' ) || define ( 'DB_NAME', '<database-name>' );
defined ( 'DB_USER' ) || define ( 'DB_USER', '<database-user>' );
defined ( 'DB_PASS' ) || define ( 'DB_PASS', '<database-password>' );

include '/path/to/meta-php/Src/loader.php';
  1. 现在享受API带来的便利!

API

您可以使用以下API存储任何类型的对象。数据在保存前进行序列化,在检索后进行反序列化。无需数据净化或转义,PDO为您处理这些。

此存储库包含全局命名空间中的默认元数据函数。以下是一些用法示例

  1. 选项
// get
get_option( $option_name, $default_value=null );

// update
update_option( $option_name, $option_value );

// delete
delete_option( $option_name );

// delete all
delete_all_options();
  1. 用户元数据
// get
get_user_meta( $user_id, $meta_key, $default_value=null );

// update
update_user_meta( $user_id, $meta_key, $meta_value );

// delete
delete_user_meta( $user_id, $meta_key );

// delete all
delete_all_user_meta( $user_id );
  1. 文章元数据
// get
get_post_meta( $post_id, $meta_key, $default_value=null );

// update
update_post_meta( $post_id, $meta_key, $meta_value );

// delete
delete_post_meta( $post_id, $meta_key );

// delete all
delete_all_post_meta( $post_id );

您可以自由创建自定义组并使用它。

要使用类MetaMetaPHP\Meta),请确保也包含数据库类Database(同一命名空间)。

use MetaPHP\Meta;

$Meta = Meta::instance(true);
$Meta->group('custom'); // set a custom group for the meta

$Meta->get(
  $key, // meta key
  $object_id, // if required, like in users, posts (the ID) defaults to null,
  $default_value=null // a default value to be returned, not required
);

$Meta->update(
  $key, // meta key
  $value, // a value
  $object_id=null // if required, like in users, posts (the ID) defaults to null,
);

$Meta->delete(
  $key, // meta key
  $object_id=null // if required, like in users, posts (the ID) defaults to null,
);

... 更多内容即将到来。