mirror of
https://github.com/doctrine/orm.git
synced 2026-04-24 15:08:12 +02:00
5049b615c5
* Add TokenType class Co-authored-by: Alexander M. Turek <me@derrabus.de> * Deprecated Lexer constants in favour of TokenType * Replace all Lexer::T_ occurrences with TokenType::T_ * Add upgrade note * Fixed import Lexer => TokenType * Fixed deprecation phpdoc * Replaced int value with matching constant of TokenType * Update src/Query/Lexer.php --------- Co-authored-by: Alexander M. Turek <me@derrabus.de>
47 lines
1.1 KiB
PHP
47 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Doctrine\ORM\Query\AST\Functions;
|
|
|
|
use Doctrine\ORM\Query\AST\Node;
|
|
use Doctrine\ORM\Query\Parser;
|
|
use Doctrine\ORM\Query\SqlWalker;
|
|
use Doctrine\ORM\Query\TokenType;
|
|
|
|
/**
|
|
* "DATE_DIFF" "(" ArithmeticPrimary "," ArithmeticPrimary ")"
|
|
*
|
|
* @link www.doctrine-project.org
|
|
*/
|
|
class DateDiffFunction extends FunctionNode
|
|
{
|
|
/** @var Node */
|
|
public $date1;
|
|
|
|
/** @var Node */
|
|
public $date2;
|
|
|
|
/** @inheritDoc */
|
|
public function getSql(SqlWalker $sqlWalker)
|
|
{
|
|
return $sqlWalker->getConnection()->getDatabasePlatform()->getDateDiffExpression(
|
|
$this->date1->dispatch($sqlWalker),
|
|
$this->date2->dispatch($sqlWalker)
|
|
);
|
|
}
|
|
|
|
/** @inheritDoc */
|
|
public function parse(Parser $parser)
|
|
{
|
|
$parser->match(TokenType::T_IDENTIFIER);
|
|
$parser->match(TokenType::T_OPEN_PARENTHESIS);
|
|
|
|
$this->date1 = $parser->ArithmeticPrimary();
|
|
$parser->match(TokenType::T_COMMA);
|
|
$this->date2 = $parser->ArithmeticPrimary();
|
|
|
|
$parser->match(TokenType::T_CLOSE_PARENTHESIS);
|
|
}
|
|
}
|