當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Parser::OrderByClause方法代碼示例

本文整理匯總了PHP中Doctrine\ORM\Query\Parser::OrderByClause方法的典型用法代碼示例。如果您正苦於以下問題:PHP Parser::OrderByClause方法的具體用法?PHP Parser::OrderByClause怎麽用?PHP Parser::OrderByClause使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Doctrine\ORM\Query\Parser的用法示例。


在下文中一共展示了Parser::OrderByClause方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: parse

 /**
  * @url http://sysmagazine.com/posts/181666/
  *
  * {@inheritdoc}
  */
 public function parse(Parser $parser)
 {
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     $lexer = $parser->getLexer();
     if ($lexer->isNextToken(Lexer::T_DISTINCT)) {
         $parser->match(Lexer::T_DISTINCT);
         $this->parameters[self::DISTINCT_KEY] = true;
     }
     // first Path Expression is mandatory
     $this->parameters[self::PARAMETER_KEY] = array();
     $this->parameters[self::PARAMETER_KEY][] = $parser->SingleValuedPathExpression();
     while ($lexer->isNextToken(Lexer::T_COMMA)) {
         $parser->match(Lexer::T_COMMA);
         $this->parameters[self::PARAMETER_KEY][] = $parser->StringPrimary();
     }
     if ($lexer->isNextToken(Lexer::T_ORDER)) {
         $this->parameters[self::ORDER_KEY] = $parser->OrderByClause();
     }
     if ($lexer->isNextToken(Lexer::T_IDENTIFIER)) {
         if (strtolower($lexer->lookahead['value']) !== 'separator') {
             $parser->syntaxError('separator');
         }
         $parser->match(Lexer::T_IDENTIFIER);
         $this->parameters[self::SEPARATOR_KEY] = $parser->StringPrimary();
     }
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
 }
開發者ID:Hikariii,項目名稱:doctrine-extensions,代碼行數:33,代碼來源:GroupConcat.php

示例2: parse

 public function parse(\Doctrine\ORM\Query\Parser $parser)
 {
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     $lexer = $parser->getLexer();
     if ($lexer->isNextToken(Lexer::T_DISTINCT)) {
         $parser->match(Lexer::T_DISTINCT);
         $this->isDistinct = true;
     }
     // first Path Expression is mandatory
     $this->pathExp = array();
     $this->pathExp[] = $parser->SingleValuedPathExpression();
     while ($lexer->isNextToken(Lexer::T_COMMA)) {
         $parser->match(Lexer::T_COMMA);
         $this->pathExp[] = $parser->StringPrimary();
     }
     if ($lexer->isNextToken(Lexer::T_ORDER)) {
         $this->orderBy = $parser->OrderByClause();
     }
     if ($lexer->isNextToken(Lexer::T_IDENTIFIER)) {
         if (strtolower($lexer->lookahead['value']) !== 'separator') {
             $parser->syntaxError('separator');
         }
         $parser->match(Lexer::T_IDENTIFIER);
         $this->separator = $parser->StringPrimary();
     }
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
 }
開發者ID:digvijaymohite,項目名稱:e-tender,代碼行數:28,代碼來源:GroupConcat.php

示例3: parse

 /**
  * @param Parser $parser
  * @throws QueryException
  */
 public function parse(Parser $parser)
 {
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     $lexer = $parser->getLexer();
     if ($lexer->isNextToken(Lexer::T_DISTINCT)) {
         $parser->match(Lexer::T_DISTINCT);
         $this->isDistinct = true;
     }
     $this->pathExpressions[] = $parser->SingleValuedPathExpression();
     while ($lexer->isNextToken(Lexer::T_COMMA)) {
         $parser->match(Lexer::T_COMMA);
         $this->pathExpressions[] = $parser->StringPrimary();
     }
     if ($lexer->isNextToken(Lexer::T_ORDER)) {
         $this->orderBy = $parser->OrderByClause();
     }
     if ($lexer->isNextToken(Lexer::T_IDENTIFIER)) {
         if (strtolower($lexer->lookahead['value']) !== self::T_SEPARATOR) {
             $parser->syntaxError(self::T_SEPARATOR);
         }
         $parser->match(Lexer::T_IDENTIFIER);
         $this->separator = $parser->StringPrimary();
     }
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
 }
開發者ID:Maksold,項目名稱:platform,代碼行數:30,代碼來源:GroupConcat.php

示例4: parse

 /**
  * @inheritdoc
  */
 public function parse(Parser $parser)
 {
     $lexer = $parser->getLexer();
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     $this->listaggField = $parser->StringPrimary();
     if ($lexer->isNextToken(Lexer::T_COMMA)) {
         $parser->match(Lexer::T_COMMA);
         $this->separator = $parser->StringExpression();
     }
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
     if (!$lexer->isNextToken(Lexer::T_IDENTIFIER) || strtolower($lexer->lookahead['value']) != 'within') {
         $parser->syntaxError('WITHIN GROUP');
     }
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_GROUP);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     $this->orderBy = $parser->OrderByClause();
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
     if ($lexer->isNextToken(Lexer::T_IDENTIFIER)) {
         if (strtolower($lexer->lookahead['value']) != 'over') {
             $parser->syntaxError('OVER');
         }
         $parser->match(Lexer::T_IDENTIFIER);
         $parser->match(Lexer::T_OPEN_PARENTHESIS);
         if (!$lexer->isNextToken(Lexer::T_IDENTIFIER) || strtolower($lexer->lookahead['value']) != 'partition') {
             $parser->syntaxError('PARTITION BY');
         }
         $parser->match(Lexer::T_IDENTIFIER);
         $parser->match(Lexer::T_BY);
         $this->partitionBy[] = $parser->StringPrimary();
         while ($lexer->isNextToken(Lexer::T_COMMA)) {
             $parser->match(Lexer::T_COMMA);
             $this->partitionBy[] = $parser->StringPrimary();
         }
         $parser->match(Lexer::T_CLOSE_PARENTHESIS);
     }
 }
開發者ID:beberlei,項目名稱:doctrineextensions,代碼行數:41,代碼來源:Listagg.php


注:本文中的Doctrine\ORM\Query\Parser::OrderByClause方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。