Browse Source

Fix Twig deprecations

Gocha Ossinkine 8 years ago
parent
commit
c9dadd359f

+ 3 - 3
Controller/CRUDController.php

@@ -105,7 +105,7 @@ class CRUDController extends Controller
         $formView = $datagrid->getForm()->createView();
 
         // set the theme for the current Admin Form
-        $this->get('twig')->getExtension('form')->renderer->setTheme($formView, $this->admin->getFilterTheme());
+        $this->get('twig')->getExtension('Symfony\Bridge\Twig\Extension\FormExtension')->renderer->setTheme($formView, $this->admin->getFilterTheme());
 
         return $this->render($this->admin->getTemplate('list'), array(
             'action' => 'list',
@@ -321,7 +321,7 @@ class CRUDController extends Controller
         $view = $form->createView();
 
         // set the theme for the current Admin Form
-        $this->get('twig')->getExtension('form')->renderer->setTheme($view, $this->admin->getFormTheme());
+        $this->get('twig')->getExtension('Symfony\Bridge\Twig\Extension\FormExtension')->renderer->setTheme($view, $this->admin->getFormTheme());
 
         return $this->render($this->admin->getTemplate($templateKey), array(
             'action' => 'edit',
@@ -564,7 +564,7 @@ class CRUDController extends Controller
         $view = $form->createView();
 
         // set the theme for the current Admin Form
-        $this->get('twig')->getExtension('form')->renderer->setTheme($view, $this->admin->getFormTheme());
+        $this->get('twig')->getExtension('Symfony\Bridge\Twig\Extension\FormExtension')->renderer->setTheme($view, $this->admin->getFormTheme());
 
         return $this->render($this->admin->getTemplate($templateKey), array(
             'action' => 'create',

+ 3 - 3
Controller/HelperController.php

@@ -110,7 +110,7 @@ class HelperController
         // render the widget
         // todo : fix this, the twig environment variable is not set inside the extension ...
 
-        $extension = $this->twig->getExtension('form');
+        $extension = $this->twig->getExtension('Symfony\Bridge\Twig\Extension\FormExtension');
         $extension->initRuntime($this->twig);
         $extension->renderer->setTheme($view, $admin->getFormTheme());
 
@@ -158,7 +158,7 @@ class HelperController
 
         // render the widget
         // todo : fix this, the twig environment variable is not set inside the extension ...
-        $extension = $this->twig->getExtension('form');
+        $extension = $this->twig->getExtension('Symfony\Bridge\Twig\Extension\FormExtension');
         $extension->initRuntime($this->twig);
         $extension->renderer->setTheme($view, $admin->getFormTheme());
 
@@ -301,7 +301,7 @@ class HelperController
 
         // render the widget
         // todo : fix this, the twig environment variable is not set inside the extension ...
-        $extension = $this->twig->getExtension('sonata_admin');
+        $extension = $this->twig->getExtension('Sonata\AdminBundle\Twig\Extension\SonataAdminExtension');
 
         $content = $extension->renderListElement($this->twig, $rootObject, $fieldDescription);
 

+ 1 - 1
Tests/Controller/CRUDControllerTest.php

@@ -182,7 +182,7 @@ class CRUDControllerTest extends \PHPUnit_Framework_TestCase
             ->method('getExtension')
             ->will($this->returnCallback(function ($name) use ($formExtension) {
                 switch ($name) {
-                    case 'form':
+                    case 'Symfony\Bridge\Twig\Extension\FormExtension':
                         return $formExtension;
                 }
             }));

+ 17 - 18
Tests/Controller/HelperControllerTest.php

@@ -16,6 +16,8 @@ use Sonata\AdminBundle\Admin\AdminInterface;
 use Sonata\AdminBundle\Admin\Pool;
 use Sonata\AdminBundle\Controller\HelperController;
 use Sonata\AdminBundle\Tests\Fixtures\Bundle\Entity\Foo;
+use Sonata\AdminBundle\Twig\Extension\SonataAdminExtension;
+use Symfony\Bridge\Twig\Extension\FormExtension;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Validator\ConstraintViolation;
@@ -255,15 +257,24 @@ class HelperControllerTest extends \PHPUnit_Framework_TestCase
         $admin->expects($this->once())->method('getObject')->will($this->returnValue($object));
         $admin->expects($this->once())->method('isGranted')->will($this->returnValue(true));
         $admin->expects($this->once())->method('getListFieldDescription')->will($this->returnValue($fieldDescription));
+        $fieldDescription->expects($this->exactly(2))->method('getAdmin')->will($this->returnValue($admin));
 
         $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
         $container->expects($this->any())->method('get')->will($this->returnValue($admin));
 
-        $adminExtension = $this->getMock('\Twig_ExtensionInterface', array('renderListElement', 'initRuntime', 'getTokenParsers', 'getNodeVisitors', 'getFilters', 'getTests', 'getFunctions', 'getOperators', 'getGlobals', 'getName'));
-        $adminExtension->expects($this->any())->method('getName')->will($this->returnValue('sonata_admin'));
-        $adminExtension->expects($this->once())->method('renderListElement')->will($this->returnValue('<foo />'));
+        $pool = new Pool($container, 'title', 'logo');
+        $pool->setAdminServiceIds(array('sonata.post.admin'));
 
-        $twig = new \Twig_Environment($this->getMock('\Twig_LoaderInterface'));
+        $adminExtension = new SonataAdminExtension(
+            $pool,
+            $this->getMock('Psr\Log\LoggerInterface'),
+            $this->getMock('Symfony\Component\Translation\TranslatorInterface')
+        );
+
+        $loader = $this->getMock('\Twig_LoaderInterface');
+        $loader->method('getSource')->will($this->returnValue('<foo />'));
+
+        $twig = new \Twig_Environment($loader);
         $twig->addExtension($adminExtension);
         $request = new Request(array(
             'code' => 'sonata.post.admin',
@@ -273,9 +284,6 @@ class HelperControllerTest extends \PHPUnit_Framework_TestCase
             'context' => 'list',
         ), array(), array(), array(), array(), array('REQUEST_METHOD' => 'POST', 'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'));
 
-        $pool = new Pool($container, 'title', 'logo');
-        $pool->setAdminServiceIds(array('sonata.post.admin'));
-
         $helper = new AdminHelper($pool);
 
         $validator = $this->getMock($validatorInterface);
@@ -318,13 +326,8 @@ class HelperControllerTest extends \PHPUnit_Framework_TestCase
             ->method('searchAndRenderBlock')
             ->will($this->returnValue(new Response()));
 
-        $formExtension = $this->getMock('\Twig_ExtensionInterface', array('renderListElement', 'initRuntime', 'getTokenParsers', 'getNodeVisitors', 'getFilters', 'getTests', 'getFunctions', 'getOperators', 'getGlobals', 'getName'));
-
-        $formExtension->expects($this->any())->method('getName')->will($this->returnValue('form'));
-        $formExtension->renderer = $mockRenderer;
-
         $twig = new \Twig_Environment($this->getMock('\Twig_LoaderInterface'));
-        $twig->addExtension($formExtension);
+        $twig->addExtension(new FormExtension($mockRenderer));
         $request = new Request(array(
             'code' => 'sonata.post.admin',
             'objectId' => 42,
@@ -403,12 +406,8 @@ class HelperControllerTest extends \PHPUnit_Framework_TestCase
             ->method('searchAndRenderBlock')
             ->will($this->returnValue(new Response()));
 
-        $formExtension = $this->getMock('\Twig_ExtensionInterface', array('renderListElement', 'initRuntime', 'getTokenParsers', 'getNodeVisitors', 'getFilters', 'getTests', 'getFunctions', 'getOperators', 'getGlobals', 'getName'));
-        $formExtension->expects($this->any())->method('getName')->will($this->returnValue('form'));
-        $formExtension->renderer = $mockRenderer;
-
         $twig = new \Twig_Environment($this->getMock('\Twig_LoaderInterface'));
-        $twig->addExtension($formExtension);
+        $twig->addExtension(new FormExtension($mockRenderer));
         $request = new Request(array(
             'code' => 'sonata.post.admin',
             'objectId' => 42,

+ 1 - 1
Tests/Form/Widget/BaseWidgetTest.php

@@ -56,7 +56,7 @@ abstract class BaseWidgetTest extends AbstractWidgetTestCase
     {
         $environment = parent::getEnvironment();
         $environment->addGlobal('sonata_admin', $this->getSonataAdmin());
-        if (!$environment->hasExtension('translator')) {
+        if (!$environment->hasExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')) {
             $environment->addExtension(new TranslationExtension(new StubTranslator()));
         }
 

+ 1 - 1
composer.json

@@ -40,7 +40,7 @@
         "symfony/twig-bridge": "^2.3.5 || ^3.0",
         "symfony/validator": "^2.3 || ^3.0",
         "twig/extensions": "^1.0",
-        "twig/twig": "^1.23"
+        "twig/twig": "^1.26"
     },
     "require-dev": {
         "jms/di-extra-bundle": "^1.7",