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