Vamos ver como programar tarefas agendadas no CPanel em um hospedagem compartilhado para executar comandos personalizados de Symfony2.
No nosso exemplo, teremos a seguinte estrutura de arquivos do nosso projeto Symfony em nosso servidor compartilhado:
/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!'); } }
Agora fazemos rodar nosso comando cada hora e salvar o resultado no arquivo test_command.log. Para fazer isso basta ir em nosso CPanel:
Home > Advançado > 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
Substitua {username} pelo seu nome de usuário na sua conta de hospedagem compartilhada.