PageRenderTime 41ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/Doctrine/Extension/Rand.php

https://bitbucket.org/Exeu/exeumiscbundle
PHP | 49 lines | 17 code | 4 blank | 28 comment | 0 complexity | f6797f9b31e347f1c1ace49c103af0b7 MD5 | raw file
  1. <?php
  2. /*
  3. * Copyright 2012 Jan Eichhorn <exeu65@googlemail.com>
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. namespace Exeu\MiscBundle\Doctrine\Extension;
  18. use Doctrine\ORM\Query\AST\Functions\FunctionNode;
  19. use Doctrine\ORM\Query\Lexer;
  20. /**
  21. * Adds RAND() support to DQL queries
  22. *
  23. * @author Jan Eichhorn <exeu65@googlemail.com>
  24. *
  25. * RandFunction ::= "RAND" "("")"
  26. */
  27. class Rand extends FunctionNode
  28. {
  29. /**
  30. * {@inheritDoc}
  31. */
  32. public function parse(\Doctrine\ORM\Query\Parser $parser)
  33. {
  34. $parser->match(Lexer::T_IDENTIFIER);
  35. $parser->match(Lexer::T_OPEN_PARENTHESIS);
  36. $parser->match(Lexer::T_CLOSE_PARENTHESIS);
  37. }
  38. /**
  39. * {@inheritDoc}
  40. */
  41. public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
  42. {
  43. return 'RAND()';
  44. }
  45. }