Active Record database abstraction layer
This package provides ActiveRecord library. It is used in Yii Framework but is supposed to be usable separately.
Packages | PHP | Versions | CI-Actions |
---|---|---|---|
[db-mssql] | 7.4 - 8.0 | 2017 - 2022 | |
[db-mysql] | 7.4 - 8.0 | 5.7 - 8.0 | |
[db-oracle] | 7.4 - 8.0 | 11 - 21 | |
[db-pgsql] | 7.4 - 8.0 | 9.0 - 15.0 | |
[db-sqlite] | 7.4 - 8.0 | 3:latest |
The package could be installed via composer:
composer require yiisoft/active-record
Note: You must install the repository of the implementation to use.
Example:
composer require yiisoft/db-sqlite
web.php:
<?php
declare(strict_types=1);
use Yiisoft\Db\Connection\ConnectionInterface;
use Yiisoft\Db\Sqlite\Connection;
use Yiisoft\Db\Sqlite\Driver;
/**
* config ConnectionInterface::class
*/
return [
ConnectionInterface::class => [
'class' => Connection::class,
'__construct()' => [
'driver' => new Driver($params['yiisoft/db-sqlite']['dsn']),
],
]
];
params.php
<?php
declare(strict_types=1);
return [
'yiisoft/db-sqlite' => [
'dsn' => 'sqlite:' . dirname(__DIR__) . '/runtime/yiitest.sq3',
]
]
<?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 getTableName(): 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', '[email protected]');
$user->save();
}
}
<?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', '[email protected]');
$user->save();
}
}
If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.
Check the testing instructions to learn about testing.
The Yii ActiveRecord Library is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.