48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Ulmus\QueryBuilder;
|
|
|
|
use Ulmus\Query\QueryFragmentInterface;
|
|
|
|
# TODO -> Extract from MysqlQueryBuilder to build an ISO/IEC 9075:2023 compatible layer for a basic SQL QueryBuilder
|
|
abstract class SqlQueryBuilder implements QueryBuilderInterface
|
|
{
|
|
protected string $rendered;
|
|
|
|
protected string $hash;
|
|
|
|
public function push(QueryFragmentInterface $queryFragment): QueryBuilderInterface
|
|
{
|
|
// TODO: Implement push() method.
|
|
}
|
|
|
|
public function pull(QueryFragmentInterface $queryFragment): QueryBuilderInterface
|
|
{
|
|
// TODO: Implement pull() method.
|
|
}
|
|
|
|
public function render(bool $skipToken = false) : mixed
|
|
{
|
|
// TODO: Implement render() method.
|
|
}
|
|
|
|
public function reset(): void
|
|
{
|
|
// TODO: Implement reset() method.
|
|
}
|
|
|
|
public function getFragment(string $class, int $index = 0): ?QueryFragmentInterface
|
|
{
|
|
// TODO: Implement getFragment() method.
|
|
}
|
|
|
|
public function removeFragment(QueryFragmentInterface|\Stringable|array|string $fragment): void
|
|
{
|
|
// TODO: Implement removeFragment() method.
|
|
}
|
|
|
|
public function hashSerializedQuery(): string
|
|
{
|
|
return $this->hash ??= md5(sprintf("%s:%s", $this->render(), serialize($this->parameters)));
|
|
}
|
|
} |