This tutorial is deprecated. It was written when Symfony2 was in beta.
In Symfony 1.x a task is a command line tool to help perform tasks around the application. The same is in Symfony 2. Unfortunately in Symfony2 there is no tool to auto-generate some code for these. To create a Symfony2 Command you must to have or to create in your Bundle a folder named Command. Here, you must create a file named MytaskCommand.php with the following code:
<?php namespace ApplicationVremeaBundleCommand; use SymfonyBundleFrameworkBundleCommandCommand; use SymfonyComponentConsoleInputInputDefinition; use SymfonyComponentConsoleInputInputOption; use SymfonyComponentConsoleInputInputArgument; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; use SymfonyComponentRazvanUtilsCurl; class ImportCommand extends Command { const NEWLINE = true; private $connection; protected function configure() { parent::configure(); $this ->setName('tudorica:razvan') ->addArgument('type', InputArgument::REQUIRED, 'Type') ->addOption('country', 'c', InputOption::VALUE_OPTIONAL, 'Country', '') ; } /** * Executes the current command. * * @param InputInterface $input An InputInterface instance * @param OutputInterface $output An OutputInterface instance * * @return integer 0 if everything went fine, or an error code * * @throws LogicException When this abstract class is not implemented */ protected function execute(InputInterface $input, OutputInterface $output) { // your code here. //if you want to access database (must to setup doctrine.dbal) $this->connection = $this->container->get('database_connection'); //to get the user input argument "type" for this command $type = $input->getArgument('type'); //to get use option "contry" for this command $country = $input->getOption('country'); //to write a message (in symfony1.x was named log). $output->write('type: '.$type, true); } }
N
ow, you can open a console and go to app folder. If you write:
./console
you will see something like
router :debug Displays current routes for an application :dump-apache Dumps all routes as Apache rewrite rules tudorica :razvan
You can execute this Command with: ./console tudorica:razvan