Advego.ru - наполнение сайтов информацией

Web приложение для проверки URL (структура)

26 апреля, 2008

Логотип
В прошлый раз я начал рассказывать о разработке небольшого web приложения, выполняющего проверку доступности сайтов. Мы уже определились с требованиями к этому приложению (составили перечень функций) и библиотеками, которые будем использовать.

Сегодня мы рассмотрим структуру приложения и базы данных, а также установим и настроим фреймворк.

Итак, структура приложения.

Исходя из перечня функций, нам хватит двух страниц.

Главной (mainpage) – здесь будет размещена таблица с краткой информацией о результатах проверок, ссылки «Удалить» для каждого URL, форма добавления нового URL и кнопка «Пинговать все!», запускающая одновременную проверку всех URL.

Страницы со сведениями по выбранному URL (urldetails). Здесь будет таблица с подробной информацией о результатах проверок (время/дата, результат, размер полученной страницы, время и скорость загрузки). Кроме того, мы добавим ссылки для удаления любого из результатов и кнопу «Пинг».

Посмотреть как выглядят эти страницы можно на скриншотах.

Главная - Simple URL Checker (миниатюра)

Рис.1. Главная.

Подробные сведения об URL - Simple URL Checker (миниатюра)

Рис.2. Подробные сведения о выбранном URL.

А порядок взаимодействия посетителя с приложением изображен на диаграмме.

Взаимодействие посетителя с приложением

Рис.3. Диаграмма деятельности.

Как видите, сначала пользователь попадает на главную страницу, где ему доступны следующие функции:

ping() – запускает проверку всех URL;
addurl() – добавляет новый URL;
removeurl() – удаляет URL (и все относящиеся к нему результаты проверок);
urldetails() – переход на страницу с подробной информацией о выбранном URL.

На странице urldetails:

removeresult(...) – удаление выбранного результата;
ping(...) – проверка данного URL;
index() – переход на главную.

Имена всех перечисленных функций совпадают с названиями методов контроллера (подробно мы их рассмотрим позже), который в нашем приложении будет всего один. Т.е. на данный момент мы определили практически все взаимосвязи между компонентами приложения.

Переходим к созданию базы данных.

Нам будет достаточно двух таблиц. Их структура показана на рис.4.

Структура базы данных

Рис.4. Структура базы данных.

Таблица urls содержит всего два поля: id – первичный ключ, url – адрес, который нужно проверять.

В таблице results мы будем хранить результаты всех проверок. Названия ее полей, в общем-то, говорят сами за себя:

id – первичный ключ;
urlId – внешний ключ (foreign key), это значение выбирается из таблицы urls (поле id);
checktime – дата и время проверки;
result – результат (может принимать два значения «1» - «ОК» или «0» - «ERR»);
responsetime – время получения ответа;
responselength – размер ответа;
responsespeed – скорость.

Как видите, используя внешний ключ (urlId) можно однозначно связать адреса из таблицы urls с результатами их проверок в таблице results.

Если не хотите заниматься созданием базы и таблиц вручную, скачайте файл (simpleurl.sql). В нем находятся все необходимые sql команды. После этого его можно импортировать с помощью phpMyAdmin.

Примечание. Если вы хотите изменить название базы данных, просто замените в файле simpleurl.sql название simpleurldb на ваше.

Структура приложения и базы данных ясна, теперь можно переходить к установке и настройке фреймворка.

Как я и говорил, использовать мы будем CodeIgniter. На его установке я подробно останавливаться не буду, если интересно, посмотрите статью «Установка и настройка CodeIgniter».

Здесь я остановлюсь только на настройках данного приложения.

Все файлы настроек находятся в папке application/config/.
В файле autoload.php мы подключаем библиотеку для работы с БД и хелпер для работы с URL.

Code (php)
  1. $autoload[‘libraries’] = array(‘database’);
  2. $autoload[‘helper’] = array(‘url’);

config.php – здесь нужно только установить адрес сайта:

Code (php)
  1. $config[‘base_url’] = "адрес_приложения_на_вашем_сервере"; //например, http://localhost/urlchecker/

routes.php – указываем имя контроллера, который будет использоваться по-умолчанию.

Code (php)
  1. $route[‘default_controller’] = "main";

database.php – здесь нужно указать параметры подключения к БД.
Я сделал так:

Code (php)
  1. $active_group = "default";
  2. $active_record = FALSE;
  3.  
  4. $db[‘default’][‘hostname’] = "localhost";
  5. $db[‘default’][‘username’] = "db_user_name";
  6. $db[‘default’][‘password’] = "db_user_pass";
  7. $db[‘default’][‘database’] = "simpleurldb";
  8. $db[‘default’][‘dbdriver’] = "mysql";
  9. $db[‘default’][‘dbprefix’] = "";
  10. $db[‘default’][‘pconnect’] = FALSE;
  11. $db[‘default’][‘db_debug’] = TRUE;
  12. $db[‘default’][‘cache_on’] = FALSE;
  13. $db[‘default’][‘cachedir’] = "";
  14. $db[‘default’][‘char_set’] = "utf8";
  15. $db[‘default’][‘dbcollat’] = "utf8_general_ci";

Естественно, имя пользователя и пароль нужно указать свои.

Как видите, все это обычные настройки фреймвора.

В следующий раз мы подробнее рассмотрим работу с базой данных, т.е. напишем модели.

До встречи!

P.S. Ссылки на все статьи и примеры цикла я публикую здесь.

Понравилась статья? Подпишитесь на продолжение rss link !

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Опубликовано в CodeIgniter, PHP, Web разработка

Комментарии (2)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

  1. ANick 09.05.2008 в 23:59 (Ответить)

    А в чем рисовалась структура базы данных (рис.4), если не секрет?

    1. Владимир 10.05.2008 в 08:34 (Ответить)

      Никаких секретов, MySQL Workbench 5.0
      Правда, в бесплатной версии нет экспорта в виде рисунка, поэтому я просто сделал скриншот :-) . (если модель большая и не помещается на экране придется лепить из частей).

Оставить комментарий

Введите ваш комментарий

* - обязательные для заполнения поля

Quicktags: