"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]);