]> git.immae.eu Git - github/wallabag/wallabag.git/blame - src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php
CS
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Operator / Doctrine / NotMatches.php
CommitLineData
fdd725f5
NL
1<?php
2
3namespace Wallabag\CoreBundle\Operator\Doctrine;
4
5/**
6 * Provides a "notmatches" operator used for tagging rules.
7 *
8 * It asserts that a given pattern is not 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.
a375fed7 13 * It's registered in RulerZ using a service (wallabag.operator.doctrine.notmatches);
fdd725f5
NL
14 */
15class NotMatches
16{
17 public function __invoke($subject, $pattern)
18 {
3ef055ce 19 if ("'" === $pattern[0]) {
fdd725f5
NL
20 $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1));
21 }
22
23 return sprintf('UPPER(%s) NOT LIKE UPPER(%s)', $subject, $pattern);
24 }
25}