"create", "type" => "ddl"]; } elseif (_select::isa($prefix)) { $sql = _select::parse($sql, $bindings); $meta = ["isa" => "select", "type" => "dql"]; } elseif (_insert::isa($prefix)) { $sql = _insert::parse($sql, $bindings); $meta = ["isa" => "insert", "type" => "dml"]; } elseif (_update::isa($prefix)) { $sql = _update::parse($sql, $bindings); $meta = ["isa" => "update", "type" => "dml"]; } elseif (_delete::isa($prefix)) { $sql = _delete::parse($sql, $bindings); $meta = ["isa" => "delete", "type" => "dml"]; } elseif (_generic::isa($prefix)) { $sql = _generic::parse($sql, $bindings); $meta = ["isa" => "generic", "type" => null]; } else { throw exceptions::invalid_type($sql, "cette requête sql"); } } else { if (!is_string($sql)) $sql = strval($sql); if (_create::isa($sql)) { $meta = ["isa" => "create", "type" => "ddl"]; } elseif (_select::isa($sql)) { $meta = ["isa" => "select", "type" => "dql"]; } elseif (_insert::isa($sql)) { $meta = ["isa" => "insert", "type" => "dml"]; } elseif (_update::isa($sql)) { $meta = ["isa" => "update", "type" => "dml"]; } elseif (_delete::isa($sql)) { $meta = ["isa" => "delete", "type" => "dml"]; } elseif (_generic::isa($sql)) { $meta = ["isa" => "generic", "type" => null]; } else { $meta = ["isa" => "generic", "type" => null]; } } } static function with($sql, ?array $params=null): array { static::verifix($sql, $params); return [$sql, $params]; } function __construct($sql, ?array $bindings=null) { static::verifix($sql, $bindings, $meta); $this->sql = $sql; $this->bindings = $bindings; $this->meta = $meta; } /** @var string */ protected $sql; function getSql(): string { return $this->sql; } /** @var ?array */ protected $bindings; function getBindings(): ?array { return $this->bindings; } /** @var ?array */ protected $meta; function isInsert(): bool { return ($this->meta["isa"] ?? null) === "insert"; } }