Merge remote-tracking branch 'origin/master'

# Conflicts:
#	public/css/wordRotator.css
This commit is contained in:
silas 2018-10-22 23:09:09 +02:00
commit 355a49bada
3 changed files with 54 additions and 14 deletions

View File

@ -3,6 +3,7 @@
namespace Application; namespace Application;
use Ainias\Core\Connections\MyConnection; use Ainias\Core\Connections\MyConnection;
use Application\DoctrineExtensions\CharLength;
use Doctrine\ORM\Mapping\Driver\AnnotationDriver; use Doctrine\ORM\Mapping\Driver\AnnotationDriver;
return array( return array(
@ -10,7 +11,7 @@ return array(
'driver' => array( 'driver' => array(
'orm_default' => array( 'orm_default' => array(
'drivers' => array( 'drivers' => array(
__NAMESPACE__.'\Model' => 'entities_default', __NAMESPACE__ . '\Model' => 'entities_default',
), ),
), ),
'entities_default' => array( 'entities_default' => array(
@ -19,5 +20,12 @@ return array(
) )
) )
), ),
'configuration' => [
'orm_default' => [
'numeric_functions' => [
'CHAR_LENGTH' => CharLength::class,
],
],
],
), ),
); );

View File

@ -0,0 +1,30 @@
<?php
/**
* Created by PhpStorm.
* User: silas
* Date: 22.10.18
* Time: 15:24
*/
namespace Application\DoctrineExtensions;
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
class CharLength extends FunctionNode
{
private $expr;
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
{
return 'CHAR_LENGTH('.$sqlWalker->walkArithmeticPrimary($this->expr1).')';
}
public function parse(\Doctrine\ORM\Query\Parser $parser)
{
$parser->match(Lexer::T_IDENTIFIER);
$parser->match(Lexer::T_OPEN_PARENTHESIS);
$this->expr1 = $parser->ArithmeticExpression();
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
}
}

View File

@ -56,8 +56,8 @@ class WordRepository extends StandardRepository
$offset = rand(0,$numberWords-1); $offset = rand(0,$numberWords-1);
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "0")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "0"));
$queryBuilder->andWhere($queryBuilder->expr()->gte($queryBuilder->expr()->length("w.word"), ":minLength")); $queryBuilder->andWhere($queryBuilder->expr()->gte("CHAR_LENGTH(w.word)", ":minLength"));
$queryBuilder->andWhere($queryBuilder->expr()->lte($queryBuilder->expr()->length("w.word"), ":maxLength")); $queryBuilder->andWhere($queryBuilder->expr()->lte("CHAR_LENGTH(w.word)", ":maxLength"));
$queryBuilder->setParameter("minLength", $minLength); $queryBuilder->setParameter("minLength", $minLength);
$queryBuilder->setParameter("maxLength", $maxLength); $queryBuilder->setParameter("maxLength", $maxLength);
$queryBuilder->setMaxResults(1); $queryBuilder->setMaxResults(1);
@ -76,9 +76,11 @@ class WordRepository extends StandardRepository
$queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder = $this->_em->createQueryBuilder();
$queryBuilder->select("COUNT(w.id)")->from(Word::class, "w"); $queryBuilder->select("COUNT(w.id)")->from(Word::class, "w");
// $queryBuilder->andWhere($queryBuilder->expr()->eq("w.word", "Sechsfüßer"));
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "0")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "0"));
$queryBuilder->andWhere($queryBuilder->expr()->gte($queryBuilder->expr()->length("w.word"), ":minLength")); $queryBuilder->andWhere($queryBuilder->expr()->gte("CHAR_LENGTH(w.word)", ":minLength"));
$queryBuilder->andWhere($queryBuilder->expr()->lte($queryBuilder->expr()->length("w.word"), ":maxLength")); $queryBuilder->andWhere($queryBuilder->expr()->lte("CHAR_LENGTH(w.word)", ":maxLength"));
$queryBuilder->setParameter("minLength", $minLength); $queryBuilder->setParameter("minLength", $minLength);
$queryBuilder->setParameter("maxLength", $maxLength); $queryBuilder->setParameter("maxLength", $maxLength);
$queryBuilder->setMaxResults(1); $queryBuilder->setMaxResults(1);
@ -92,8 +94,8 @@ class WordRepository extends StandardRepository
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1"));
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "1")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "1"));
$queryBuilder->andWhere($queryBuilder->expr()->gte($queryBuilder->expr()->length("w.word"), ":minLength")); $queryBuilder->andWhere($queryBuilder->expr()->gte("CHAR_LENGTH(w.word)", ":minLength"));
$queryBuilder->andWhere($queryBuilder->expr()->lte($queryBuilder->expr()->length("w.word"), ":maxLength")); $queryBuilder->andWhere($queryBuilder->expr()->lte("CHAR_LENGTH(w.word)", ":maxLength"));
$queryBuilder->setParameter("minLength", $minLength); $queryBuilder->setParameter("minLength", $minLength);
$queryBuilder->setParameter("maxLength", $maxLength); $queryBuilder->setParameter("maxLength", $maxLength);
$queryBuilder->setMaxResults(1); $queryBuilder->setMaxResults(1);
@ -107,8 +109,8 @@ class WordRepository extends StandardRepository
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1"));
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "0")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "0"));
$queryBuilder->andWhere($queryBuilder->expr()->gte($queryBuilder->expr()->length("w.word"), ":minLength")); $queryBuilder->andWhere($queryBuilder->expr()->gte("CHAR_LENGTH(w.word)", ":minLength"));
$queryBuilder->andWhere($queryBuilder->expr()->lte($queryBuilder->expr()->length("w.word"), ":maxLength")); $queryBuilder->andWhere($queryBuilder->expr()->lte("CHAR_LENGTH(w.word)", ":maxLength"));
$queryBuilder->setParameter("minLength", $minLength); $queryBuilder->setParameter("minLength", $minLength);
$queryBuilder->setParameter("maxLength", $maxLength); $queryBuilder->setParameter("maxLength", $maxLength);
$queryBuilder->setMaxResults(1); $queryBuilder->setMaxResults(1);
@ -121,8 +123,8 @@ class WordRepository extends StandardRepository
$queryBuilder->select("COUNT(w.id)")->from(Word::class, "w"); $queryBuilder->select("COUNT(w.id)")->from(Word::class, "w");
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "-1")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "-1"));
$queryBuilder->andWhere($queryBuilder->expr()->gte($queryBuilder->expr()->length("w.word"), ":minLength")); $queryBuilder->andWhere($queryBuilder->expr()->gte("CHAR_LENGTH(w.word)", ":minLength"));
$queryBuilder->andWhere($queryBuilder->expr()->lte($queryBuilder->expr()->length("w.word"), ":maxLength")); $queryBuilder->andWhere($queryBuilder->expr()->lte("CHAR_LENGTH(w.word)", ":maxLength"));
$queryBuilder->setParameter("minLength", $minLength); $queryBuilder->setParameter("minLength", $minLength);
$queryBuilder->setParameter("maxLength", $maxLength); $queryBuilder->setParameter("maxLength", $maxLength);
$queryBuilder->setMaxResults(1); $queryBuilder->setMaxResults(1);
@ -137,7 +139,7 @@ class WordRepository extends StandardRepository
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1"));
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "0")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "0"));
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.used", "0")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.used", "0"));
$queryBuilder->andWhere($queryBuilder->expr()->eq($queryBuilder->expr()->length("w.word"), ":length")); $queryBuilder->andWhere($queryBuilder->expr()->eq("CHAR_LENGTH(w.word)", ":length"));
$queryBuilder->setParameter("length", $length); $queryBuilder->setParameter("length", $length);
return $queryBuilder->getQuery()->getResult(); return $queryBuilder->getQuery()->getResult();
} }
@ -150,8 +152,8 @@ class WordRepository extends StandardRepository
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.checked", "1"));
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "0")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.deleted", "0"));
$queryBuilder->andWhere($queryBuilder->expr()->eq("w.used", "0")); $queryBuilder->andWhere($queryBuilder->expr()->eq("w.used", "0"));
$queryBuilder->andWhere($queryBuilder->expr()->gte($queryBuilder->expr()->length("w.word"), ":minLength")); $queryBuilder->andWhere($queryBuilder->expr()->gte("CHAR_LENGTH(w.word)", ":minLength"));
$queryBuilder->andWhere($queryBuilder->expr()->lte($queryBuilder->expr()->length("w.word"), ":maxLength")); $queryBuilder->andWhere($queryBuilder->expr()->lte("CHAR_LENGTH(w.word)", ":maxLength"));
$queryBuilder->setParameter("minLength", $minLength); $queryBuilder->setParameter("minLength", $minLength);
$queryBuilder->setParameter("maxLength", $maxLength); $queryBuilder->setParameter("maxLength", $maxLength);
$queryBuilder->setMaxResults(1); $queryBuilder->setMaxResults(1);