mirror of
https://github.com/danog/AsyncOrm.git
synced 2024-11-30 04:39:45 +01:00
Add more examples
This commit is contained in:
parent
4306bbe24f
commit
d526ae4e4d
@ -1,16 +1,39 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
use Amp\Mysql\MysqlConfig;
|
||||
use Amp\Postgres\PostgresConfig;
|
||||
use Amp\Redis\RedisConfig;
|
||||
use danog\AsyncOrm\DbObject;
|
||||
use danog\AsyncOrm\FieldConfig;
|
||||
use danog\AsyncOrm\KeyType;
|
||||
use danog\AsyncOrm\Settings\MysqlSettings;
|
||||
use danog\AsyncOrm\Settings\PostgresSettings;
|
||||
use danog\AsyncOrm\Settings\RedisSettings;
|
||||
use danog\AsyncOrm\ValueType;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
$settings = new MysqlSettings(
|
||||
new MysqlConfig("/var/run/mysqld/mysqld.sock", 0, 'daniil', database: 'test'),
|
||||
new MysqlConfig(
|
||||
host: "/var/run/mysqld/mysqld.sock",
|
||||
user: 'user',
|
||||
password: 'password',
|
||||
database: 'database'
|
||||
),
|
||||
cacheTtl: 100
|
||||
);
|
||||
$settings = new PostgresSettings(
|
||||
new PostgresConfig(
|
||||
host: "127.0.0.1",
|
||||
user: "user",
|
||||
password: "password",
|
||||
database: "database"
|
||||
),
|
||||
cacheTtl: 100
|
||||
);
|
||||
$settings = new RedisSettings(
|
||||
RedisConfig::fromUri("redis://127.0.0.1"),
|
||||
cacheTtl: 100
|
||||
);
|
||||
|
||||
$fieldConfig = new FieldConfig(
|
||||
|
87
examples/2-automatic.php
Normal file
87
examples/2-automatic.php
Normal file
@ -0,0 +1,87 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
use Amp\Mysql\MysqlConfig;
|
||||
use Amp\Postgres\PostgresConfig;
|
||||
use Amp\Redis\RedisConfig;
|
||||
use danog\AsyncOrm\Annotations\OrmMappedArray;
|
||||
use danog\AsyncOrm\DbArray;
|
||||
use danog\AsyncOrm\DbAutoProperties;
|
||||
use danog\AsyncOrm\FieldConfig;
|
||||
use danog\AsyncOrm\KeyType;
|
||||
use danog\AsyncOrm\Settings;
|
||||
use danog\AsyncOrm\Settings\MysqlSettings;
|
||||
use danog\AsyncOrm\Settings\PostgresSettings;
|
||||
use danog\AsyncOrm\Settings\RedisSettings;
|
||||
use danog\AsyncOrm\ValueType;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
$settings = new MysqlSettings(
|
||||
new MysqlConfig(
|
||||
host: "/var/run/mysqld/mysqld.sock",
|
||||
user: 'user',
|
||||
password: 'password',
|
||||
database: 'database'
|
||||
),
|
||||
cacheTtl: 100
|
||||
);
|
||||
$settings = new PostgresSettings(
|
||||
new PostgresConfig(
|
||||
host: "127.0.0.1",
|
||||
user: "user",
|
||||
password: "password",
|
||||
database: "database"
|
||||
),
|
||||
cacheTtl: 100
|
||||
);
|
||||
$settings = new RedisSettings(
|
||||
RedisConfig::fromUri("redis://127.0.0.1"),
|
||||
cacheTtl: 100
|
||||
);
|
||||
|
||||
$fieldConfig = new FieldConfig(
|
||||
'tableName',
|
||||
$settings,
|
||||
KeyType::STRING,
|
||||
ValueType::OBJECT
|
||||
);
|
||||
|
||||
$db = $fieldConfig->build();
|
||||
|
||||
/**
|
||||
* Main class of your application.
|
||||
*/
|
||||
final class Application
|
||||
{
|
||||
use DbAutoProperties;
|
||||
|
||||
/**
|
||||
* This field is automatically connected to the database using the specified Settings.
|
||||
*/
|
||||
#[OrmMappedArray(KeyType::STRING, ValueType::INT)]
|
||||
private DbArray $dbProperty;
|
||||
|
||||
public function __construct(
|
||||
Settings $settings,
|
||||
string $tablePrefix
|
||||
) {
|
||||
$this->initDbProperties($settings, $tablePrefix);
|
||||
}
|
||||
|
||||
public function businessLogic(): void
|
||||
{
|
||||
$this->dbProperty['someKey'] = 123;
|
||||
var_dump($this->dbProperty['someKey']);
|
||||
}
|
||||
|
||||
public function shutdown(): void
|
||||
{
|
||||
// Flush all database caches, saving all changes.
|
||||
$this->saveDbProperties();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$app = new Application($settings, 'tablePrefix');
|
||||
$app->businessLogic();
|
||||
$app->shutdown();
|
@ -20,10 +20,10 @@ use Attribute;
|
||||
use danog\AsyncOrm\KeyType;
|
||||
use danog\AsyncOrm\ValueType;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Attribute use to autoconfigure ORM properties.
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
#[Attribute(Attribute::TARGET_PROPERTY)]
|
||||
final class OrmMappedArray
|
||||
|
Loading…
Reference in New Issue
Block a user