Symfony2 script benytter php shell

stemmer
3

Hvordan kan jeg starte en Symfony2 skriptet som bruker php shell? Jeg kan ikke kjøre Controller filen direkte ved hjelp av kommandoen:

php FController.php

Banen av kontrolleren er

domain.com/web/app_dev.php/fcontroller

Må jeg bruke Symfony2 konsollen til å kjøre dette skriptet?

Publisert på 19/06/2011 klokken 19:04
kilden bruker
På andre språk...                            


2 svar

stemmer
6

Som allerede har blitt sagt du trenger for å lage en konsoll kommando. Lag en katalog som heter 'Command' i en av dine pakker (bunten må være registrert i AppKernel.php. Deretter oppretter du en klasse i denne katalogen, vil det automatisk bli funnet av symfony når du kjører app / konsoll .

Her er en rask eksempel:

<?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');
    }
}

Du kan deretter kjøre kommandoen med:

$> app/console foo:bar-cmd

Og pass på alternativer som:

$> app/console foo:bar-cmd  --baz
Svarte 20/06/2011 kl. 08:24
kilden bruker

stemmer
3

En konsoll kommandoen er den riktige tingen å bruke - dens formål er å være din inngangsport inn i programmet fra kommandolinjen. Hvis du bruker kapittel konsollen kokebok, sette opp en konsoll kommandoen er ganske enkelt:

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

Du kan teknisk skape et PHP-script som ser mye som inngangs kontrolleren, bortsett fra at du har endret Request-objektet til å "fake" web banen (f.eks / foo / bar) for å utføre kontrolleren, men en konsoll kommandoen er virkelig riktig bare for dette.

Lykke til!

Svarte 19/06/2011 kl. 23:19
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more