interfaceValueRenderer
interface ValueRenderer
Writes a PHP value as the SQL expression a dialect would read it back from.
A shadow row is written into the statement itself, so every value has to survive the round trip as the value it was. What that takes differs by dialect -- what quotes a string, what writes bytes, what a literal's type is taken to be -- which is why each dialect has its own.
Type Aliases§
RenderableValue = bool|float|int|string|Stringable|resource|nullMethods§
public function renderValue(mixed $value, ColumnDeclaration|null $type = null): stringWrites a value as the SQL that reads it back.
The column's declaration is what says how the database will read the literal, so where it is known the value is cast to it. Where it is not, the value's own PHP type is all there is to go on.
What arrives here is whatever a driver answered or a fixture was written with, which is not something ZTD can promise anything about -- so this is where anything no literal could carry is refused.
Parameters
$value | mixed | Value to write, as a driver or a fixture handed it over |
$type | ColumnDeclaration|null | How the column holding it was declared, or null where nothing declared it |
Returns
string SQL reading that value backCalled from 3
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Shadow\CteRows::formatValue() packages/ztd-query-mysql/src/Rewrite/Transformer/Shadow/CteRows.php:107
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\Cte\RowSourceRenderer::formatValue() packages/ztd-query-postgres/src/Rewrite/Transformer/Cte/RowSourceRenderer.php:134
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Transformer\Select\ShadowCteRenderer::renderRow() packages/ztd-query-sqlite/src/Rewrite/Transformer/Select/ShadowCteRenderer.php:102
Test cases 2§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Other tests reaching this symbol 2
Relations§
Implemented by 4
- FakeValueRenderer packages/ztd-query-core/tests/Fake/FakeValueRenderer.php:18
- MySqlValueRenderer packages/ztd-query-mysql/src/Sql/Value/MySqlValueRenderer.php:16
- PgSqlValueRenderer packages/ztd-query-postgres/src/Sql/Value/PgSqlValueRenderer.php:21
- SqliteValueRenderer packages/ztd-query-sqlite/src/Sql/Value/SqliteValueRenderer.php:17
Method calls 3
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Shadow\CteRows::formatValue() packages/ztd-query-mysql/src/Rewrite/Transformer/Shadow/CteRows.php:107
- method-call ZtdQuery\Platform\Postgres\Rewrite\Transformer\Cte\RowSourceRenderer::formatValue() packages/ztd-query-postgres/src/Rewrite/Transformer/Cte/RowSourceRenderer.php:134
- method-call ZtdQuery\Platform\Sqlite\Rewrite\Transformer\Select\ShadowCteRenderer::renderRow() packages/ztd-query-sqlite/src/Rewrite/Transformer/Select/ShadowCteRenderer.php:102
Type declarations 10
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\SelectTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/SelectTransformer.php:29
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\SelectTransformer packages/ztd-query-mysql/src/Rewrite/Transformer/SelectTransformer.php:42
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\Shadow\CteRows packages/ztd-query-mysql/src/Rewrite/Transformer/Shadow/CteRows.php:32
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\Cte\RowSourceRenderer packages/ztd-query-postgres/src/Rewrite/Transformer/Cte/RowSourceRenderer.php:25
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\Cte\RowSourceRenderer packages/ztd-query-postgres/src/Rewrite/Transformer/Cte/RowSourceRenderer.php:30
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\SelectTransformer packages/ztd-query-postgres/src/Rewrite/Transformer/SelectTransformer.php:32
- type ZtdQuery\Platform\Postgres\Rewrite\Transformer\SelectTransformer packages/ztd-query-postgres/src/Rewrite/Transformer/SelectTransformer.php:43
- type ZtdQuery\Platform\Sqlite\Rewrite\Transformer\Select\ShadowCteRenderer packages/ztd-query-sqlite/src/Rewrite/Transformer/Select/ShadowCteRenderer.php:29
- type ZtdQuery\Platform\Sqlite\Rewrite\Transformer\SelectTransformer packages/ztd-query-sqlite/src/Rewrite/Transformer/SelectTransformer.php:32
- type ZtdQuery\Platform\Sqlite\Rewrite\Transformer\SelectTransformer packages/ztd-query-sqlite/src/Rewrite/Transformer/SelectTransformer.php:48