42 lines
		
	
	
		
			920 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			920 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| require __DIR__.'/../vendor/autoload.php';
 | |
| 
 | |
| use nulib\cl;
 | |
| use nulib\db\Capacitor;
 | |
| use nulib\db\CapacitorChannel;
 | |
| use nulib\db\pgsql\Pgsql;
 | |
| use nulib\db\pgsql\PgsqlCapacitor;
 | |
| 
 | |
| $db = new Pgsql([
 | |
|   "host" => "pegase-dre.self",
 | |
|   "dbname" => "dre",
 | |
|   "user" => "root",
 | |
|   "password" => "admin",
 | |
|   #"user" => "reader",
 | |
|   #"password" => "reader",
 | |
| ]);
 | |
| 
 | |
| class MyChannel extends CapacitorChannel {
 | |
|   const TABLE_NAME = "my";
 | |
|   const COLUMN_DEFINITIONS = [
 | |
|     "name" => "varchar 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 PgsqlCapacitor($db), $channel = new MyChannel());
 | |
| 
 | |
| $channel->charge("hello world");
 | |
| $channel->charge(["bonjour monde"]);
 | |
| $channel->charge(["gutten tag", "age" => 15]);
 |