Некоторые задачи для сайта необходимо выполнять при помощи планировщика crontab
Например, рассылки писем, формирование и отправка отчетов администраторам и т.д.
В этом случае нам необходимо запускать наши скрипты из командной строки.
Для этого подготовим контроллер, например, stat.php,
разместим его в /kohana/application/classes/controller/
<?php defined('SYSPATH') or die('No direct script access.'); class Controller_Stat extends Controller { public function before() { parent::before(); //Эта проверка позволяет определить нам, был запущен этот скрипт из web //или из командной строки, для web вызова отправляем пользователя //на 404 страницу if(!Kohana::$is_cli) { throw new HTTP_Exception_404('Запрашиваемая страница несуществует!'); } } public function action_send() { //Здесь можно написать отправку письма администратору, например: $to = 'admin@admin.com'; $subject = 'Сообщение с сайта'; $message = 'Сейчас - ' . date('H:i:s', time()); mail($to, $subject, $message); } }
Вызов экшена send из командной строки – выглядит следующим образом:
> php index.php –uri=stat/send, где stat – имя контроллера, send – имя экшена.
Естественно при таком варианте запуска скрипта вы должны находиться в корневой папке сайта, например в /var/www/kohana/
В случае вызова скрипта при помощи crontab на некоторых серверах комманда может быть следующей:
–method – методы запроса (POST, GET,PUT)
--get - php index.php --uri=stat/send --get=name=admin&pass=secret
--post - php index.php --uri=stat/send --post=name=admin&pass=secret
Доступ к параметрам в экшене: $params = CLI::options(‘uri’, ‘post’);