Skip to content

Commit

Permalink
Merge 2b141ed into e90ccc0
Browse files Browse the repository at this point in the history
  • Loading branch information
psrpinto committed Jan 13, 2018
2 parents e90ccc0 + 2b141ed commit d834c33
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 34 deletions.
18 changes: 12 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,29 @@ install: ./.travis/install.php
script: ./.travis/script.php
after_script: ./.travis/after_script.php

env:
global:
- SYMFONY_DEPRECATIONS_HELPER=weak

matrix:
include:
# old PHP versions
- php: 5.4
env: SYMFONY_VERSION=2.8.* # Symfony 3 doesn't support PHP 5.4
- php: 5.6
env: SYMFONY_VERSION=3.3.*
env: SYMFONY_VERSION=3.4.*
# current PHP with all non-EOLed Symfony versions
- php: 7.1
- php: 7.2
env: SYMFONY_VERSION=2.7.*
- php: 7.1
- php: 7.2
env: SYMFONY_VERSION=2.8.*
- php: 7.1
- php: 7.2
env: SYMFONY_VERSION=3.2.*
- php: 7.1
- php: 7.2
env: SYMFONY_VERSION=3.3.*
- php: 7.1
- php: 7.2
env: SYMFONY_VERSION=3.4.*
- php: 7.2
env: SYMFONY_VERSION=dev-master
allow_failures:
- env: SYMFONY_VERSION=dev-master
4 changes: 2 additions & 2 deletions .travis/common.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ function withCodeCoverage()

function isLatestPhp()
{
return getPhpVersion() === '7.1';
return getPhpVersion() === '7.2';
}

function isLatestSymfony()
{
return getSymfonyVersion() === '3.3.*';
return getSymfonyVersion() === '3.4.*';
}

function getSymfonyVersion()
Expand Down
19 changes: 13 additions & 6 deletions DependencyInjection/AssetExtensionLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,18 @@

namespace Rj\FrontendBundle\DependencyInjection;

if (!class_exists('Symfony\Component\DependencyInjection\ChildDefinition')) {
class_alias(
'Symfony\Component\DependencyInjection\DefinitionDecorator',
'Symfony\Component\DependencyInjection\ChildDefinition'
);
}

use Rj\FrontendBundle\Util\Util;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\DefinitionDecorator;
use Symfony\Component\DependencyInjection\Reference;

class AssetExtensionLoader
Expand Down Expand Up @@ -76,8 +83,8 @@ private function createPackage($name, array $config)
$isUrl = Util::containsUrl($prefixes);

$packageDefinition = $isUrl
? new DefinitionDecorator($this->namespaceService('asset.package.url'))
: new DefinitionDecorator($this->namespaceService('asset.package.path'))
? new ChildDefinition($this->namespaceService('asset.package.url'))
: new ChildDefinition($this->namespaceService('asset.package.path'))
;

if ($config['manifest']['enabled']) {
Expand Down Expand Up @@ -110,7 +117,7 @@ private function getPackageId($name)
*/
private function createManifestVersionStrategy($packageName, $config)
{
$loader = new DefinitionDecorator($this->namespaceService('manifest.loader.'.$config['format']));
$loader = new ChildDefinition($this->namespaceService('manifest.loader.'.$config['format']));
$loader
->addArgument($config['path'])
->addArgument($config['root_key'])
Expand All @@ -119,13 +126,13 @@ private function createManifestVersionStrategy($packageName, $config)
$loaderId = $this->namespaceService("_package.$packageName.manifest_loader");
$this->container->setDefinition($loaderId, $loader);

$cachedLoader = new DefinitionDecorator($this->namespaceService('manifest.loader.cached'));
$cachedLoader = new ChildDefinition($this->namespaceService('manifest.loader.cached'));
$cachedLoader->addArgument(new Reference($loaderId));

$cachedLoaderId = $this->namespaceService("_package.$packageName.manifest_loader_cached");
$this->container->setDefinition($cachedLoaderId, $cachedLoader);

$versionStrategy = new DefinitionDecorator($this->namespaceService('version_strategy.manifest'));
$versionStrategy = new ChildDefinition($this->namespaceService('version_strategy.manifest'));
$versionStrategy->addArgument(new Reference($cachedLoaderId));

$versionStrategyId = $this->namespaceService("_package.$packageName.version_strategy");
Expand Down
2 changes: 1 addition & 1 deletion DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ private function addPackagePrefixSection($defaultValue = null)
$node = $this->createRoot('prefix')
->prototype('scalar')->end()
->defaultValue([$defaultValue])
->cannotBeEmpty()
->requiresAtLeastOneElement()
->beforeNormalization()
->ifString()
->then(function ($v) { return [$v]; })
Expand Down
5 changes: 5 additions & 0 deletions DependencyInjection/RjFrontendExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\HttpKernel\Kernel;

class RjFrontendExtension extends Extension
{
Expand All @@ -22,6 +23,10 @@ public function load(array $configs, ContainerBuilder $container)
$loader->load('version_strategy.yml');
$loader->load('manifest.yml');

if (version_compare('3.3.0', Kernel::VERSION, '>=')) {
$loader->load('commands.yml');
}

if ($config['livereload']['enabled']) {
$loader->load('livereload.yml');
$container->getDefinition($this->namespaceService('livereload.listener'))
Expand Down
5 changes: 5 additions & 0 deletions Resources/config/commands.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
services:
Rj\FrontendBundle\Command\:
resource: '../../Command/*Command.php'
tags:
- { name: console.command }
24 changes: 8 additions & 16 deletions Tests/Command/SetupCommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -282,8 +282,14 @@ private function assertOptions(array $options, array $expected, $interactive = t

// Simulate the user pressing enter. This is needed to test the default
// value, has no impact when the value is provided.
$helper = $this->command->getHelper('question');
$helper->setInputStream($this->getInputStream(PHP_EOL));
if (method_exists($this->commandTester, 'setInputs')) {
$this->commandTester->setInputs([PHP_EOL]);
} else {
$stream = fopen('php://memory', 'r+', false);
fputs($stream, PHP_EOL);
rewind($stream);
$this->command->getHelper('question')->setInputStream($stream);
}

$this->commandTester->execute($options, [
'interactive' => $interactive,
Expand All @@ -293,18 +299,4 @@ private function assertOptions(array $options, array $expected, $interactive = t
$this->assertEquals($value, $this->commandTester->getInput()->getOption($key));
}
}

/**
* @param $input
*
* @return bool|resource
*/
private function getInputStream($input)
{
$stream = fopen('php://memory', 'r+', false);
fputs($stream, $input);
rewind($stream);

return $stream;
}
}
4 changes: 3 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
"symfony/browser-kit": "^2.7|~3.0",
"symfony/filesystem": "~2.7|~3.0",
"symfony/http-foundation": "~2.7|~3.0",
"symfony/routing": "~2.7|~3.0"
"symfony/phpunit-bridge": "~2.7|~3.0",
"symfony/routing": "~2.7|~3.0",
"symfony/var-dumper": "~2.7|~3.0"
}
}
6 changes: 4 additions & 2 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@
<directory>./vendor</directory>
<directory>./Tests</directory>
<directory>./Resources</directory>
<directory>./Asset</directory>
<directory>./Command/Options/Legacy</directory>
</exclude>
</whitelist>
</filter>
<php>
<!-- See https://github.com/symfony/symfony/issues/25362 -->
<env name="SHELL_VERBOSITY" value="1"/>
</php>
</phpunit>

0 comments on commit d834c33

Please sign in to comment.