<?php include '../db.php'; include './013.model.php'; $database = new \db\database($config->hostname, $config->database, $config->username, $config->password); $database->scan('.galaxy'); //truncate previous load table records foreach ($database->context->tables as &$table) { $database->link($table->link)->query("truncate " . $table->name()); } $alpha = $database->save(new \galaxy\star('alpha', 4)); $sun = $database->save(new \galaxy\star('sun', 1)); $database->save(new \galaxy\planet($alpha, 'xxx', 2, false, 100)); $database->save(new \galaxy\planet($alpha, 'xxx', 2, false, 123));
class user { /** * primary * length 11 * @var int */ public $id; /** * data char * length 100 * @var string */ public $name; } $database = new \db\database('db_samples', new \db\link('default', $config->database, $config->username, $config->password)); $database->link('default')->debug = true; $database->add('user'); $database->update(); //create lazarus $lazarus = new \user(); $lazarus->name = 'Lazarus'; //save lazarus $database->user->save($lazarus); //kill lazarus unset($lazarus); //resurrect lazarus $lazarus = $database->user->load(1); \db\debug($lazarus); //1 stands for lazarus id //as soon as it is the first row in user table
<?php include '../db.php'; $database = new \db\database('mysql:host=127.0.0.1', 'test', 'root', '1234'); $database->debug(); $result = $database->link()->query('show databases'); echo "<pre>"; if ($result) { foreach ($result as $row) { var_export($row); } } echo "</pre>";
//in this sample we will learn how to modify field settings //it is done by documenting class and class properties //it is improtant that documentation section starts with line /** and ends with line */ include './000.config.php'; include '../db.php'; class user { /** * primary * length 11 * @var int */ public $id; /** * data char * length 100 * @var string */ public $name; } $database = new \db\database(); $database->link(new \db\link('default', $config->database, $config->username, $config->password)); $database->link('default')->debug = true; $database->default = 'db_samples'; $database->add('user'); //so if you are coming here from previous example //where user.name had not any configs you must have field 'name' in 'user' table char(128) //** and after runing update field 'name' will become char(100) because you specified it in length comment in public $name documentation $database->update(); \db\debug($database->user);
} } class option { public $id; /** * locale */ public $name; public function __construct($name_en, $name_fr) { $this->name_en = $name_en; $this->name_fr = $name_fr; } } $database = new \db\database('db_samples', new \db\link('default', $config->database, $config->username, $config->password)); $database->link('default')->debug = true; $database->locales(array(new \db\locale('en'), new \db\locale('fr'))); $database->add('user'); $database->add('group'); $database->add('option'); $database->update(); $groups = $database->group->load(\db\by('name', 'User')); if ($groups) { $group = reset($groups); } else { $group = new group('User'); $database->save($group); } \db\debug($group); $query = new \db\query();
/** * default null * @var client */ public $client; /** * @var string */ public $worker; } class client { public $id; public $name; } $database = new \db\database('db_samples', new \db\link('default', $config->database, $config->username, $config->password)); $database->link('default')->debug = true; $database->add('order'); $database->add('client'); $database->update(); $client = new client(); $client->name = 'Bill Gates'; $order = new order(); $order->name = 'Apple'; $order->client = $client; //the value of ready must be boolean //but we put 5 here $order->ready = 5; $order->income = 'there must be date time value'; //here must be an int $order->count = 1.5;
<?php include './000.config.php'; include '../db.php'; //we include source with namespace 'core' include './012.source.php'; $database = new \db\database('db_samples', new \db\link('default', $config->database, $config->username, $config->password)); $database->link('default')->debug = true; //here we scan all the classes which name begins with '\core\' //you can use '.' instead of '\' if you wish //as we do: $database->scan('core'); //define locales for localized fields //first locale is treated as default locale $database->locales(array(new \db\locale('en'), new \db\locale('ge'))); $database->update(); //you can access class handler on $database->namespace->[namespace->]name $result = $database->core->solution->load(\db\by('name', 'blog')); if ($result) { $solution = reset($result); } else { $solution = new \core\solution('blog'); $database->save($solution); } $result = $database->core->project->load(\db\by('name', 'site')); if ($result) { $project = reset($result); } else { $project = new \core\project('site', $solution); $project->title_ge = 'საიტი'; $project->title_en = 'site';
public function __construct($name) { $this->name = $name; } } //take a note we specified in public $girl comment 'enum' and also master class 'girl' as @var class girl { public $id; public $name; public function __construct($name) { $this->name = $name; } } $database = new \db\database('db_samples', new \db\link('default', $config->database, $config->username, $config->password)); $database->link('default')->debug = true; $database->add('boy'); $database->add('girl'); $database->update(); $john = new boy('John'); //\db\debug ($database->boy); $database->boy->save($john); //lets see if john is single \db\debug($john); $girls = array(new girl('Anne'), new girl('Fiona'), new girl('Nino')); //by the way this is multi save example too $database->girl->save($girls); $john->girl[] = $girls[0]; $john->girl[] = $girls[2]; //well john is single
$this->part = $part; } } /** * cache long */ class part { public $id; public $name; public function __construct($name) { $this->name = $name; } } $database = new \db\database('db_samples', new \db\link('default', $config->database, $config->username, $config->password)); $database->link('default')->debug = true; $database->add('page'); $database->add('part'); $database->update(); $parts = $database->part->load(); if (!$parts) { $parts = array(new part('register'), new part('profile'), new part('menu'), new part('password'), new part('news'), new part('gallery')); $database->part->save($parts); } $pages = $database->page->load(); if (!$pages) { $database->page->save(new page('home', array($parts[0], $parts[3], $parts[2]))); $database->page->save(new page('account', array($parts[1], $parts[4], $parts[5]))); $database->page->save(new page('service', array($parts[3], $parts[2], $parts[1]))); $database->page->save(new page('about', array($parts[2], $parts[4], $parts[0])));