terabytesoft / active-record
Yii ActiveRecord 库
该软件包的官方仓库似乎已消失,因此该软件包已被冻结。
dev-main
2022-02-09 21:22 UTC
Requires
- php: ^8.0
- ext-json: *
- terabytesoft/db: @dev
- yiisoft/arrays: ^2.0
- yiisoft/factory: ^1.0
- yiisoft/strings: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.4
- roave/infection-static-analysis-plugin: ^1.14
- terabytesoft/db-mssql: @dev
- terabytesoft/db-mysql: @dev
- terabytesoft/db-oracle: @dev
- terabytesoft/db-pgsql: @dev
- terabytesoft/db-sqlite: @dev
- vimeo/psalm: ^4.2
- yiisoft/aliases: ^2.0
- yiisoft/di: ^1.0
- yiisoft/event-dispatcher: ^1.0
- yiisoft/json: ^1.0
- yiisoft/log: ^1.0
This package is auto-updated.
Last update: 2023-05-10 00:11:46 UTC
README
Yii ActiveRecord 库
该软件包提供 ActiveRecord 库。它用于 Yii 框架,但也可以单独使用。
支持的数据库
软件包 | PHP | 版本 | CI-Actions |
---|---|---|---|
[db-mssql] | 7.4 - 8.0 | 2017 - 2019 | |
[db-mysql] | 7.4 - 8.0 | 5.7 - 8.0 | |
[db-oracle] | 7.4 - 8.0 | 11c - 12c | |
[db-pgsql] | 7.4 - 8.0 | 9.0 - 13.0 | |
[db-sqlite] | 7.4 - 8.0 | 3:latest | |
[db-redis] | 7.4 - 8.0 | 4.0 - 6.0 |
安装
该软件包可以通过 composer 安装
composer require yiisoft/active-record
注意:您必须安装实现仓库才能使用。
示例
composer require yiisoft/db-mysql
配置容器 DI 自动注入
web.php
<?php declare(strict_types=1); use Yiisoft\Db\Connection\ConnectionInterface; use Yiisoft\Db\Sqlite\Connection as SqliteConnection; /** * config ConnectionInterface::class */ return [ ConnectionInterface::class => [ 'class' => SqliteConnection::class, '__construct()' => [ 'dsn' => $params['yiisoft/db-sqlite']['dsn'], ] ] ];
params.php
<?php declare(strict_types=1); return [ 'yiisoft/db-sqlite' => [ 'dsn' => 'sqlite:' . dirname(__DIR__) . '/runtime/yiitest.sq3', ] ]
定义您的活动记录,例如 User.php
<?php declare(strict_types=1); namespace App\Entity; use Yiisoft\ActiveRecord\ActiveRecord; /** * Entity User. * * Database fields: * @property int $id * @property string $username * @property string $email **/ final class User extends ActiveRecord { public function tableName(): string { return '{{%user}}'; } }
在控制器或动作中
<?php declare(strict_types=1); namespace App\Action; use App\Entity\User; use Psr\Http\Message\ResponseInterface; final class Register { public function register( User $user ): ResponseInterface { /** Connected AR by di autowired. */ $user->setAttribute('username', 'yiiliveext'); $user->setAttribute('email', 'yiiliveext@mail.ru'); $user->save(); } }
配置工厂 DI
web.php
<?php declare(strict_types=1); use Yiisoft\ActiveRecord\ActiveRecordFactory; use Yiisoft\Db\Connection\ConnectionInterface; use Yiisoft\Db\Sqlite\Connection as SqliteConnection; use Yiisoft\Definitions\Reference; /** * config SqliteConnection::class */ return [ SqliteConnection::class => [ 'class' => SqliteConnection::class, '__construct()' => [ 'dsn' => $params['yiisoft/db-sqlite']['dsn'], ] ], ActiveRecordFactory::class => [ 'class' => ActiveRecordFactory::class, '__construct()' => [ null, [ConnectionInterface::class => Reference::to(SqliteConnection::class)], ] ] ];
params.php
<?php declare(strict_types=1); return [ 'yiisoft/db-sqlite' => [ 'dsn' => 'sqlite:' . dirname(__DIR__) . '/runtime/yiitest.sq3', ] ]
定义您的活动记录,例如 User.php
<?php declare(strict_types=1); namespace App\Entity; use Yiisoft\ActiveRecord\ActiveRecord; /** * Entity User. * * Database fields: * @property int $id * @property string $username * @property string $email **/ final class User extends ActiveRecord { public function tableName(): string { return '{{%user}}'; } }
在控制器或动作中
<?php declare(strict_types=1); namespace App\Action; use App\Entity\User; use Psr\Http\Message\ResponseInterface; use Yiisoft\ActiveRecord\ActiveRecordFactory; final class Register { public function register( ActiveRecordFactory $arFactory ): ResponseInterface { /** Connected AR by factory di. */ $user = $arFactory->createAR(User::class); $user->setAttribute('username', 'yiiliveext'); $user->setAttribute('email', 'yiiliveext@mail.ru'); $user->save(); } }
单元测试
该软件包使用 PHPUnit 进行测试。要运行测试
./vendor/bin/phpunit
变异测试
该软件包的测试使用 Infection 变异框架进行测试。要运行它
./vendor/bin/infection
静态分析
代码使用 Psalm 进行静态分析。要运行静态分析
./vendor/bin/psalm
支持项目
关注更新
许可
Yii ActiveRecord 库是免费软件。它根据 BSD 许可证的条款发布。有关更多信息,请参阅 LICENSE
。
由 Yii 软件 维护。