From a2f4efe6d2a90d8a2b84a275f48a07dc8aa0a84f Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Fri, 21 Jun 2019 12:46:53 +0200 Subject: [PATCH] Use Twig 2.0 `mnapoli/piwik-twig-extension` locked Twig to the 1.10 version. The new version is compatible with Twig 2.0 --- composer.json | 2 +- composer.lock | 49 ++++++++++--------- .../CoreBundle/Controller/FeedController.php | 2 +- .../CoreBundle/Twig/WallabagExtension.php | 23 ++++++--- .../UserBundle/Mailer/AuthCodeMailer.php | 15 +++--- .../UserBundle/Mailer/AuthCodeMailerTest.php | 4 +- 6 files changed, 56 insertions(+), 39 deletions(-) diff --git a/composer.json b/composer.json index 44ac34742..46dc409b1 100644 --- a/composer.json +++ b/composer.json @@ -78,7 +78,7 @@ "guzzlehttp/guzzle": "^5.3.1", "doctrine/doctrine-migrations-bundle": "^1.3", "craue/config-bundle": "dev-utf8mb4", - "mnapoli/piwik-twig-extension": "^1.0", + "mnapoli/piwik-twig-extension": "^2.0", "ocramius/proxy-manager": "^2.1.1", "white-october/pagerfanta-bundle": "^1.1", "php-amqplib/rabbitmq-bundle": "^1.14", diff --git a/composer.lock b/composer.lock index 094613cd8..8ff8fba8a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "7e872d70c69629db503d9b8ed18e0f40", + "content-hash": "7b43c6d21bc5016660c4e95aa0fdbc12", "packages": [ { "name": "bdunogier/guzzle-site-authenticator", @@ -4783,24 +4783,25 @@ }, { "name": "mnapoli/piwik-twig-extension", - "version": "1.0.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/mnapoli/PiwikTwigExtension.git", - "reference": "5171ab7221830a9d377add03dd60dbe6bd7b331f" + "reference": "95cafbaca13e436b1939fe0e70079f6db893fd51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mnapoli/PiwikTwigExtension/zipball/5171ab7221830a9d377add03dd60dbe6bd7b331f", - "reference": "5171ab7221830a9d377add03dd60dbe6bd7b331f", + "url": "https://api.github.com/repos/mnapoli/PiwikTwigExtension/zipball/95cafbaca13e436b1939fe0e70079f6db893fd51", + "reference": "95cafbaca13e436b1939fe0e70079f6db893fd51", "shasum": "" }, "require": { - "php": ">=5.4", - "twig/twig": "~1.10" + "php": ">=7.0", + "twig/twig": "~2.10" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "php-coveralls/php-coveralls": "^2.0", + "symfony/phpunit-bridge": "^4.2" }, "type": "library", "autoload": { @@ -4812,7 +4813,7 @@ "license": [ "MIT" ], - "time": "2014-09-16T06:51:19+00:00" + "time": "2019-06-21T10:24:22+00:00" }, { "name": "monolog/monolog", @@ -8602,16 +8603,16 @@ }, { "name": "symfony/swiftmailer-bundle", - "version": "v3.2.6", + "version": "v3.2.8", "source": { "type": "git", "url": "https://github.com/symfony/swiftmailer-bundle.git", - "reference": "7a83160b50a2479d37eb74ba71577380b9afe4f5" + "reference": "cb125b3648f132fb8070b55393f20cb310907d3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/7a83160b50a2479d37eb74ba71577380b9afe4f5", - "reference": "7a83160b50a2479d37eb74ba71577380b9afe4f5", + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/cb125b3648f132fb8070b55393f20cb310907d3b", + "reference": "cb125b3648f132fb8070b55393f20cb310907d3b", "shasum": "" }, "require": { @@ -8621,6 +8622,9 @@ "symfony/dependency-injection": "~2.7|~3.3|~4.0", "symfony/http-kernel": "~2.7|~3.3|~4.0" }, + "conflict": { + "twig/twig": "<1.41|<2.10" + }, "require-dev": { "symfony/console": "~2.7|~3.3|~4.0", "symfony/framework-bundle": "~2.7|~3.3|~4.0", @@ -8660,7 +8664,7 @@ ], "description": "Symfony SwiftmailerBundle", "homepage": "http://symfony.com", - "time": "2019-04-18T15:52:54+00:00" + "time": "2019-06-18T15:27:04+00:00" }, { "name": "symfony/symfony", @@ -8920,21 +8924,22 @@ }, { "name": "twig/twig", - "version": "v1.42.2", + "version": "v2.11.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4" + "reference": "699ed2342557c88789a15402de5eb834dedd6792" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/21707d6ebd05476854805e4f91b836531941bcd4", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/699ed2342557c88789a15402de5eb834dedd6792", + "reference": "699ed2342557c88789a15402de5eb834dedd6792", "shasum": "" }, "require": { - "php": ">=5.4.0", - "symfony/polyfill-ctype": "^1.8" + "php": "^7.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { "psr/container": "^1.0", @@ -8944,7 +8949,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.42-dev" + "dev-master": "2.11-dev" } }, "autoload": { @@ -8982,7 +8987,7 @@ "keywords": [ "templating" ], - "time": "2019-06-18T15:35:16+00:00" + "time": "2019-06-18T15:37:11+00:00" }, { "name": "wallabag/php-mobi", diff --git a/src/Wallabag/CoreBundle/Controller/FeedController.php b/src/Wallabag/CoreBundle/Controller/FeedController.php index 8d422a906..9f671735a 100644 --- a/src/Wallabag/CoreBundle/Controller/FeedController.php +++ b/src/Wallabag/CoreBundle/Controller/FeedController.php @@ -176,7 +176,7 @@ class FeedController extends Controller $pagerAdapter = new DoctrineORMAdapter($qb->getQuery(), true, false); $entries = new Pagerfanta($pagerAdapter); - $perPage = $user->getConfig()->getFeedLimit() ?: $this->getParameter('wallabag_core.Feed_limit'); + $perPage = $user->getConfig()->getFeedLimit() ?: $this->getParameter('wallabag_core.feed_limit'); $entries->setMaxPerPage($perPage); $url = $this->generateUrl( diff --git a/src/Wallabag/CoreBundle/Twig/WallabagExtension.php b/src/Wallabag/CoreBundle/Twig/WallabagExtension.php index 536185d44..02f17f50a 100644 --- a/src/Wallabag/CoreBundle/Twig/WallabagExtension.php +++ b/src/Wallabag/CoreBundle/Twig/WallabagExtension.php @@ -4,10 +4,14 @@ namespace Wallabag\CoreBundle\Twig; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Translation\TranslatorInterface; +use Twig\Extension\AbstractExtension; +use Twig\Extension\GlobalsInterface; +use Twig\TwigFilter; +use Twig\TwigFunction; use Wallabag\CoreBundle\Repository\EntryRepository; use Wallabag\CoreBundle\Repository\TagRepository; -class WallabagExtension extends \Twig_Extension implements \Twig_Extension_GlobalsInterface +class WallabagExtension extends AbstractExtension implements GlobalsInterface { private $tokenStorage; private $entryRepository; @@ -24,21 +28,26 @@ class WallabagExtension extends \Twig_Extension implements \Twig_Extension_Globa $this->translator = $translator; } + public function getGlobals() + { + return []; + } + public function getFilters() { return [ - new \Twig_SimpleFilter('removeWww', [$this, 'removeWww']), - new \Twig_SimpleFilter('removeScheme', [$this, 'removeScheme']), - new \Twig_SimpleFilter('removeSchemeAndWww', [$this, 'removeSchemeAndWww']), + new TwigFilter('removeWww', [$this, 'removeWww']), + new TwigFilter('removeScheme', [$this, 'removeScheme']), + new TwigFilter('removeSchemeAndWww', [$this, 'removeSchemeAndWww']), ]; } public function getFunctions() { return [ - new \Twig_SimpleFunction('count_entries', [$this, 'countEntries']), - new \Twig_SimpleFunction('count_tags', [$this, 'countTags']), - new \Twig_SimpleFunction('display_stats', [$this, 'displayStats']), + new TwigFunction('count_entries', [$this, 'countEntries']), + new TwigFunction('count_tags', [$this, 'countTags']), + new TwigFunction('display_stats', [$this, 'displayStats']), ]; } diff --git a/src/Wallabag/UserBundle/Mailer/AuthCodeMailer.php b/src/Wallabag/UserBundle/Mailer/AuthCodeMailer.php index 2797efde9..e131deb66 100644 --- a/src/Wallabag/UserBundle/Mailer/AuthCodeMailer.php +++ b/src/Wallabag/UserBundle/Mailer/AuthCodeMailer.php @@ -4,6 +4,7 @@ namespace Wallabag\UserBundle\Mailer; use Scheb\TwoFactorBundle\Mailer\AuthCodeMailerInterface; use Scheb\TwoFactorBundle\Model\Email\TwoFactorInterface; +use Twig\Environment; /** * Custom mailer for TwoFactorBundle email. @@ -56,14 +57,14 @@ class AuthCodeMailer implements AuthCodeMailerInterface /** * Initialize the auth code mailer with the SwiftMailer object. * - * @param \Swift_Mailer $mailer - * @param \Twig_Environment $twig - * @param string $senderEmail - * @param string $senderName - * @param string $supportUrl wallabag support url - * @param string $wallabagUrl wallabag instance url + * @param \Swift_Mailer $mailer + * @param Environment $twig + * @param string $senderEmail + * @param string $senderName + * @param string $supportUrl wallabag support url + * @param string $wallabagUrl wallabag instance url */ - public function __construct(\Swift_Mailer $mailer, \Twig_Environment $twig, $senderEmail, $senderName, $supportUrl, $wallabagUrl) + public function __construct(\Swift_Mailer $mailer, Environment $twig, $senderEmail, $senderName, $supportUrl, $wallabagUrl) { $this->mailer = $mailer; $this->twig = $twig; diff --git a/tests/Wallabag/UserBundle/Mailer/AuthCodeMailerTest.php b/tests/Wallabag/UserBundle/Mailer/AuthCodeMailerTest.php index 1713c10c8..4f93a92ca 100644 --- a/tests/Wallabag/UserBundle/Mailer/AuthCodeMailerTest.php +++ b/tests/Wallabag/UserBundle/Mailer/AuthCodeMailerTest.php @@ -3,6 +3,8 @@ namespace Tests\Wallabag\UserBundle\Mailer; use PHPUnit\Framework\TestCase; +use Twig\Environment; +use Twig\Loader\ArrayLoader; use Wallabag\UserBundle\Entity\User; use Wallabag\UserBundle\Mailer\AuthCodeMailer; @@ -27,7 +29,7 @@ class AuthCodeMailerTest extends TestCase {% block body_text %}text body {{ support_url }}{% endblock %} TWIG; - $this->twig = new \Twig_Environment(new \Twig_Loader_Array(['WallabagUserBundle:TwoFactor:email_auth_code.html.twig' => $twigTemplate])); + $this->twig = new Environment(new ArrayLoader(['WallabagUserBundle:TwoFactor:email_auth_code.html.twig' => $twigTemplate])); } public function testSendEmail()