Skip to content

Commit

Permalink
Merge pull request #21 from Elao/symfony3
Browse files Browse the repository at this point in the history
Migrate this bundle to support Symfony3
  • Loading branch information
Tom32i committed Dec 10, 2015
2 parents 60245b3 + 09948ee commit 2871918
Show file tree
Hide file tree
Showing 12 changed files with 75 additions and 57 deletions.
31 changes: 27 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,31 @@
language: php

php:
- 5.3
- 5.4
- hhvm
- 5.5
- 5.6
- 7.0

before_script: composer install --dev
matrix:
fast_finish: true
include:
- php: 5.6
env: SYMFONY_VERSION=2.8.*@dev
- php: 5.6
env: SYMFONY_VERSION="3.0.*@dev"
- php: 7.0
env: SYMFONY_VERSION="3.0.*@dev"

sudo: false

cache:
directories:
- $HOME/.composer/cache

before_install:
- composer selfupdate
- if [ "$SYMFONY_VERSION" != "" ]; then composer require "symfony/symfony:${SYMFONY_VERSION}" --no-update; fi;

install: composer update --prefer-dist --no-interaction $COMPOSER_FLAGS

script:
- vendor/bin/phpunit --coverage-text
12 changes: 3 additions & 9 deletions Form/Extension/ButtonTypeExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

namespace Elao\Bundle\FormTranslationBundle\Form\Extension;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

Expand All @@ -23,7 +25,7 @@ class ButtonTypeExtension extends TreeAwareExtension
*/
public function getExtendedType()
{
return 'button';
return ButtonType::class;
}

/**
Expand All @@ -35,12 +37,4 @@ public function configureOptions(OptionsResolver $resolver)
$resolver->setDefault('label', true);
}
}

/**
* for Sf < 2.7
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$this->configureOptions($resolver);
}
}
5 changes: 4 additions & 1 deletion Form/Extension/ChoiceTypeExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@

namespace Elao\Bundle\FormTranslationBundle\Form\Extension;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;

/**
* Choice Type Extension
*/
Expand All @@ -20,6 +23,6 @@ class ChoiceTypeExtension extends TreeAwareExtension
*/
public function getExtendedType()
{
return 'choice';
return ChoiceType::class;
}
}
13 changes: 3 additions & 10 deletions Form/Extension/CollectionTypeExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

namespace Elao\Bundle\FormTranslationBundle\Form\Extension;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
Expand All @@ -25,7 +27,7 @@ class CollectionTypeExtension extends TreeAwareExtension
*/
public function getExtendedType()
{
return 'collection';
return CollectionType::class;
}

/**
Expand All @@ -39,21 +41,12 @@ public function configureOptions(OptionsResolver $resolver)
}
}

/**
* for Sf < 2.7
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$this->configureOptions($resolver);
}

/**
* {@inheritdoc}
*/
public function finishView(FormView $view, FormInterface $form, array $options)
{
if ($this->treeBuilder && $this->keyBuilder && $options['allow_add'] && $options['prototype']) {

if ($view->vars['prototype']->vars['label'] == $options['prototype_name'].'label__') {
if (!isset($options['options']['label'])) {
$options['options']['label'] = $options['label'];
Expand Down
12 changes: 3 additions & 9 deletions Form/Extension/FormTypeExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

namespace Elao\Bundle\FormTranslationBundle\Form\Extension;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

Expand All @@ -23,7 +25,7 @@ class FormTypeExtension extends TreeAwareExtension
*/
public function getExtendedType()
{
return 'form';
return FormType::class;
}

/**
Expand All @@ -35,12 +37,4 @@ public function configureOptions(OptionsResolver $resolver)
$resolver->setDefault('label', true);
}
}

/**
* for Sf < 2.7
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$this->configureOptions($resolver);
}
}
1 change: 1 addition & 0 deletions Form/Extension/TreeAwareExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

namespace Elao\Bundle\FormTranslationBundle\Form\Extension;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\AbstractTypeExtension;
Expand Down
2 changes: 1 addition & 1 deletion Model/FormTree.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ public function offsetGet($offset)
*/
public function offsetSet($offset, $value)
{
/* Not implemented: User addParent and addChild methods */
/* Not implemented: Use addParent and addChild methods */
}

/**
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ElaoFormTranslationBundle
=========================

![](https://img.shields.io/badge/Symfony-2.6-blue.svg)
![](https://img.shields.io/badge/Symfony-3.0-blue.svg)
[![Build Status](http://api.travis-ci.org/Elao/ElaoFormTranslationBundle.png)](http://travis-ci.org/Elao/ElaoFormTranslationBundle)

Description:
Expand Down
8 changes: 4 additions & 4 deletions Resources/config/forms.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@
<service id="elao.form_translation.extension.tree_aware_extension" abstract="true" />

<service id="elao.form_translation.extension.form_type_extension" class="%elao.form_translation.extension.form_type_extension.class%" parent="elao.form_translation.extension.tree_aware_extension">
<tag name="form.type_extension" alias="form" />
<tag name="form.type_extension" extended-type="Symfony\Component\Form\Extension\Core\Type\FormType"/>
</service>

<service id="elao.form_translation.extension.collection_type_extension" class="%elao.form_translation.extension.collection_type_extension.class%" parent="elao.form_translation.extension.tree_aware_extension">
<tag name="form.type_extension" alias="collection" />
<tag name="form.type_extension" extended-type="Symfony\Component\Form\Extension\Core\Type\CollectionType"/>
</service>

<service id="elao.form_translation.extension.button_type_extension" class="%elao.form_translation.extension.button_type_extension.class%" parent="elao.form_translation.extension.tree_aware_extension">
<tag name="form.type_extension" alias="button" />
<tag name="form.type_extension" extended-type="Symfony\Component\Form\Extension\Core\Type\ButtonType"/>
</service>

<service id="elao.form_translation.extension.choice_type_extension" class="%elao.form_translation.extension.choice_type_extension.class%" parent="elao.form_translation.extension.tree_aware_extension">
<tag name="form.type_extension" alias="choice" />
<tag name="form.type_extension" extended-type="Symfony\Component\Form\Extension\Core\Type\ChoiceType"/>
</service>
</services>
</container>
22 changes: 13 additions & 9 deletions Tests/Builders/FormKeyBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@

namespace Elao\Bundle\FormTranslationBundle\Tests\Builders;

use Elao\Bundle\FormTranslationBundle\Test\FormTranslationTestCase;
use Elao\Bundle\FormTranslationBundle\Builders\FormTreeBuilder;
use Elao\Bundle\FormTranslationBundle\Builders\FormKeyBuilder;
use Elao\Bundle\FormTranslationBundle\Builders\FormTreeBuilder;
use Elao\Bundle\FormTranslationBundle\Test\FormTranslationTestCase;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

class FormKeyBuilderTest extends FormTranslationTestCase
{
Expand All @@ -16,13 +20,13 @@ public function testSimpleTreeBuilder()
$treeBuilder = new FormTreeBuilder();
$keyBuilder = new FormKeyBuilder();

$form = $this->factory->createNamed('foo', 'form');
$form = $this->factory->createNamed('foo', FormType::class);

$form->add('bar', 'text');
$form->add('bar', TextType::class);

$view = $form->createView();
$tree = $treeBuilder->getTree($view['bar']);
$label = $keyBuilder->buildKeyFromTree($tree , 'label');
$label = $keyBuilder->buildKeyFromTree($tree, 'label');

$this->assertEquals('form.foo.children.bar.label', $label);
}
Expand All @@ -35,13 +39,13 @@ public function testCollectionTreeBuilder()
$treeBuilder = new FormTreeBuilder();
$keyBuilder = new FormKeyBuilder();

$form = $this->factory->createNamed('foo', 'form');
$form = $this->factory->createNamed('foo', FormType::class);

$form->add(
'bar',
'collection',
CollectionType::class,
array(
'type' => 'text',
'entry_type' => TextType::class,
'allow_add' => true,
'allow_delete' => true,
)
Expand All @@ -56,4 +60,4 @@ public function testCollectionTreeBuilder()
$this->assertEquals('form.foo.children.bar.label', $barLabel);
$this->assertEquals('form.foo.children.bar.prototype.label', $prototypeLabel);
}
}
}
18 changes: 11 additions & 7 deletions Tests/Builders/FormTreeBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

namespace Elao\Bundle\FormTranslationBundle\Tests\Builders;

use Elao\Bundle\FormTranslationBundle\Test\FormTranslationTestCase;
use Elao\Bundle\FormTranslationBundle\Builders\FormTreeBuilder;
use Elao\Bundle\FormTranslationBundle\Test\FormTranslationTestCase;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

class FormTreeBuilderTest extends FormTranslationTestCase
{
Expand All @@ -13,9 +17,9 @@ class FormTreeBuilderTest extends FormTranslationTestCase
public function testSimpleTreeBuilder()
{
$treeBuilder = new FormTreeBuilder();
$form = $this->factory->createNamed('foo', 'form');
$form = $this->factory->createNamed('foo', FormType::class);

$form->add('bar', 'text');
$form->add('bar', TextType::class);

$formView = $form->createView();
$fooTree = $treeBuilder->getTree($formView);
Expand All @@ -38,13 +42,13 @@ public function testSimpleTreeBuilder()
public function testCollectionTreeBuilder()
{
$treeBuilder = new FormTreeBuilder();
$form = $this->factory->createNamed('foo', 'form');
$form = $this->factory->createNamed('foo', FormType::class);

$form->add(
'bar',
'collection',
CollectionType::class,
array(
'type' => 'text',
'entry_type' => TextType::class,
'allow_add' => true,
'allow_delete' => true,
)
Expand All @@ -62,4 +66,4 @@ public function testCollectionTreeBuilder()
$this->assertEquals(false, $tree[2]->isCollection());
$this->assertEquals(true, $tree[2]->isPrototype());
}
}
}
6 changes: 4 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
}
],
"require": {
"symfony/framework-bundle": "~2.6",
"symfony/form": "~2.6"
"symfony/framework-bundle": "~2.8|~3.0",
"symfony/form": "~2.8|~3.0"
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
Expand All @@ -27,6 +27,8 @@
"Elao\\Bundle\\FormTranslationBundle\\": "."
}
},
"prefer-stable": true,
"minimum-stability": "dev",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
Expand Down

0 comments on commit 2871918

Please sign in to comment.