Loading config/module.config.php +2 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use UnicaenOracle\DBAL\Event\Listeners\OracleSessionInit; use UnicaenOracle\ORM\Query\Functions\Chr; use UnicaenOracle\ORM\Query\Functions\CompriseEntre; use UnicaenOracle\ORM\Query\Functions\Convert; use UnicaenOracle\ORM\Query\Functions\RegexpLike; use UnicaenOracle\ORM\Query\Functions\Replace; use UnicaenOracle\Service\DataService; use UnicaenOracle\Service\SchemaService; Loading @@ -27,6 +28,7 @@ return [ 'CHR' => Chr::class, 'CONVERT' => Convert::class, 'REPLACE' => Replace::class, 'REGEXP_LIKE' => RegexpLike::class, // fonctions du package PL/SQL "UNICAEN_ORACLE" (cf. "../data/package.sql") 'compriseEntre' => CompriseEntre::class, Loading src/UnicaenOracle/ORM/Query/Functions/RegexpLike.php 0 → 100644 +31 −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 RegexpLike extends FunctionNode { public $field; public $posixPattern; public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->field = $parser->StringPrimary(); $parser->match(Lexer::T_COMMA); $this->posixPattern = $parser->StringPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); } public function getSql(SqlWalker $sqlWalker) { return sprintf('REGEXP_LIKE(%s, %s)', $this->field->dispatch($sqlWalker), $this->posixPattern->dispatch($sqlWalker)); } } No newline at end of file Loading
config/module.config.php +2 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use UnicaenOracle\DBAL\Event\Listeners\OracleSessionInit; use UnicaenOracle\ORM\Query\Functions\Chr; use UnicaenOracle\ORM\Query\Functions\CompriseEntre; use UnicaenOracle\ORM\Query\Functions\Convert; use UnicaenOracle\ORM\Query\Functions\RegexpLike; use UnicaenOracle\ORM\Query\Functions\Replace; use UnicaenOracle\Service\DataService; use UnicaenOracle\Service\SchemaService; Loading @@ -27,6 +28,7 @@ return [ 'CHR' => Chr::class, 'CONVERT' => Convert::class, 'REPLACE' => Replace::class, 'REGEXP_LIKE' => RegexpLike::class, // fonctions du package PL/SQL "UNICAEN_ORACLE" (cf. "../data/package.sql") 'compriseEntre' => CompriseEntre::class, Loading
src/UnicaenOracle/ORM/Query/Functions/RegexpLike.php 0 → 100644 +31 −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 RegexpLike extends FunctionNode { public $field; public $posixPattern; public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->field = $parser->StringPrimary(); $parser->match(Lexer::T_COMMA); $this->posixPattern = $parser->StringPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); } public function getSql(SqlWalker $sqlWalker) { return sprintf('REGEXP_LIKE(%s, %s)', $this->field->dispatch($sqlWalker), $this->posixPattern->dispatch($sqlWalker)); } } No newline at end of file