定制 yii1x/active-record 二次开发

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

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

yii1x/active-record

Composer 安装命令:

composer require yii1x/active-record

包简介

Yii 1.1 Active Record, extracted and modernized for PHP 8.4+

README 文档

README

Yii 1.1 Active Record, extracted and modernized for PHP 8.4+.

Familiar API. Zero framework lock-in.

Packagist License

What is it?

This package is the Active Record component from Yii 1.1, extracted and refactored to run on PHP 8.4+ without requiring the full Yii framework.

  • ✅ Same API you know from Yii 1
  • ✅ PHP 8 types and attributes support
  • ✅ No Yii::app() dependency
  • ✅ Works with any PSR-11 compatible container

Requirements

  • PHP ≥ 8.4
  • PSR-11 ContainerInterface (required)
  • Optional PSR dependencies (if used in your app):
    • Psr\Log\LoggerInterface
    • Psr\SimpleCache\CacheInterface
    • Psr\EventDispatcher\EventDispatcherInterface

Installation

composer require yii1x/active-record

Bootstrap

Before using any model, initialize the ORM context once per application lifecycle:

use Yii1x\ActiveRecord\ORMContext;

ORMContext::bootstrap($container, debug: false);

Where $container is your PSR-11 container.

The container must be able to return a configured database connection instance by name (e.g., 'db' or 'yourDbName').

This can be:

  • An instance of Yii1x\ActiveRecord\Db\DbConnection
  • Any class extending DbConnection

Example configuration (from Yii 3):

<?php
return [
    'db_name' => [
        'class' => \Yii1x\ActiveRecord\Db\DbConnection::class,
        '__construct()' => [
            'dsn' => 'mysql:host=db;port=3306;dbname=yii3',
            'username' => 'root',
            'password' => 'root',
            'connectionName' => 'db_name',
        ],
    ],
];

Then in your models, specify which connection to use:

#[Database(name: 'db_name')]
class User extends ActiveRecord
{
    // ...
}

Define a Model

Use PHP 8 attributes instead of class properties:

use Yii1x\ActiveRecord\ActiveRecord;
use Yii1x\ActiveRecord\Attributes\Table;
use Yii1x\ActiveRecord\Attributes\Database;

#[Table(name: 'user')]
#[Database(name: 'db_name')]
class User extends ActiveRecord
{
    public function relations(): array
    {
        return [
            'posts' => [self::HAS_MANY, Post::class, 'user_id'],
        ];
    }
}

Querying (familiar Yii 1 style)

// Find one
$user = User::model()->findByAttributes(['email' => 'test@example.com']);

// new fluent query builder
$users = User::queryBuilder()
    ->where('status', 1)
    ->orderBy('created_at DESC')
    ->limit(10)
    ->with('posts')
    ->findAll();

Framework Agnostic

Works with any PSR-11 container (as shown in the Yii 3 example above).

No Yii framework required. No global state. Just Active Record.

yii1x/active-record 适用场景与选型建议

yii1x/active-record 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 1, 最近一次更新时间为 2026 年 02 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 yii1x/active-record 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 yii1x/active-record 我们能提供哪些服务?
定制开发 / 二次开发

基于 yii1x/active-record 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: Unknown
  • 更新时间: 2026-02-24