【发布时间】:2015-12-22 22:14:56
【问题描述】:
我正在尝试使我的 symfony 3.0 应用程序能够与多个内核一起工作。 真正的目标:一个项目中的多个应用程序
一般情况下一切正常。我编辑了 bin/console 它的内容完全如下。它完全可以通过php bin/console --app=api得到我需要的结果
但是当我执行composer install bin/console 时自然会抛出异常,它不知道--app 参数。我想制作类似composer install --app=api 的东西,并且期望的行为会将参数传递给bin/console 我检查了文档,几乎互联网的每个像素都找不到解决方案。
#!/usr/bin/env php
<?php
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Debug\Debug;
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
set_time_limit(0);
/**
* @var Composer\Autoload\ClassLoader $loader
*/
$loader = require __DIR__.'/../apps/autoload.php';
$input = new ArgvInput();
$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
$app = $input->getParameterOption(array('--app', '-a'));
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
if ($debug) {
Debug::enable();
}
switch ($app) {
case 'api':
$kernel = new ApiKernel($env, $debug);
break;
case 'frontend':
$kernel = new FrontendKernel($env, $debug);
break;
default:
throw new \InvalidArgumentException("[--app|-a=<app>] app: api|frontend");
break;
}
$application = new Application($kernel);
$application->getDefinition()->addOptions([
new InputOption('--app', '-a', InputOption::VALUE_REQUIRED, 'The application to operate in.'),
]);
$application->run($input);
【问题讨论】:
标签: php symfony composer-php