roxblnfk / cycle-active-record
循环Active Record
0.1.1
2022-05-20 12:31 UTC
Requires
- php: >=8.0
- cycle/orm: ^2.0
Requires (Dev)
- cycle/entity-behavior: ^1.0
- mockery/mockery: ^1.5
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
- spiral/boot: ^2.10
- spiral/cycle-bridge: ^1.1
- spiral/logger: ^1.10
- spiral/testing: ^1.0
- vimeo/psalm: ^4.9
This package is auto-updated.
Last update: 2024-09-09 07:41:21 UTC
README
基于Cycle ORM的ActiveRecord模式。AR实体与映射器、存储库、行为和其他Cycle功能配合良好。
该包仅通过类继承向实体添加了诸如save
和delete
之类的代理方法。
要求
请确保您的服务器已配置以下PHP版本和扩展
- PHP 8.0+
- Cycle ORM的一个适配器
spiral/cycle-bridge
包用于Spiral Frameworkyiisoft/yii-cycle
^2.0包用于Yii 3
安装
您可以通过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)。有关更多信息,请参阅许可证文件。