Browse Source

Removed support for SensioGeneratorBundle 2.2

Andrej Hudec 10 years ago
parent
commit
d18eab64f3

+ 0 - 109
Generator/AbstractBcGenerator.php

@@ -1,109 +0,0 @@
-<?php
-
-/*
- * This file is part of the Sonata package.
- *
- * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- */
-
-namespace Sonata\AdminBundle\Generator;
-
-use Sensio\Bundle\GeneratorBundle\Generator\Generator;
-
-/**
- * Class that fixes backward incompatible changes between Sensio Generator 2.2 and 2.3.
- * This class should be removed if support for Symfony 2.2 (and Sensio Generator 2.2) will be dropped.
- *
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-abstract class AbstractBcGenerator extends Generator
-{
-    /**
-     * @var array
-     */
-    private $skeletonDirs;
-
-    /**
-     * @var boolean
-     */
-    private $bcEnabled = false;
-
-    /**
-     * Returns the Generator Version
-     *
-     * @return string
-     */
-    public static function getGeneratorVersion()
-    {
-        $r = new \ReflectionClass('Sensio\Bundle\GeneratorBundle\Generator\Generator');
-
-        return $r->hasMethod('setSkeletonDirs') === true ? '2.3' : '2.2';
-    }
-
-    /**
-     * {@inheritdoc}
-     */
-    public function setSkeletonDirs($skeletonDirs)
-    {
-        $this->skeletonDirs = is_array($skeletonDirs) ? $skeletonDirs : array($skeletonDirs);
-
-        $this->bcEnabled = false;
-
-        if (self::getGeneratorVersion() === '2.2') {
-            $this->bcEnabled = true;
-        }
-
-        if (self::getGeneratorVersion() === '2.3') {
-            parent::setSkeletonDirs($this->skeletonDirs);
-        }
-    }
-
-    /**
-     * Set backward compatibility with Sensio Generator 2.2.*
-     *
-     * @param boolean $bcEnabled
-     */
-    public function setBc($bcEnabled)
-    {
-        $this->bcEnabled = $bcEnabled;
-    }
-
-    /**
-     * @param string $template
-     * @param array $parameters
-     *
-     * @return string
-     */
-    protected function renderBc($template, $parameters)
-    {
-        if ($this->bcEnabled) {
-            // Sensio Generator 2.2
-            return $this->render($this->skeletonDirs, $template, $parameters);
-        }
-
-        // Sensio Generator >=2.3
-        return $this->render($template, $parameters);
-    }
-
-    /**
-     * @param string $template
-     * @param string $target
-     * @param array  $parameters
-     *
-     * @return int
-     */
-    protected function renderFileBc($template, $target, $parameters)
-    {
-        if ($this->bcEnabled) {
-            // Sensio Generator 2.2
-            return $this->renderFile($this->skeletonDirs, $template, $target, $parameters);
-        }
-
-        // Sensio Generator >=2.3
-        return $this->renderFile($template, $target, $parameters);
-    }
-}

+ 2 - 3
Generator/AdminGenerator.php

@@ -15,13 +15,12 @@ namespace Sonata\AdminBundle\Generator;
 use Sensio\Bundle\GeneratorBundle\Generator\Generator;
 use Sonata\AdminBundle\Model\ModelManagerInterface;
 use Symfony\Component\HttpKernel\Bundle\BundleInterface;
-use Sonata\AdminBundle\Generator\AbstractBcGenerator;
 
 /**
  * @author Marek Stipek <mario.dweller@seznam.cz>
  * @author Simon Cosandey <simon.cosandey@simseo.ch>
  */
-class AdminGenerator extends AbstractBcGenerator
+class AdminGenerator extends Generator
 {
     /** @var ModelManagerInterface */
     private $modelManager;
@@ -62,7 +61,7 @@ class AdminGenerator extends AbstractBcGenerator
             ));
         }
 
-        $this->renderFileBc('Admin.php.twig', $this->file, array(
+        $this->renderFile('Admin.php.twig', $this->file, array(
             'classBasename' => array_pop($parts),
             'namespace' => implode('\\', $parts),
             'fields' => $this->modelManager->getExportFields($modelClass)

+ 2 - 3
Generator/ControllerGenerator.php

@@ -14,13 +14,12 @@ namespace Sonata\AdminBundle\Generator;
 
 use Sensio\Bundle\GeneratorBundle\Generator\Generator;
 use Symfony\Component\HttpKernel\Bundle\BundleInterface;
-use Sonata\AdminBundle\Generator\AbstractBcGenerator;
 
 /**
  * @author Marek Stipek <mario.dweller@seznam.cz>
  * @author Simon Cosandey <simon.cosandey@simseo.ch>
  */
-class ControllerGenerator extends AbstractBcGenerator
+class ControllerGenerator extends Generator
 {
     /** @var string|null */
     private $class;
@@ -59,7 +58,7 @@ class ControllerGenerator extends AbstractBcGenerator
             ));
         }
 
-        $this->renderFileBc('AdminController.php.twig', $this->file, array(
+        $this->renderFile('AdminController.php.twig', $this->file, array(
             'classBasename' => array_pop($parts),
             'namespace' => implode('\\', $parts)
         ));

+ 0 - 26
Tests/Fixtures/Generator/GeneratorBc22.php

@@ -1,26 +0,0 @@
-<?php
-
-namespace Sonata\AdminBundle\Tests\Fixtures\Generator;
-
-use Sonata\AdminBundle\Generator\AbstractBcGenerator;
-
-class GeneratorBc22 extends AbstractBcGenerator
-{
-    protected function render($skeletonDir, $template, $parameters)
-    {
-        if ($skeletonDir === array('path/to/templates') && $template === 'test.html.twig' && $parameters === array('foo' => 'bar')) {
-            return 'Result OK';
-        }
-
-        return 'Result invalid';
-    }
-
-    protected function renderFile($skeletonDir, $template, $target, $parameters)
-    {
-        if ($this->render($skeletonDir, $template, $parameters) === 'Result OK' && $target === 'target_file') {
-            return true;
-        }
-
-        return false;
-    }
-}

+ 0 - 33
Tests/Fixtures/Generator/GeneratorBc23.php

@@ -1,33 +0,0 @@
-<?php
-
-namespace Sonata\AdminBundle\Tests\Fixtures\Generator;
-
-use Sonata\AdminBundle\Generator\AbstractBcGenerator;
-
-class GeneratorBc23 extends AbstractBcGenerator
-{
-    private $skeletonDirs;
-
-    public function setSkeletonDirs($skeletonDirs)
-    {
-        $this->skeletonDirs = array($skeletonDirs);
-    }
-
-    protected function render($template, $parameters)
-    {
-        if ($this->skeletonDirs === array('path/to/templates') && $template === 'test.html.twig' && $parameters === array('foo' => 'bar')) {
-            return 'Result OK';
-        }
-
-        return 'Result invalid';
-    }
-
-    protected function renderFile($template, $target, $parameters)
-    {
-        if ($this->render($template, $parameters) === 'Result OK' && $target === 'target_file') {
-            return true;
-        }
-
-        return false;
-    }
-}

+ 0 - 113
Tests/Generator/AbstractBcGeneratorTest.php

@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of the Sonata package.
- *
- * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Sonata\AdminBundle\Tests\Generator;
-
-use Sonata\AdminBundle\Generator\AbstractBcGenerator;
-use Sonata\AdminBundle\Tests\Fixtures\Generator\GeneratorBc22;
-use Sonata\AdminBundle\Tests\Fixtures\Generator\GeneratorBc23;
-
-/**
- * @author Andrej Hudec <pulzarraider@gmail.com>
- */
-class AbstractBcGeneratorTest extends \PHPUnit_Framework_TestCase
-{
-    private static $errorReportingBackup;
-
-    public static function setUpBeforeClass()
-    {
-        // Disable E_STRICT errors for this test only
-        self::$errorReportingBackup = error_reporting();
-        error_reporting(self::$errorReportingBackup ^ E_STRICT);
-    }
-
-    public static function tearDownAfterClass()
-    {
-        // Restore error reporting
-        error_reporting(self::$errorReportingBackup);
-    }
-
-    public function testRenderBc22()
-    {
-        if (AbstractBcGenerator::getGeneratorVersion() != '2.2') {
-            $this->markTestSkipped('Wrong Sensio Generator version, expected 2.2');
-        }
-
-        $skeletonDir = 'path/to/templates';
-        $template = 'test.html.twig';
-        $parameters = array('foo' => 'bar');
-
-        $generator22 = new GeneratorBc22();
-        $generator22->setSkeletonDirs($skeletonDir);
-        $generator22->setBc(true);
-        $this->assertEquals('Result OK', $this->callMethod($generator22, 'renderBc', array($template, $parameters)));
-    }
-
-    public function testRenderFileBc22()
-    {
-        if (AbstractBcGenerator::getGeneratorVersion() != '2.2') {
-            $this->markTestSkipped('Wrong Sensio Generator version, expected 2.2');
-        }
-
-        $skeletonDir = 'path/to/templates';
-        $template = 'test.html.twig';
-        $parameters = array('foo' => 'bar');
-        $target = 'target_file';
-
-        $generator22 = new GeneratorBc22();
-        $generator22->setSkeletonDirs($skeletonDir);
-        $generator22->setBc(true);
-        $this->assertTrue($this->callMethod($generator22, 'renderFileBc', array($template, $target, $parameters)));
-    }
-
-    public function testRenderBc23()
-    {
-        if (AbstractBcGenerator::getGeneratorVersion() != '2.3') {
-            $this->markTestSkipped('Wrong Sensio Generator version, expected 2.3');
-        }
-
-        $skeletonDir = 'path/to/templates';
-        $template = 'test.html.twig';
-        $parameters = array('foo' => 'bar');
-
-        $generator23 = new GeneratorBc23();
-        $generator23->setSkeletonDirs($skeletonDir);
-        $generator23->setBc(false);
-        $this->assertEquals('Result OK', $this->callMethod($generator23, 'renderBc', array($template, $parameters)));
-    }
-
-    public function testRenderFileBc23()
-    {
-        if (AbstractBcGenerator::getGeneratorVersion() != '2.3') {
-            $this->markTestSkipped('Wrong Sensio Generator version, expected 2.3');
-        }
-
-        $skeletonDir = 'path/to/templates';
-        $template = 'test.html.twig';
-        $parameters = array('foo' => 'bar');
-        $target = 'target_file';
-
-        $generator23 = new GeneratorBc23();
-        $generator23->setSkeletonDirs($skeletonDir);
-        $generator23->setBc(false);
-        $this->assertTrue($this->callMethod($generator23, 'renderFileBc', array($template, $target, $parameters)));
-    }
-
-
-    protected function callMethod($obj, $name, array $args)
-    {
-        $class = new \ReflectionClass($obj);
-        $method = $class->getMethod($name);
-        $method->setAccessible(true);
-
-        return $method->invokeArgs($obj, $args);
-    }
-}