phpシェルを使用してSymfony2スクリプトを起動するにはどうすればよいですか?私は、コマンドを使用して、コントローラファイルを直接実行することはできません。phpシェルを使用するSymfony2スクリプト
php FController.php
コントローラのパスが
domain.com/web/app_dev.php/fcontroller
が、私はこのスクリプトを実行するために、Symfony2のコンソールを使用する必要がありますでしょうか?
phpシェルを使用してSymfony2スクリプトを起動するにはどうすればよいですか?私は、コマンドを使用して、コントローラファイルを直接実行することはできません。phpシェルを使用するSymfony2スクリプト
php FController.php
コントローラのパスが
domain.com/web/app_dev.php/fcontroller
が、私はこのスクリプトを実行するために、Symfony2のコンソールを使用する必要がありますでしょうか?
コンソールコマンドは正しいものです。その目的は、コマンドラインからアプリケーションへのゲートウェイになることです。コンソールクックブックの章を使用している場合は、コンソールコマンドの設定は非常に簡単です:
http://symfony.com/doc/2.0/cookbook/console.html
あなたは、技術的にはあなたがRequestオブジェクトを変更したことを除いて、ずっとあなたのフロントコントローラのように見えますPHPスクリプトを作成することができますあなたのコントローラを実行するためにWebパス(例えば/ foo/bar)を "偽造"するが、実際にはコンソールコマンドがこのためだけである。
幸運を祈る!
既に述べたように、コンソールコマンドを作成する必要があります。あなたのバンドルの1つに「Command」というディレクトリを作成します(バンドルはAppKernel.phpに登録する必要があります)。このディレクトリにクラスを作成すると、app/consoleを実行すると自動的にsymfonyが見つかります。
ここは簡単な例です:
<?php
namespace Acme\FooBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\Command,
Symfony\Component\Console\Input\InputOption,
Symfony\Component\Console\Input\InputInterface,
Symfony\Component\Console\Output\OutputInterface;
class BarCommand extends Command
{
protected function configure()
{
$this
->setName('foo:bar-cmd')
->setDescription('Test command')
->addOption('baz', null, InputOption::VALUE_NONE, 'Test option');
;
}
/**
* Execute the command
* The environment option is automatically handled.
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln('Test command');
}
}
あなたは、その後でコマンドを実行できます。
$> app/console foo:bar-cmd
などのオプションを渡す:
$> app/console foo:bar-cmd --baz