Nous allons voir comment programmer des tâches planifiées dans le CPanel d'un shared hosting pour exécuter des commandes personnalisées de Symfony2.
Dans notre exemple, nous aurons la structure de fichiers suivante de notre projet Symfony dans notre serveur partagé:
/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!'); } }
Maintenant, nous executons notre commande à chaque heue et mous enregistrons le résultat dans le fichier test_command.log. Pour faire cela il suffit d'aller dans notre CPanel:
Home > Advancé > 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
Remplacer {username} par votre nom d'utilisateur sur votre compte d'hébergement partagé.