43 lines
		
	
	
		
			991 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			991 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| require __DIR__.'/../vendor/autoload.php';
 | |
| 
 | |
| use nulib\cl;
 | |
| use nulib\db\Capacitor;
 | |
| use nulib\db\CapacitorChannel;
 | |
| use nulib\db\mysql\Mysql;
 | |
| use nulib\db\mysql\MysqlStorage;
 | |
| use nulib\output\msg;
 | |
| use nulib\output\std\StdMessenger;
 | |
| 
 | |
| msg::set_messenger_class(StdMessenger::class);
 | |
| 
 | |
| $db = new Mysql([
 | |
|   "type" => "mysql",
 | |
|   "name" => "mysql:host=mysql.devel.self;dbname=jclain;charset=utf8",
 | |
|   "user" => "jclain",
 | |
| ]);
 | |
| 
 | |
| class MyChannel extends CapacitorChannel {
 | |
|   const TABLE_NAME = "my";
 | |
|   const COLUMN_DEFINITIONS = [
 | |
|     "name" => "varchar(64) not null",
 | |
|     "age" => "integer",
 | |
|     "num" => ["integer"],
 | |
|   ];
 | |
| 
 | |
|   function getItemValues($item): ?array {
 | |
|     $item = cl::with($item);
 | |
|     return [
 | |
|       "name" => cl::first($item),
 | |
|       "age" => $item["age"] ?? null,
 | |
|       "num" => rand(),
 | |
|     ];
 | |
|   }
 | |
| }
 | |
| 
 | |
| new Capacitor(new MysqlStorage($db), $channel = new MyChannel());
 | |
| 
 | |
| $channel->charge("hello world");
 | |
| $channel->charge(["bonjour monde"]);
 | |
| $channel->charge(["gutten tag", "age" => 15]);
 |