Vamos a ver como programar tareas programadas en CPanel en un hosting compartido para ejecutar comandos personalizados de Symfony2.
En nuestro ejemplo tendremos la siguiente estructura de archivos de nuestro proyecto Symfony en nuestro servidor compartido:
/home/{username} | |- /app |- /src | | | |- /AppBundle | | | |- /Command | | | |-TestCommand.php | |- /vendor |- /public_html | | | |- app.php | |- test_command.log
/src/AppBundle/Command/TestCommand.php
<?php namespace AppBundle\Command; use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class TestCommand extends ContainerAwareCommand { protected function configure() { $this->setName('my:test:run'); } protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln('Welcome World!'); } }
Ahora haremos rodar cada hora nuestro comando y que salve el resultado en el archivo test_command.log. Para ello basta con ir en nuestro CPanel:
Home > Advanced > Cron Jobs
Minute: 0 Hour: * Day: * Month: * Weekday: * Command: /usr/bin/php -q /home/{username}/app/console my:test:run >/home/{username}/test_command.log
Reemplazar {username} por su nombre de usuario en su cuenta de hosting compartido.