Скрипт Symfony2 с использованием PHP-оболочки - PullRequest
3 голосов
/ 19 июня 2011

Как запустить скрипт Symfony2 с помощью оболочки php?Я не могу запустить файл контроллера напрямую с помощью команды:

php FController.php

Путь к контроллеру:

domain.com/web/app_dev.php/fcontroller

Нужно ли использовать консоль Symfony2 для запуска этого сценария

Ответы [ 2 ]

6 голосов
/ 20 июня 2011

Как уже было сказано, вам нужно создать консольную команду.Создайте каталог с именем «Command» в одном из ваших пакетов (пакет должен быть зарегистрирован в AppKernel.php. Затем создайте класс в этом каталоге, он будет автоматически найден Symfony при запуске app / console .

Вот краткий пример:

<?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
3 голосов
/ 20 июня 2011

Консольная команда - правильная вещь, ее цель - быть вашим шлюзом в ваше приложение из командной строки. Если вы используете главу, посвященную консоли, то настроить консольную команду довольно просто:

http://symfony.com/doc/2.0/cookbook/console.html

Технически вы можете создать скрипт PHP, который будет очень похож на ваш фронт-контроллер, за исключением того, что вы изменили объект Request, чтобы «подделать» веб-путь (например, / foo / bar) для выполнения вашего контроллера, но консольную команду действительно подходит именно для этого.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...