From c60432dc9c6db9b41d944f84b23b580fd82b6801 Mon Sep 17 00:00:00 2001 From: Eric GELOEN Date: Sun, 19 Feb 2017 17:21:18 +0100 Subject: [PATCH] [Composer] Bump Symfony to 2.7 + PHP to 5.6 --- .scrutinizer.yml | 2 +- .travis.yml | 28 +++++--------- .../IvoryBase64FileExtension.php | 4 +- .../DataTransformer/Base64FileTransformer.php | 3 +- Form/Extension/Base64FileExtension.php | 37 ++++++------------- Model/Base64FileTrait.php | 2 +- .../AbstractIvoryBase64FileExtensionTest.php | 16 ++++---- .../Extension/Base64FileExtensionTest.php | 13 ++++--- Tests/IvoryBase64FileBundleTest.php | 3 +- Tests/Model/Base64FileTest.php | 6 ++- Tests/Model/UploadedBase64FileTest.php | 6 ++- composer.json | 12 +++--- travis/install.sh | 2 +- travis/script.sh | 3 +- travis/success.sh | 3 +- 15 files changed, 61 insertions(+), 79 deletions(-) diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 5e84d43..569666f 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -11,4 +11,4 @@ checks: tools: external_code_coverage: timeout: 3600 - runs: 16 + runs: 9 diff --git a/.travis.yml b/.travis.yml index 0bb3a2b..dd5f195 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ language: php php: - - 5.4 - - 5.5 - 5.6 - 7.0 - 7.1 @@ -15,8 +13,8 @@ env: global: - COMPOSER_PREFER_LOWEST=false - DOCKER_BUILD=false - - SYMFONY_DEPRECATIONS_HELPER=weak - - SYMFONY_VERSION=2.3.* + - SYMFONY_DEPRECATIONS_HELPER=strict + - SYMFONY_VERSION=2.7.* install: travis/install.sh script: travis/script.sh @@ -28,30 +26,22 @@ matrix: services: [docker] env: DOCKER_BUILD=true - php: 5.6 - env: SYMFONY_VERSION=2.3.* COMPOSER_PREFER_LOWEST=true + env: SYMFONY_VERSION=2.7.* COMPOSER_PREFER_LOWEST=true - php: 5.6 env: SYMFONY_VERSION=3.0.* COMPOSER_PREFER_LOWEST=true - php: 5.6 - env: SYMFONY_VERSION=2.4.* + env: SYMFONY_VERSION=2.8.* - php: 5.6 - env: SYMFONY_VERSION=2.5.* + env: SYMFONY_VERSION=3.0.* - php: 5.6 - env: SYMFONY_VERSION=2.6.* + env: SYMFONY_VERSION=3.1.* - php: 5.6 - env: SYMFONY_VERSION=2.7.* SYMFONY_DEPRECATIONS_HELPER=strict + env: SYMFONY_VERSION=3.2.* - php: 5.6 - env: SYMFONY_VERSION=2.8.* SYMFONY_DEPRECATIONS_HELPER=strict - - php: 5.6 - env: SYMFONY_VERSION=3.0.* SYMFONY_DEPRECATIONS_HELPER=strict - - php: 5.6 - env: SYMFONY_VERSION=3.1.* SYMFONY_DEPRECATIONS_HELPER=strict - - php: 5.6 - env: SYMFONY_VERSION=3.2.* SYMFONY_DEPRECATIONS_HELPER=strict - - php: 5.6 - env: SYMFONY_VERSION=3.3.*@dev SYMFONY_DEPRECATIONS_HELPER=strict + env: SYMFONY_VERSION=3.3.*@dev allow_failures: - php: hhvm - - env: SYMFONY_VERSION=3.3.*@dev SYMFONY_DEPRECATIONS_HELPER=strict + - env: SYMFONY_VERSION=3.3.*@dev notifications: email: geloen.eric@gmail.com diff --git a/DependencyInjection/IvoryBase64FileExtension.php b/DependencyInjection/IvoryBase64FileExtension.php index a926f10..bb7c34b 100644 --- a/DependencyInjection/IvoryBase64FileExtension.php +++ b/DependencyInjection/IvoryBase64FileExtension.php @@ -14,8 +14,8 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\Form\AbstractType; use Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension; -use Symfony\Component\HttpKernel\Kernel; /** * @author GeLo @@ -37,7 +37,7 @@ protected function loadInternal(array $config, ContainerBuilder $container) ->getDefinition($formExtension = 'ivory.base64_file.form.extension') ->addArgument($config['default']); - if (Kernel::VERSION_ID < 20800) { + if (!method_exists(AbstractType::class, 'getBlockPrefix')) { $container ->getDefinition($formExtension) ->clearTag('form.type_extension') diff --git a/Form/DataTransformer/Base64FileTransformer.php b/Form/DataTransformer/Base64FileTransformer.php index b2013e8..9f92719 100644 --- a/Form/DataTransformer/Base64FileTransformer.php +++ b/Form/DataTransformer/Base64FileTransformer.php @@ -37,7 +37,8 @@ public function transform($value) if (!$value instanceof Base64FileInterface) { throw new TransformationFailedException(sprintf( - 'Expected an "Ivory\Base64Bundle\Model\Base64FileInterface", got "%s".', + 'Expected an "%s", got "%s".', + Base64FileInterface::class, $this->getVariableType($value) )); } diff --git a/Form/Extension/Base64FileExtension.php b/Form/Extension/Base64FileExtension.php index c21e647..dc5c1db 100644 --- a/Form/Extension/Base64FileExtension.php +++ b/Form/Extension/Base64FileExtension.php @@ -12,11 +12,12 @@ namespace Ivory\Base64FileBundle\Form\Extension; use Ivory\Base64FileBundle\Form\DataTransformer\Base64FileTransformer; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractTypeExtension; +use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\OptionsResolver; -use Symfony\Component\OptionsResolver\OptionsResolverInterface; /** * @author GeLo @@ -46,31 +47,19 @@ public function buildForm(FormBuilderInterface $builder, array $options) } } - /** - * {@inheritdoc} - */ - public function setDefaultOptions(OptionsResolverInterface $resolver) - { - $this->configureOptions($resolver); - } - /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { - $resolver->setDefaults([ - 'base64' => $this->base64, - 'data_class' => function (Options $options, $value) { - return !$options['base64'] ? $value : null; - }, - ]); - - if (method_exists($resolver, 'setDefault')) { - $resolver->setAllowedTypes('base64', 'bool'); - } else { - $resolver->setAllowedTypes(['base64' => 'bool']); - } + $resolver + ->setDefaults([ + 'base64' => $this->base64, + 'data_class' => function (Options $options, $value) { + return !$options['base64'] ? $value : null; + }, + ]) + ->setAllowedTypes('base64', 'bool'); } /** @@ -78,10 +67,6 @@ public function configureOptions(OptionsResolver $resolver) */ public function getExtendedType() { - if (method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix')) { - return 'Symfony\Component\Form\Extension\Core\Type\FileType'; - } - - return 'file'; + return method_exists(AbstractType::class, 'getBlockPrefix') ? FileType::class : 'file'; } } diff --git a/Model/Base64FileTrait.php b/Model/Base64FileTrait.php index f5d1948..49fff56 100644 --- a/Model/Base64FileTrait.php +++ b/Model/Base64FileTrait.php @@ -93,7 +93,7 @@ private function load($value, $encoded = true) } else { throw new \InvalidArgumentException(sprintf( 'The base64 file value must be a string or a resource, got "%s".', - gettype($value) + is_object($value) ? get_class($value) : gettype($value) )); } } catch (\Exception $e) { diff --git a/Tests/DependencyInjection/AbstractIvoryBase64FileExtensionTest.php b/Tests/DependencyInjection/AbstractIvoryBase64FileExtensionTest.php index e548b04..e1d770d 100644 --- a/Tests/DependencyInjection/AbstractIvoryBase64FileExtensionTest.php +++ b/Tests/DependencyInjection/AbstractIvoryBase64FileExtensionTest.php @@ -12,8 +12,10 @@ namespace Ivory\Base64FileBundle\Tests\DependencyInjection; use Ivory\Base64FileBundle\DependencyInjection\IvoryBase64FileExtension; +use Ivory\Base64FileBundle\Form\Extension\Base64FileExtension; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\HttpKernel\Kernel; +use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\FileType; /** * @author GeLo @@ -65,17 +67,13 @@ private function assertForm($enabled) $this->assertTrue($this->container->has($extension = 'ivory.base64_file.form.extension')); $this->assertSame($enabled, $this->container->getDefinition($extension)->getArgument(0)); - $this->assertInstanceOf( - 'Ivory\Base64FileBundle\Form\Extension\Base64FileExtension', - $this->container->get($extension) - ); - + $this->assertInstanceOf(Base64FileExtension::class, $this->container->get($extension)); $tag = $this->container->getDefinition($extension)->getTag('form.type_extension'); - if (Kernel::VERSION_ID >= 20800) { + if (method_exists(AbstractType::class, 'getBlockPrefix')) { $this->assertSame([[ - 'extended_type' => 'Symfony\Component\Form\Extension\Core\Type\FileType', - 'extended-type' => 'Symfony\Component\Form\Extension\Core\Type\FileType', + 'extended_type' => FileType::class, + 'extended-type' => FileType::class, ]], $tag); } else { $this->assertSame([['alias' => 'file']], $tag); diff --git a/Tests/Form/Extension/Base64FileExtensionTest.php b/Tests/Form/Extension/Base64FileExtensionTest.php index 4c9382a..ef1c40c 100644 --- a/Tests/Form/Extension/Base64FileExtensionTest.php +++ b/Tests/Form/Extension/Base64FileExtensionTest.php @@ -13,6 +13,9 @@ use Ivory\Base64FileBundle\Form\Extension\Base64FileExtension; use Ivory\Base64FileBundle\Model\Base64File; +use Ivory\Base64FileBundle\Model\UploadedBase64File; +use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\Extension\Validator\ValidatorExtension; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\Forms; @@ -44,9 +47,7 @@ protected function setUp() ->addExtension(new ValidatorExtension(Validation::createValidator())) ->getFormFactory(); - $this->formType = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix') - ? 'Symfony\Component\Form\Extension\Core\Type\FileType' - : 'file'; + $this->formType = method_exists(AbstractType::class, 'getBlockPrefix') ? FileType::class : 'file'; } public function testSubmitFile() @@ -76,7 +77,7 @@ public function testSubmitMinimalValidBase64() ->submit($submitData = $this->getMinimalSubmitData()); $this->assertTrue($form->isValid()); - $this->assertInstanceOf('Ivory\Base64FileBundle\Model\UploadedBase64File', $data = $form->getData()); + $this->assertInstanceOf(UploadedBase64File::class, $data = $form->getData()); $this->assertSame($submitData['value'], $data->getData(true, false)); $this->assertSame($submitData['name'], $data->getClientOriginalName()); @@ -91,7 +92,7 @@ public function testSubmitMaximalValidBase64() ->submit($submitData = $this->getMaximalSubmitData()); $this->assertTrue($form->isValid()); - $this->assertInstanceOf('Ivory\Base64FileBundle\Model\UploadedBase64File', $data = $form->getData()); + $this->assertInstanceOf(UploadedBase64File::class, $data = $form->getData()); $this->assertSame($submitData['value'], $data->getData(true, false)); $this->assertSame($submitData['name'], $data->getClientOriginalName()); @@ -161,7 +162,7 @@ public function testValidInitialData() /** * @expectedException \Symfony\Component\Form\Exception\TransformationFailedException - * @expectedExceptionMessage Expected an "Ivory\Base64Bundle\Model\Base64FileInterface", got "stdClass". + * @expectedExceptionMessage Expected an "Ivory\Base64FileBundle\Model\Base64FileInterface", got "stdClass". */ public function testInvalidInitialData() { diff --git a/Tests/IvoryBase64FileBundleTest.php b/Tests/IvoryBase64FileBundleTest.php index 81a26a3..4bef775 100644 --- a/Tests/IvoryBase64FileBundleTest.php +++ b/Tests/IvoryBase64FileBundleTest.php @@ -12,6 +12,7 @@ namespace Ivory\Base64FileBundle\Tests; use Ivory\Base64FileBundle\IvoryBase64FileBundle; +use Symfony\Component\HttpKernel\Bundle\Bundle; /** * @author GeLo @@ -33,6 +34,6 @@ protected function setUp() public function testInheritance() { - $this->assertInstanceOf('Symfony\Component\HttpKernel\Bundle\Bundle', $this->bundle); + $this->assertInstanceOf(Bundle::class, $this->bundle); } } diff --git a/Tests/Model/Base64FileTest.php b/Tests/Model/Base64FileTest.php index 1e8793d..61576c1 100644 --- a/Tests/Model/Base64FileTest.php +++ b/Tests/Model/Base64FileTest.php @@ -12,6 +12,8 @@ namespace Ivory\Base64FileBundle\Tests\Model; use Ivory\Base64FileBundle\Model\Base64File; +use Ivory\Base64FileBundle\Model\Base64FileInterface; +use Symfony\Component\HttpFoundation\File\File; /** * @author GeLo @@ -55,8 +57,8 @@ public function testInheritance() { $file = new Base64File($this->base64); - $this->assertInstanceOf('Ivory\Base64FileBundle\Model\Base64FileInterface', $file); - $this->assertInstanceOf('Symfony\Component\HttpFoundation\File\File', $file); + $this->assertInstanceOf(Base64FileInterface::class, $file); + $this->assertInstanceOf(File::class, $file); } public function testFromBase64ResourceToBase64Resource() diff --git a/Tests/Model/UploadedBase64FileTest.php b/Tests/Model/UploadedBase64FileTest.php index 7c27e9b..925ed17 100644 --- a/Tests/Model/UploadedBase64FileTest.php +++ b/Tests/Model/UploadedBase64FileTest.php @@ -11,7 +11,9 @@ namespace Ivory\Base64FileBundle\Tests\Model; +use Ivory\Base64FileBundle\Model\Base64FileInterface; use Ivory\Base64FileBundle\Model\UploadedBase64File; +use Symfony\Component\HttpFoundation\File\UploadedFile; /** * @author GeLo @@ -61,8 +63,8 @@ public function testInheritance() { $file = new UploadedBase64File($this->base64, $this->name); - $this->assertInstanceOf('Ivory\Base64FileBundle\Model\Base64FileInterface', $file); - $this->assertInstanceOf('Symfony\Component\HttpFoundation\File\UploadedFile', $file); + $this->assertInstanceOf(Base64FileInterface::class, $file); + $this->assertInstanceOf(UploadedFile::class, $file); } public function testValidity() diff --git a/composer.json b/composer.json index c4721b9..01a3553 100644 --- a/composer.json +++ b/composer.json @@ -11,16 +11,16 @@ } ], "require": { - "php": "^5.4|^7.0", - "symfony/framework-bundle": "^2.3|^3.0", - "symfony/form": "^2.3|^3.0" + "php": "^5.6|^7.0", + "symfony/framework-bundle": "^2.7|^3.0", + "symfony/form": "^2.7|^3.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^2.0", - "phpunit/phpunit": "^4.0|^5.0", + "phpunit/phpunit": "^5.0", "symfony/phpunit-bridge": "^2.7|^3.0", - "symfony/validator": "^2.3|^3.0", - "symfony/yaml": "^2.3|^3.0" + "symfony/validator": "^2.7|^3.0", + "symfony/yaml": "^2.7|^3.0" }, "autoload": { "psr-4": { "Ivory\\Base64FileBundle\\": "" } diff --git a/travis/install.sh b/travis/install.sh index 0f18385..8c0ca2a 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -2,7 +2,7 @@ set -e -SYMFONY_VERSION=${SYMFONY_VERSION-2.3.*} +SYMFONY_VERSION=${SYMFONY_VERSION-2.7.*} COMPOSER_PREFER_LOWEST=${COMPOSER_PREFER_LOWEST-false} DOCKER_BUILD=${DOCKER_BUILD-false} diff --git a/travis/script.sh b/travis/script.sh index 0e8067b..8045715 100755 --- a/travis/script.sh +++ b/travis/script.sh @@ -2,10 +2,11 @@ set -e +TRAVIS_PHP_VERSION=${TRAVIS_PHP_VERSION-5.6} DOCKER_BUILD=${DOCKER_BUILD-false} if [ "$DOCKER_BUILD" = false ]; then - vendor/bin/phpunit --coverage-clover build/clover.xml + vendor/bin/phpunit `if [ ! "$TRAVIS_PHP_VERSION" = "hhvm" ]; then echo "--coverage-clover build/clover.xml"; fi` fi if [ "$DOCKER_BUILD" = true ]; then diff --git a/travis/success.sh b/travis/success.sh index eca3c0f..9cdcf18 100755 --- a/travis/success.sh +++ b/travis/success.sh @@ -2,9 +2,10 @@ set -e +TRAVIS_PHP_VERSION=${TRAVIS_PHP_VERSION-5.6} DOCKER_BUILD=${DOCKER_BUILD-false} -if [ "$DOCKER_BUILD" = false ]; then +if [ "$DOCKER_BUILD" = false ] && [ ! "$TRAVIS_PHP_VERSION" = "hhvm" ]; then wget https://scrutinizer-ci.com/ocular.phar php ocular.phar code-coverage:upload --format=php-clover build/clover.xml fi