getphred/pairity
Composer 安装命令:
composer require getphred/pairity
包简介
DAO/DTO-centric PHP ORM with Query Builder, relations, migrations/CLI, Unit of Work, and event system. Supports MySQL/MariaDB, PostgreSQL, SQLite, SQL Server, and Oracle.
关键字:
README 文档
README
Pairity is a high-performance, partitioned-model PHP ORM that strictly separates data representation (DTO) from persistence logic (DAO). It provides a fluent Query Builder, robust relationship management, and enterprise-grade features like automatic multi-tenancy, auditing, and transparent attribute encryption.
Key Features
- Partitioned Model: Clean separation between DTOs (Data) and DAOs (Persistence).
- YAML-Driven Schema: Define your tables in YAML; generate migrations and models automatically.
- Fluent Query Builder: Database-agnostic query construction with support for subqueries, joins, and set operations.
- Relationships & Eager Loading: Efficiently handle BelongsTo, HasOne, HasMany, and Polymorphic relations with N+1 prevention.
- Unit of Work: Coordinate atomic updates across multiple connections with centralized transaction management.
- Enterprise Features:
- Automatic Multi-Tenancy: Transparent data isolation via tenant scoping.
- Auditing: Automatic change tracking for sensitive models.
- Concurrency Control: Built-in Optimistic and Pessimistic locking.
- Attribute Encryption: Transparent AES-256 encryption for PII data.
- Developer Tooling: First-class CLI (
pairity) for code generation, migrations, seeding, and health checks. - Internationalization (i18n): Localized exception messages and CLI output (EN, ES, FR, DE, IT).
Installation
Install Pairity via Composer:
composer require getphred/pairity
Initialize the project structure (creates schema/, src/Models/, etc.):
vendor/bin/pairity init
Quick Start
1. Define your Schema
Create a YAML file in schema/users.yaml (Note: the schema/ directory is automatically created by the init command):
columns: id: type: bigIncrements email: type: string unique: true password: type: string encrypted: true active: type: boolean default: true relations: posts: type: hasMany target: posts
2. Generate Models
vendor/bin/pairity make:model
3. Run Migrations
vendor/bin/pairity migrate
4. Usage
Basic CRUD
use App\Models\DTO\UsersDTO; use App\Models\DAO\UsersDAO; $userDao = $container->get(UsersDAO::class); // Create $user = new UsersDTO(['email' => 'jane@example.com', 'password' => 'secret']); $userDao->save($user); // Read $user = $userDao->find(1); echo $user->email; // Update $user->setAttribute('active', false); $userDao->save($user);
Query Builder
$users = $userDao->query() ->where('active', true) ->whereIn('role', ['admin', 'editor']) ->orderBy('created_at', 'desc') ->limit(10) ->get();
Eager Loading
$users = $userDao->query() ->with('posts.comments') ->get(); foreach ($users as $user) { foreach ($user->posts as $post) { // Posts are already loaded! } }
Documentation
For detailed documentation, please refer to the SPECS.md file.
Testing
Run the test suite using PHPUnit:
vendor/bin/phpunit
License
The MIT License (MIT). Please see LICENSE.md for more information.
getphred/pairity 适用场景与选型建议
getphred/pairity 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 12 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「orm」 「migrations」 「performance」 「php」 「mysql」 「sqlite」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 getphred/pairity 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 getphred/pairity 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 getphred/pairity 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
g4 application profiler package
CSS/Javascript Minificator, Compressor and Concatenator for TYPO3 - highly configurable frontend asset optimization for CSS/JS merging, minification and compression with optional body parsing, async/defer loading, inline output, data-ignore exclusions, SRI integrity validation/calculation, external
WordPress mu-plugin to remove jQuery Migrate from the list of jQuery dependencies and to allow jQuery to enqueue before </body> instead of in the <head>.
Kinikit - PHP Application development framework MVC component
Symfony ClickhouseMigrationsBundle
Very simple SQL-based database migrations tool - a heavily stripped down fork of robmorgan/phinx
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 33
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-11