PDO plugin: Reflections
* com.noccy.pdo: Implemented reflection for PDO databases, tables and columns. Reflectors for MySQL and Sqlite. * com.noccy.pdo: Added pdo:inspect command. * com.noccy.docker: Added basic stack management and commands. * com.noccy.docker: Moved commands to dedicated namespace. * Environment: readConfig and writeConfig helper added, with a flag to use the global config dir ~/.config/spark.
This commit is contained in:
@ -4,6 +4,9 @@ namespace SparkPlug\Com\Noccy\Pdo;
|
||||
|
||||
use Spark\Resource\ResourceType;
|
||||
use PDO;
|
||||
use SparkPlug\Com\Noccy\Pdo\Reflection\Reflector\MysqlReflector;
|
||||
use SparkPlug\Com\Noccy\Pdo\Reflection\Reflector\ReflectorInterface;
|
||||
use SparkPlug\Com\Noccy\Pdo\Reflection\Reflector\SqliteReflector;
|
||||
|
||||
class PdoResource extends ResourceType
|
||||
{
|
||||
@ -47,6 +50,23 @@ class PdoResource extends ResourceType
|
||||
return $this->pdo;
|
||||
}
|
||||
|
||||
public function getReflector(): ?ReflectorInterface
|
||||
{
|
||||
$uri = $this->options['uri'];
|
||||
|
||||
if (!preg_match('|^(.+?):|', $uri, $m)) {
|
||||
fprintf(STDERR, "error: Bad resource URI\n");
|
||||
return null;
|
||||
}
|
||||
switch ($m[1]) {
|
||||
case 'mysql':
|
||||
return new MysqlReflector($this);
|
||||
case 'sqlite':
|
||||
return new SqliteReflector($this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function info()
|
||||
{
|
||||
return $this->options['uri'];
|
||||
|
Reference in New Issue
Block a user