roxblnfk/cycle-active-record

0.1.1 2022-05-20 12:31 UTC

README

PHP Latest Version on Packagist GitHub Tests Action Status Total Downloads dependency status

基于Cycle ORM的ActiveRecord模式。AR实体与映射器、存储库、行为和其他Cycle功能配合良好。

该包仅通过类继承向实体添加了诸如savedelete之类的代理方法。

要求

请确保您的服务器已配置以下PHP版本和扩展

安装

您可以通过composer安装此包

composer require roxblnfk/cycle-active-record

安装包后,您需要从包中注册引导加载器。

注意 如果您正在使用spiral-packages/discoverer包安装Yii 3或Spiral Framework,则无需手动注册引导加载器。它将自动注册。

Spiral Framework不使用Discoverer

更新引导加载器列表

protected const LOAD = [
    // ...
    \Cycle\ActiveRecord\Boot\CycleActiveRecordBootloader::class,
];

自定义应用程序

容器初始化后,只需在AR静态类中注册即可。

\Cycle\ActiveRecord\StaticOrigin::setContainer($container);

示例

实体

use Cycle\ActiveRecord\ActiveRecord;
use Cycle\Annotated\Annotation\Column;
use Cycle\Annotated\Annotation\Entity;

#[Entity(table: 'user')]
class User extends ActiveRecord
{
    #[Column(type: 'primary', typecast: 'int')]
    public int $id;

    public function __construct(
        #[Column(type: 'string')]
        public string $name
    ) {}
}

用法

$user1 = new User('Lia');
$user2 = new User('Zaza');

// Persisting
$user1->prepare();
$user2->save(); // Save current and prepared entities

// Find and delete
User::findByPK(10)?->delete();

// Delete multiple
$user1->prepareDeletion();
$user2->delete();

// Use SelectQuery
User::find()->where('id', '>', '10')->fetchData();

测试

composer test

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件