PHP скрипт. Simple URL Checker — запуск проверок по расписанию

Владимир | | CodeIgniter, PHP, Web разработка.

Simple URL Checker - CRON
Приветствую всех!

Это заключительная статья о разработке web приложения, выполняющего проверку URL.

Примечание. Ссылки на предыдущие статьи этого цикла вы найдете здесь.

На данный момент у нас уже есть работоспособное приложение. Но запускать проверки мы можем только с помощью web интерфейса.

Естественно, гораздо удобнее выполнять проверки по расписанию, а потом периодически просматривать результаты.

И вот здесь возникает проблема. Мы не можем из командной строки вызвать метод ping, т.к. для этого нужно создать экземпляр класса контроллера (Main) и заодно инициализировать ядро фреймворка.

Вообще при работе с CodeIgniter все запросы отправляются скрипту index.php, а уже он в зависимости от полученных параметров инициализирует объекты и вызывает нужные методы.

Проблему можно решить несколькими способами.

1) «В лоб» — написать отдельный скрипт, который будет работать аналогично методу ping. Это, мягко говоря, далеко не самое удачное решение, т.к. придется продублировать код.

2) Использовать cURL. Например, так:
curl http://simple_url_checker/index.php/main/ping

3) Об этом способе я прочитал в статье «Running CodeIgniter from Cron/CLI».
Идея такая. Нужно написать скрипт (cron_cli.php) и поместить его в папку с index.php.

<?php
$_GET["/main/ping"] = null;
require "index.php";
?>

Теперь можно просто вызвать этот скрипт из командной строки.
По идее, этот вариант должен работать быстрее, чем второй, т.к. cURL сама по себе потребляет ресурсы, и, кроме того, запрос будет сделан через веб сервер (apache), а не напрямую к скрипту.

Примечание. В оригинальной статье есть и другой вариант скрипта:

$_SERVER["REQUEST_URI"] =”main/ping”;
require “index.php”;

Но у меня он не работал.

Все. Наше приложение закончено и вы можете скачать архив с его исходниками. В архиве находится папка system/application с приложением, файлы simpleurl.sql, cron_cli.php и install.txt с инструкциями по установке.

Напомню, что ссылки на все статьи и примеры этого цикла находятся здесь.

Удачи!

P.S. Буду рад услышать ваши отзывы!