Skip to content

Commit

Permalink
Fix sf3 (#155)
Browse files Browse the repository at this point in the history
Add Symfony 3.0 support
  • Loading branch information
blump authored and dbu committed Jun 14, 2016
1 parent d0fca73 commit 77d34a3
Show file tree
Hide file tree
Showing 10 changed files with 80 additions and 22 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ matrix:
env: SYMFONY_VERSION=2.3.*
- php: 5.6
env: SYMFONY_VERSION=2.8.*
- php: 5.6
env: SYMFONY_VERSION=3.0.*
fast_finish: true

before_install:
Expand Down
3 changes: 2 additions & 1 deletion Form/Type/FileType.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

use Symfony\Cmf\Bundle\MediaBundle\File\UploadFileHelperInterface;
use Symfony\Cmf\Bundle\MediaBundle\Form\DataTransformer\ModelToFileTransformer;
use Symfony\Cmf\Bundle\MediaBundle\Util\LegacyFormHelper;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
Expand Down Expand Up @@ -56,7 +57,7 @@ public function __construct($class, UploadFileHelperInterface $uploadFileHelper)
*/
public function getParent()
{
return 'file';
return LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\FileType');
}

/**
Expand Down
11 changes: 4 additions & 7 deletions Tests/Resources/Controller/PhpcrFileTestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,16 @@
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Cmf\Bundle\MediaBundle\File\UploadFileHelperInterface;
use Symfony\Cmf\Bundle\MediaBundle\Tests\Resources\Document\Content;
use Symfony\Cmf\Bundle\MediaBundle\Util\LegacyFormHelper;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class PhpcrFileTestController extends Controller
{
public function getUploadForm()
{
$type = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix') ? 'Symfony\Component\Form\Extension\Core\Type\FileType' : 'file';

return $this->container->get('form.factory')->createNamedBuilder(null, 'form')
->add('file', $type)
return $this->container->get('form.factory')->createNamedBuilder(null, LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\FormType'))
->add('file', LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\FileType'))
->getForm()
;
}
Expand All @@ -38,12 +37,10 @@ protected function getContentForm(Content $contentObject = null)
$contentObject = new Content();
}

$type = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix') ? 'Symfony\Cmf\Bundle\MediaBundle\Form\Type\FileType' : 'cmf_media_file';

return $this->createFormBuilder($contentObject)
->add('name')
->add('title')
->add('file', $type, array('required' => $is_new))
->add('file', LegacyFormHelper::getType('Symfony\Cmf\Bundle\MediaBundle\Form\Type\FileType'), array('required' => $is_new))
->getForm()
;
}
Expand Down
10 changes: 4 additions & 6 deletions Tests/Resources/Controller/PhpcrImageTestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,16 @@
use Symfony\Cmf\Bundle\MediaBundle\Doctrine\Phpcr\Image;
use Symfony\Cmf\Bundle\MediaBundle\File\UploadFileHelperInterface;
use Symfony\Cmf\Bundle\MediaBundle\Tests\Resources\Document\Content;
use Symfony\Cmf\Bundle\MediaBundle\Util\LegacyFormHelper;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class PhpcrImageTestController extends Controller
{
protected function getUploadForm()
{
$type = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix') ? 'Symfony\Component\Form\Extension\Core\Type\FileType' : 'file';

return $this->container->get('form.factory')->createNamedBuilder(null, 'form')
->add('image', $type)
return $this->container->get('form.factory')->createNamedBuilder(null, LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\FormType'))
->add('image', LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\FileType'))
->getForm()
;
}
Expand All @@ -37,12 +36,11 @@ protected function getContentForm(Content $contentObject = null, array $imageOpt
if (is_null($contentObject)) {
$contentObject = new Content();
}
$type = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix') ? 'Symfony\Cmf\Bundle\MediaBundle\Form\Type\ImageType' : 'cmf_media_image';

return $this->createFormBuilder($contentObject)
->add('name')
->add('title')
->add('file', $type, array_merge(array('required' => false, 'label' => 'Image'), $imageOptions))
->add('file', LegacyFormHelper::getType('Symfony\Cmf\Bundle\MediaBundle\Form\Type\ImageType'), array_merge(array('required' => false, 'label' => 'Image'), $imageOptions))
->getForm()
;
}
Expand Down
5 changes: 0 additions & 5 deletions Tests/Resources/app/config/cmf_media.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
twig:
form:
resources:
- 'CmfMediaBundle:Form:fields.html.twig'

cmf_media:
persistence:
phpcr:
Expand Down
7 changes: 7 additions & 0 deletions Tests/Resources/app/config/cmf_media_2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
imports:
- { resource: cmf_media.yml }

twig:
form:
resources:
- 'CmfMediaBundle:Form:fields.html.twig'
6 changes: 6 additions & 0 deletions Tests/Resources/app/config/cmf_media_3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
imports:
- { resource: cmf_media.yml }

twig:
form_themes:
- 'CmfMediaBundle:Form:fields.html.twig'
6 changes: 5 additions & 1 deletion Tests/Resources/app/config/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,9 @@
$container->setParameter('cmf_testing.bundle_fqn', 'Symfony\Cmf\Bundle\MediaBundle');
$loader->import(CMF_TEST_CONFIG_DIR.'/default.php');
$loader->import(CMF_TEST_CONFIG_DIR.'/phpcr_odm.php');
$loader->import(__DIR__.'/cmf_media.yml');
if (version_compare(strtolower(\Symfony\Component\HttpKernel\Kernel::VERSION), '3.0', '<')) {
$loader->import(__DIR__.'/cmf_media_2.yml');
} else {
$loader->import(__DIR__.'/cmf_media_3.yml');
}
$loader->import(__DIR__.'/security.yml');
48 changes: 48 additions & 0 deletions Util/LegacyFormHelper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php

/*
* This file is part of the Symfony CMF package.
*
* (c) 2011-2015 Symfony CMF
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Symfony\Cmf\Bundle\MediaBundle\Util;

final class LegacyFormHelper
{
private static $map = array(
'Symfony\Cmf\Bundle\MediaBundle\Form\Type\FileType' => 'cmf_media_file',
'Symfony\Cmf\Bundle\MediaBundle\Form\Type\ImageType' => 'cmf_media_image',
'Symfony\Component\Form\Extension\Core\Type\FileType' => 'file',
'Symfony\Component\Form\Extension\Core\Type\FormType' => 'form',
);

public static function getType($class)
{
if (!self::isLegacy()) {
return $class;
}

if (!isset(self::$map[$class])) {
throw new \InvalidArgumentException(sprintf('Form type with class "%s" can not be found. Please check for typos or add it to the map in LegacyFormHelper', $class));
}

return self::$map[$class];
}

public static function isLegacy()
{
return !method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix');
}

private function __construct()
{
}

private function __clone()
{
}
}
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
],
"require": {
"php": "^5.3.9|^7.0",
"symfony/framework-bundle": "~2.3"
"symfony/framework-bundle": "~2.3|~3.0"
},
"require-dev": {
"twig/twig": "^1.12|^2.0",
"symfony-cmf/testing": "^1.3",
"doctrine/phpcr-odm": "^1.3",
"doctrine/annotations": "^1.1.2",
"jms/serializer-bundle": "^0.12|^1.0",
"liip/imagine-bundle": "~1.0.4",
"liip/imagine-bundle": "^1.0.4",
"mikey179/vfsStream": "^1.2"
},
"suggest": {
Expand Down

0 comments on commit 77d34a3

Please sign in to comment.