]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/CoreBundle/Operator/Doctrine/Matches.php
e6bb03b12d4a5fd3b9ba2ccc114f114a71111d47
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Operator / Doctrine / Matches.php
1 <?php
2
3 namespace Wallabag\CoreBundle\Operator\Doctrine;
4
5 /**
6 * Provides a "matches" operator used for tagging rules.
7 *
8 * It asserts that a given pattern is contained in a subject, in a
9 * case-insensitive way.
10 *
11 * This operator will be used to compile tagging rules in DQL, usable
12 * by Doctrine ORM.
13 * It's registered in RulerZ using a service (wallabag.operator.doctrine.matches);
14 */
15 class Matches
16 {
17 public function __invoke($subject, $pattern)
18 {
19 if ($pattern[0] === "'") {
20 $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1));
21 }
22
23 return sprintf('UPPER(%s) LIKE UPPER(%s)', $subject, $pattern);
24 }
25 }