elhardoum / meta-php
简化将元数据保存到数据库的过程,灵感来源于WordPress的元数据(用户、选项、文章等)
1.0
2017-07-25 13:02 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-29 02:26:30 UTC
README
简化将元数据保存到数据库的过程,灵感来源于WordPress的元数据(用户、选项、文章等)
关于
此辅助类允许您将自定义元数据保存到数据库,并使操作和检索这些数据变得相当容易,性能更是锦上添花。
默认情况下,一旦您更新元数据或首次检索它,它就会被存储到全局变量中,以避免多次查询。
在我的配置中,我已配置Redis,缓存这些元数据以提升性能更为便捷。
安装
- 使用composer要求该包
composer require "elhardoum/meta-php:*@dev"
- 创建
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) );
- 定义数据库凭据,并将
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';
- 现在享受API带来的便利!
API
您可以使用以下API存储任何类型的对象。数据在保存前进行序列化,在检索后进行反序列化。无需数据净化或转义,PDO为您处理这些。
此存储库包含全局命名空间中的默认元数据函数。以下是一些用法示例
- 选项
// 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();
- 用户元数据
// 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 );
- 文章元数据
// 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 );
您可以自由创建自定义组并使用它。
要使用类Meta(MetaPHP\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, );
... 更多内容即将到来。