8000 Revert "bug #29154 [FrameworkBundle] Define APP_ENV/APP_DEBUG from argv via Application::bootstrapEnv() by nicolas-grekas · Pull Request #29197 · symfony/symfony · GitHub
[go: up one dir, main page]

Skip to content

Revert "bug #29154 [FrameworkBundle] Define APP_ENV/APP_DEBUG from argv via Application::bootstrapEnv() #29197

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 13, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 2 additions & 21 deletions UPGRADE-4.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,27 +177,8 @@ FrameworkBundle
with dependency injection instead.
* The `--env` and `--no-debug` console options have been deprecated, define the `APP_ENV` and
`APP_DEBUG` environment variables instead.
If you want to keep using `--env` and `--no-debug`, update your `bin/console` file to make it call
`Application::bootstrapEnv()`.

Before:
```php
$input = new ArgvInput();
$env = $input->getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev', true);
$debug = (bool) ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)) && !$input->hasParameterOption('--no- 8000 debug', true);
$kernel = new Kernel($env, $debug);
$application = new Application($kernel);
$application->run($input);
```

After:
```php
Application::bootstrapEnv($_SERVER['argv']);
$kernel = new Kernel($_SERVER['APP_ENV'], $_SERVER['APP_DEBUG']);
$application = new Application($kernel);
$application->run();
```

If you want to keep using `--env` and `--no-debug`, you can take inspiration from
https://github.com/symfony/recipes/blob/master/symfony/console/3.3/bin/console
* The `Templating\Helper\TranslatorHelper::transChoice()` method has been deprecated, use the `trans()` one instead with a `%count%` parameter.
* Deprecated support for legacy translations directories `src/Resources/translations/` and `src/Resources/<BundleName>/translations/`, use `translations/` instead.
* Support for the legacy directory structure in `translation:update` and `debug:translation` commands has been deprecated.
Expand Down
23 changes: 2 additions & 21 deletions UPGRADE-5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,27 +166,8 @@ FrameworkBundle
with dependency injection instead.
* The `--env` and `--no-debug` console options have been removed, define the `APP_ENV` and
`APP_DEBUG` environment variables instead.
If you want to keep using `--env` and `--no-debug`, update your `bin/console` file to make it call
`Application::bootstrapEnv()`.

Before:
```php
$input = new ArgvInput();
$env = $input->getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev', true);
$debug = (bool) ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)) && !$input->hasParameterOption('--no-debug', true);
$kernel = new Kernel($env, $debug);
$application = new Application($kernel);
$application->run($input);
```

After:
```php
Application::bootstrapEnv($_SERVER['argv']);
$kernel = new Kernel($_SERVER['APP_ENV'], $_SERVER['APP_DEBUG']);
$application = new Application($kernel);
$application->run();
```

If you want to keep using `--env` and `--no-debug`, you can take inspiration from
https://github.com/symfony/recipes/blob/master/symfony/console/3.3/bin/console
* The `Templating\Helper\TranslatorHelper::transChoice()` method has been removed, use the `trans()` one instead with a `%count%` parameter.
* Removed support for legacy translations directories `src/Resources/translations/` and `src/Resources/<BundleName>/translations/`, use `translations/` instead.
* Support for the legacy directory structure in `translation:update` and `debug:translation` commands has been removed.
Expand Down
6 changes: 2 additions & 4 deletions src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,8 @@ CHANGELOG
* Removed the `framework.messenger.encoder` and `framework.messenger.decoder` options. Use the `framework.messenger.serializer.id` option to replace the Messenger serializer.
* Deprecated the `ContainerAwareCommand` class in favor of `Symfony\Component\Console\Command\Command`
* Made `debug:container` and `debug:autowiring` ignore backslashes in service ids
* Deprecated the `--env` console option and its "-e" shortcut, set the "APP_ENV" environment variable
or use `Application::bootstrapEnv()` instead.
* Deprecated the `--no-debug` console option, set the "APP_DEBUG" environment variable to "0"
or use `Application::bootstrapEnv()` instead.
* Deprecated `--env` and `--no-debug` console options, define the `APP_ENV` and `APP_DEBUG` environment variables or
parse input arguments as done in https://github.com/symfony/recipes/blob/master/symfony/console/3.3/bin/console instead
* Deprecated the `Templating\Helper\TranslatorHelper::transChoice()` method, use the `trans()` one instead with a `%count%` parameter
* Deprecated `CacheCollectorPass`. Use `Symfony\Component\Cache\DependencyInjection\CacheCollectorPass` instead.
* Deprecated `CachePoolClearerPass`. Use `Symfony\Component\Cache\DependencyInjection\CachePoolClearerPass` instead.
Expand Down
29 changes: 0 additions & 29 deletions src/Symfony/Bundle/FrameworkBundle/Console/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,35 +207,6 @@ protected function registerCommands()
}
}

/**
* Defines the "APP_ENV" and "APP_DEBUG" environment variables by consuming --env and --no-debug from the command line arguments.
*/
public static function bootstrapEnv(array &$argv)
{
for ($i = 0; $i < \count($argv) && '--' !== $v = $argv[$i]; ++$i) {
if ('--no-debug' === $v) {
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
$argvUnset[$i] = true;
break;
}
}

for ($i = 0; $i < \count($argv) && '--' !== $v = $argv[$i]; ++$i) {
if (!$v || '-' !== $v[0] || !preg_match('/^-(?:-env(?:=|$)|e=?)(.*)$/D', $v, $v)) {
continue;
}
if (!empty($v[1]) || !empty($argv[1 + $i])) {
putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = empty($v[1]) ? $argv[1 + $i] : $v[1]);
$argvUnset[$i] = $argvUnset[$i + empty($v[1])] = true;
}
break;
}

if (!empty($argvUnset)) {
$argv = array_values(array_diff_key($argv, $argvUnset));
}
}

private function renderRegistrationErrors(InputInterface $input, OutputInterface $output)
{
if ($output instanceof ConsoleOutputInterface) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,63 +283,6 @@ private function createBundleMock(array $commands)

return $bundle;
}

public function testBootstrapEnv()
{
$argv = array('--no-debug', '--env=testBootstrapEnv', 'foo=bar');
Application::bootstrapEnv($argv);

$this->assertSame($_SERVER['APP_DEBUG'], '0');
$this->assertSame($_ENV['APP_DEBUG'], '0');
$this->assertSame('0', getenv('APP_DEBUG'));
$this->assertSame('testBootstrapEnv', $_SERVER['APP_ENV']);
$this->assertSame('testBootstrapEnv', $_ENV['APP_ENV']);
$this->assertSame('testBootstrapEnv', getenv('APP_ENV'));
$this->assertSame(array('foo=bar'), $argv);

unset($_SERVER['APP_ENV']);
unset($_ENV['APP_ENV']);
putenv('APP_ENV');
unset($_SERVER['APP_DEBUG']);
unset($_ENV['APP_DEBUG']);
putenv('APP_DEBUG');

$argv = array('--env', 'testBootstrapEnv', 'foo=bar');
Application::bootstrapEnv($argv);

$this->assertSame('testBootstrapEnv', $_SERVER['APP_ENV']);
$this->assertSame('testBootstrapEnv', $_ENV['APP_ENV']);
$this->assertSame('testBootstrapEnv', getenv('APP_ENV'));
$this->assertSame(array('foo=bar'), $argv);

unset($_SERVER['APP_ENV']);
unset($_ENV['APP_ENV']);
putenv('APP_ENV');

$argv = array('-e', 'testBootstrapEnv', 'foo=bar');
Application::bootstrapEnv($argv);

$this->assertSame('testBootstrapEnv', $_SERVER['APP_ENV']);
$this->assertSame('testBootstrapEnv', $_ENV['APP_ENV']);
$this->assertSame('testBootstrapEnv', getenv('APP_ENV'));
$this->assertSame(array('foo=bar'), $argv);

unset($_SERVER['APP_ENV']);
unset($_ENV['APP_ENV']);
putenv('APP_ENV');

$argv = array('-e=testBootstrapEnv', 'foo=bar');
Application::bootstrapEnv($argv);

$this->assertSame('testBootstrapEnv', $_SERVER['APP_ENV']);
$this->assertSame('testBootstrapEnv', $_ENV['APP_ENV']);
$this->assertSame('testBootstrapEnv', getenv('APP_ENV'));
544E $this->assertSame(array('foo=bar'), $argv);

unset($_SERVER['APP_ENV']);
unset($_ENV['APP_ENV']);
putenv('APP_ENV');
}
}

class ThrowingCommand extends Command
Expand Down
0