Skip to content
Snippets Groups Projects
Select Git revision
  • 1926ff57c4418171c27bb5375c163883334001bc
  • master default protected
  • update-2.0.0-dev
  • alc-refactoring-entity
  • sb-comments-update
  • alc-dev
  • 2.0.2
  • 2.0.1
  • 2.0.0
  • 1.0.7
  • 1.0.6
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 0.1.5
  • 1.0.0
  • 0.1.4
  • 0.1.3
  • 0.1.2
  • 0.1.1
  • 0.0.15
  • 0.0.14
  • 0.0.13
  • 0.0.12
26 results

database-install-sql.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    CompriseEntre.php 1.50 KiB
    <?php
    
    namespace UnicaenOracle\ORM\Query\Functions;
    
    use Doctrine\ORM\Query\AST\Functions\FunctionNode;
    use Doctrine\ORM\Query\Lexer;
    use Doctrine\ORM\Query\Parser;
    use Doctrine\ORM\Query\SqlWalker;
    
    class CompriseEntre extends FunctionNode
    {
        public $histoCreation;
        public $histoDestruction;
        public $dateObs;
    
        public function getSql(SqlWalker $sqlWalker)
        {
            $sql = sprintf('UNICAEN_ORACLE.COMPRISE_ENTRE(%s, %s',
                    $this->histoCreation->dispatch($sqlWalker),
                    $this->histoDestruction->dispatch($sqlWalker));
            
            if ($this->dateObs){
                $sql .= ','.$this->dateObs->dispatch($sqlWalker);
            }
            $sql .= ')';
            return $sql;
        }
    
        /**
         * NB: le format DQL attendu est "compriseEntre"
         * (et non pas "UNICAEN_ORACLE.COMPRISE_ENTRE").
         * 
         * @param Parser $parser
         */
        public function parse(Parser $parser)
        {
            $lexer = $parser->getLexer();
            $parser->match(Lexer::T_IDENTIFIER);
            $parser->match(Lexer::T_OPEN_PARENTHESIS);
            $this->histoCreation = $parser->ArithmeticPrimary();
            if(Lexer::T_COMMA === $lexer->lookahead['type']){
                $parser->match(Lexer::T_COMMA);
                $this->histoDestruction = $parser->ArithmeticPrimary();
            }
            if(Lexer::T_COMMA === $lexer->lookahead['type']){
                $parser->match(Lexer::T_COMMA);
                $this->dateObs = $parser->ArithmeticPrimary();
            }
            $parser->match(Lexer::T_CLOSE_PARENTHESIS);
        }
    }