35 lines
		
	
	
		
			797 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			797 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| require __DIR__.'/../vendor/autoload.php';
 | |
| 
 | |
| use nulib\cl;
 | |
| use nulib\db\Capacitor;
 | |
| use nulib\db\CapacitorChannel;
 | |
| use nulib\db\sqlite\Sqlite;
 | |
| use nulib\db\sqlite\SqliteStorage;
 | |
| 
 | |
| $db = new Sqlite(__DIR__.'/test_sqlite.db');
 | |
| 
 | |
| 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 SqliteStorage($db), $channel = new MyChannel());
 | |
| 
 | |
| $channel->charge("hello world");
 | |
| $channel->charge(["bonjour monde"]);
 | |
| $channel->charge(["gutten tag", "age" => 15]);
 |