定制 hollisho/wp-orm 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

hollisho/wp-orm

Composer 安装命令:

composer require hollisho/wp-orm

包简介

Eloquent-like ORM for WordPress with read-write splitting and multisite support

README 文档

README

Eloquent-like ORM for WordPress with advanced features.

Features

  • 🔗 Fluent Query Builder - Chain methods for elegant queries
  • 📖 Read-Write Splitting - Separate read and write database connections
  • 🌐 Multisite Support - Automatic table prefix handling for WordPress multisite
  • 🔄 Relationships - HasOne, HasMany, BelongsTo, ManyToMany
  • 📦 Collections - Powerful collection methods
  • 🎯 Model Events - Hooks for creating, updating, deleting
  • 🔍 Scopes - Reusable query constraints

Installation

composer require hollisho/wp-orm

Quick Start

use WPOrm\Model\Model;

class Post extends Model
{
    protected static string $table = 'posts';
    
    public function author()
    {
        return $this->belongsTo(User::class, 'post_author');
    }
}

// Query
$posts = Post::where('post_status', 'publish')
    ->orderBy('post_date', 'desc')
    ->limit(10)
    ->get();

// Find by ID
$post = Post::find(1);

// Relationships
$author = $post->author;

Configuration

Basic Setup

use WPOrm\Database\ConnectionManager;

ConnectionManager::configure([
    'default' => 'mysql',
    'connections' => [
        'mysql' => [
            'driver' => 'mysql',
            'host' => DB_HOST,
            'database' => DB_NAME,
            'username' => DB_USER,
            'password' => DB_PASSWORD,
            'charset' => DB_CHARSET,
            'prefix' => $GLOBALS['wpdb']->prefix,
        ]
    ]
]);

Read-Write Splitting

ConnectionManager::configure([
    'default' => 'mysql',
    'connections' => [
        'mysql' => [
            'read' => [
                'host' => '192.168.1.2',
            ],
            'write' => [
                'host' => '192.168.1.1',
            ],
            'driver' => 'mysql',
            'database' => DB_NAME,
            'username' => DB_USER,
            'password' => DB_PASSWORD,
            'charset' => DB_CHARSET,
            'prefix' => $GLOBALS['wpdb']->prefix,
        ]
    ]
]);

Multisite Support

// Automatically uses the correct table prefix for the current site
$posts = Post::onSite(2)->where('post_status', 'publish')->get();

// Or use global tables
$users = User::global()->get();

License

MIT

统计信息

  • 总下载量: 56
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-05