PageRenderTime 44ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/src/JE/FinancesBundle/DQL/Max.php

https://github.com/na-ji/pcp
PHP | 32 lines | 23 code | 6 blank | 3 comment | 0 complexity | 5529c419d52d5242a955f1c02c2fa6cc MD5 | raw file
  1. <?php
  2. namespace JE\FinancesBundle\DQL;
  3. use Doctrine\ORM\Query\AST\Functions\FunctionNode;
  4. use Doctrine\ORM\Query\SqlWalker;
  5. use Doctrine\ORM\Query\Lexer;
  6. use Doctrine\ORM\Query\Parser;
  7. /**
  8. * MaxFunction ::= "MAX" "(" ArithmeticPrimary ")"
  9. */
  10. class Max extends FunctionNode
  11. {
  12. public $date = null;
  13. public function parse(Parser $parser)
  14. {
  15. $parser->match(Lexer::T_IDENTIFIER);
  16. $parser->match(Lexer::T_OPEN_PARENTHESIS);
  17. $this->date = $parser->ArithmeticPrimary();
  18. $parser->match(Lexer::T_CLOSE_PARENTHESIS);
  19. }
  20. public function getSql(SqlWalker $sqlWalker)
  21. {
  22. return 'MAX(' .
  23. $this->date->dispatch($sqlWalker) .
  24. ')';
  25. }
  26. }