Loading config/module.config.php +2 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace UnicaenOracle; use Doctrine\DBAL\Driver\OCI8\Driver as OCI8; use Doctrine\DBAL\Event\Listeners\OracleSessionInit; use UnicaenOracle\ORM\Query\Functions\Chr; use UnicaenOracle\ORM\Query\Functions\Convert; use UnicaenOracle\ORM\Query\Functions\Replace; Loading @@ -17,6 +18,7 @@ return [ 'configuration' => [ 'orm_default' => [ 'string_functions' => [ 'CHR' => Chr::class, 'CONVERT' => Convert::class, 'REPLACE' => Replace::class, ], Loading src/UnicaenOracle/ORM/Query/Functions/Chr.php 0 → 100644 +26 −0 Original line number Diff line number Diff line <?php namespace UnicaenOracle\ORM\Query\Functions; use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; class Chr extends FunctionNode { public $field; public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->field = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); } public function getSql(SqlWalker $sqlWalker) { return sprintf('CHR(%s)', $this->field->dispatch($sqlWalker)); } } No newline at end of file Loading
config/module.config.php +2 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace UnicaenOracle; use Doctrine\DBAL\Driver\OCI8\Driver as OCI8; use Doctrine\DBAL\Event\Listeners\OracleSessionInit; use UnicaenOracle\ORM\Query\Functions\Chr; use UnicaenOracle\ORM\Query\Functions\Convert; use UnicaenOracle\ORM\Query\Functions\Replace; Loading @@ -17,6 +18,7 @@ return [ 'configuration' => [ 'orm_default' => [ 'string_functions' => [ 'CHR' => Chr::class, 'CONVERT' => Convert::class, 'REPLACE' => Replace::class, ], Loading
src/UnicaenOracle/ORM/Query/Functions/Chr.php 0 → 100644 +26 −0 Original line number Diff line number Diff line <?php namespace UnicaenOracle\ORM\Query\Functions; use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; class Chr extends FunctionNode { public $field; public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->field = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); } public function getSql(SqlWalker $sqlWalker) { return sprintf('CHR(%s)', $this->field->dispatch($sqlWalker)); } } No newline at end of file