[DependencyInjection][Console] tighten types

This commit is contained in:
Nicolas Grekas 2021-07-05 08:27:11 +02:00
parent 44f08fa121
commit a35a9bb7a0
10 changed files with 31 additions and 64 deletions

View File

@ -31,10 +31,10 @@ class InputArgument
private $description;
/**
* @param string $name The argument name
* @param int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL
* @param string $description A description text
* @param mixed $default The default value (for self::OPTIONAL mode only)
* @param string $name The argument name
* @param int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL
* @param string $description A description text
* @param string|bool|int|float|array|null $default The default value (for self::OPTIONAL mode only)
*
* @throws InvalidArgumentException When argument mode is not valid
*/
@ -86,7 +86,7 @@ class InputArgument
/**
* Sets the default value.
*
* @param mixed $default The default value
* @param string|bool|int|float|array|null $default
*
* @throws LogicException When incorrect default value is given
*/
@ -110,7 +110,7 @@ class InputArgument
/**
* Returns the default value.
*
* @return mixed
* @return string|bool|int|float|array|null
*/
public function getDefault()
{

View File

@ -185,9 +185,7 @@ class InputDefinition
}
/**
* Gets the default values.
*
* @return array An array of default values
* @return array<string|bool|int|float|array|null>
*/
public function getArgumentDefaults()
{
@ -316,9 +314,7 @@ class InputDefinition
}
/**
* Gets an array of default values.
*
* @return array An array of all default values
* @return array<string|bool|int|float|array|null>
*/
public function getOptionDefaults()
{

View File

@ -51,9 +51,9 @@ interface InputInterface
* Does not necessarily return the correct result for short options
* when multiple flags are combined in the same option.
*
* @param string|array $values The value(s) to look for in the raw parameters (can be an array)
* @param mixed $default The default value to return if no result is found
* @param bool $onlyParams Only check real parameters, skip those following an end of options (--) signal
* @param string|array $values The value(s) to look for in the raw parameters (can be an array)
* @param string|bool|int|float|array|null $default The default value to return if no result is found
* @param bool $onlyParams Only check real parameters, skip those following an end of options (--) signal
*
* @return mixed The option value
*/
@ -76,7 +76,7 @@ interface InputInterface
/**
* Returns all the given arguments merged with the default values.
*
* @return array
* @return array<string|bool|int|float|array|null>
*/
public function getArguments();
@ -113,7 +113,7 @@ interface InputInterface
/**
* Returns all the given options merged with the default values.
*
* @return array
* @return array<string|bool|int|float|array|null>
*/
public function getOptions();

View File

@ -48,11 +48,9 @@ class InputOption
private $description;
/**
* @param string $name The option name
* @param string|array|null $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
* @param int|null $mode The option mode: One of the VALUE_* constants
* @param string $description A description text
* @param mixed $default The default value (must be null for self::VALUE_NONE)
* @param string|array|null $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
* @param int|null $mode The option mode: One of the VALUE_* constants
* @param string|bool|int|float|array|null $default The default value (must be null for self::VALUE_NONE)
*
* @throws InvalidArgumentException If option mode is invalid or incompatible
*/
@ -162,11 +160,7 @@ class InputOption
}
/**
* Sets the default value.
*
* @param mixed $default The default value
*
* @throws LogicException When incorrect default value is given
* @param string|bool|int|float|array|null $default
*/
public function setDefault($default = null)
{
@ -188,7 +182,7 @@ class InputOption
/**
* Returns the default value.
*
* @return mixed
* @return string|bool|int|float|array|null
*/
public function getDefault()
{

View File

@ -32,8 +32,8 @@ class Question
private $trimmable = true;
/**
* @param string $question The question to ask to the user
* @param mixed $default The default answer to return if the user enters nothing
* @param string $question The question to ask to the user
* @param string|bool|int|float|null $default The default answer to return if the user enters nothing
*/
public function __construct(string $question, $default = null)
{
@ -54,7 +54,7 @@ class Question
/**
* Returns the default answer.
*
* @return mixed
* @return string|bool|int|float|null
*/
public function getDefault()
{

View File

@ -109,7 +109,7 @@ class Container implements ResettableContainerInterface
*
* @param string $name The parameter name
*
* @return mixed
* @return array|bool|string|int|float|null
*
* @throws InvalidArgumentException if the parameter is not defined
*/
@ -133,8 +133,8 @@ class Container implements ResettableContainerInterface
/**
* Sets a parameter.
*
* @param string $name The parameter name
* @param mixed $value The parameter value
* @param string $name The parameter name
* @param array|bool|string|int|float|null $value The parameter value
*/
public function setParameter($name, $value)
{

View File

@ -74,7 +74,7 @@ interface ContainerInterface extends PsrContainerInterface
*
* @param string $name The parameter name
*
* @return mixed The parameter value
* @return array|bool|string|int|float|null
*
* @throws InvalidArgumentException if the parameter is not defined
*/
@ -92,8 +92,8 @@ interface ContainerInterface extends PsrContainerInterface
/**
* Sets a parameter.
*
* @param string $name The parameter name
* @param mixed $value The parameter value
* @param string $name The parameter name
* @param array|bool|string|int|float|null $value The parameter value
*/
public function setParameter($name, $value);
}

View File

@ -36,7 +36,7 @@ class ContainerBag extends FrozenParameterBag implements ContainerBagInterface
/**
* {@inheritdoc}
*
* @return mixed
* @return array|bool|string|int|float|null
*/
public function get($name)
{

View File

@ -47,7 +47,7 @@ interface ParameterBagInterface
*
* @param string $name The parameter name
*
* @return mixed The parameter value
* @return array|bool|string|int|float|null
*
* @throws ParameterNotFoundException if the parameter is not defined
*/
@ -63,8 +63,8 @@ interface ParameterBagInterface
/**
* Sets a service container parameter.
*
* @param string $name The parameter name
* @param mixed $value The parameter value
* @param string $name The parameter name
* @param array|bool|string|int|float|null $value The parameter value
*
* @throws LogicException if the parameter can not be set
*/

View File

@ -47,7 +47,6 @@ use Symfony\Component\DependencyInjection\Tests\Fixtures\StubbedTranslator;
use Symfony\Component\DependencyInjection\Tests\Fixtures\TestDefinition1;
use Symfony\Component\DependencyInjection\Tests\Fixtures\TestServiceSubscriber;
use Symfony\Component\DependencyInjection\TypedReference;
use Symfony\Component\DependencyInjection\Variable;
use Symfony\Component\ExpressionLanguage\Expression;
require_once __DIR__.'/../Fixtures/includes/autowiring_classes.php';
@ -164,28 +163,6 @@ class PhpDumperTest extends TestCase
$this->assertStringEqualsFile(self::$fixturesPath.'/php/custom_container_class_with_mandatory_constructor_arguments.php', $dumper->dump(['base_class' => 'ConstructorWithMandatoryArgumentsContainer', 'namespace' => 'Symfony\Component\DependencyInjection\Tests\Fixtures\Container']));
}
/**
* @dataProvider provideInvalidParameters
*/
public function testExportParameters($parameters)
{
$this->expectException(\InvalidArgumentException::class);
$container = new ContainerBuilder(new ParameterBag($parameters));
$container->compile();
$dumper = new PhpDumper($container);
$dumper->dump();
}
public function provideInvalidParameters()
{
return [
[['foo' => new Definition('stdClass')]],
[['foo' => new Expression('service("foo").foo() ~ (container.hasParameter("foo") ? parameter("foo") : "default")')]],
[['foo' => new Reference('foo')]],
[['foo' => new Variable('foo')]],
];
}
public function testAddParameters()
{
$container = include self::$fixturesPath.'/containers/container8.php';