Статьи
Портфолио
Друзья
Контакты

Последние статьи

06.07.2010 Memcache и Zend: у Вас "падает" Memcache? 4 коммент.

06.07.2010 Collabtive - web-based project management software 2 коммент.

03.06.2010 Ускоряем ZF-проекты: автолоад и сборка в один файл 2 коммент.

Все

Категории

PHP 2 стат.

Zend Framework 25 стат.

Javascript 3 стат.

Другое 12 стат.

Книги 1 стат.

Украина 1 стат.

Все

RSS

Статьи

Комментарии

Портфолио

Облако тегов

программирование  Программы  портфолио  php  zend framework  Zend_Db  Smarty  Zend_Form  паттерны  javascript  niceforms  jQuery  Zend_Mail  веб  Google  Zend_Rest  Zend_View_Helper  zend casts  Zend_View  Zend_Layout  speedUp  интернет  Загрузчик фотографий  Flash  ВКонтакте  zend  localization  zend_translate  gettext  антон шевчук  подарки  Я читаю  Книги  sphinx  релизы 

Все

Реклама



Статистика



Rambler's Top100

Главная > Статьи > Zend Framework > Piwik - статистика это просто!
28.02.09 Piwik - статистика это просто!

Piwik - Open Source Web Analytics

Работая над одним крупным проектом (который очень скоро Вы увидите в портфолио), передо мной была поставлена задача «подкрутить» к проекту автономную статистику Piwik. Т.е. Нужно было на персональных страницах пользователей, зарегистрированных в системе, поставить полноценный движок статистики, который предоставлял бы им исчерпывающую информацию о посещениях этих страниц. Мой коллега, перебрав кучу подобных движков остановился на Piwik и я его полностью поддержал: выбор был действительно хорош и очень грамотно написан, еще и Open Source!

Основными прелестями системы является (с точки зрения программиста):

  • Высокая производительность;
  • Развитая модульная система;
  • Симпатичный, ненавязчивый интерфейс;
  • Rest-сервисы;

Много рассказывать не буду: лучше один раз увидеть…

Установка данной системы на сайт очень проста:

  1. Скопируйте Piwik в Ваш проект, напр., public_html/stats
  2. Удалите файл config.ini с папки config
  3. Пройдите по адресу yoursite/stats
  4. Запустится автоматический установщик — вбейте все нужные параматры
  5. Все, система установлена

 

Постановка задачи


Итак, что требовалось написать? При создании аккаунта пользователя нужно было автоматически завести аккаунт в Piwik + добавить "сайт" для подсчета статистики и назначить права доступа созданного пользователя для созданного сайта. Кроме того, в аккаунте нужно было показать краткий отчет за текщий день и за последний месяц.

 

Решение


Решение пришло не сразу, но покопавшись в исходниках системы и немного погуглив, решение нашлось. Бросалась в глаза поддержка Rest технологии, которая давала возможности для доступа к API отдельных модулей и получать от них внятные ответы.

После проб и ошибок, решил ситуацию написанием собственной модели  для управления Piwik с помощью Rest технологии.

Вот исходный код модели, думаю многим, кто заинтересовался, готовый код придется по-вкусу.

Итак, пройдемся по методам данного класса и разъясним немного ситуацию. Перед тем как использовать данный класс необходимо сначала показать ему адрес в Интернете, по которому работает наш Piwik. Например, example.com/stats/.

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

 

Метод addSite


Параметры: $siteName - имя сайта, $urls - строка или массив адресов, по которым вести мониторинг для данного сайта. Метод заводит сайт Piwik и возвращает его идентификатор.

 

Метод updateSite


Нужно передать идентификатор созданного сайта и параметры, которые надо поменять. Результат: объект Zend_Rest_Client_Result.

 

Метод deleteSite


Метод очень простой. Нужно передать в него идентификатор удаляемого сайта. В результате получите объект Zend_Rest_Client_Result.

 

Метод addUser


Заводит нового пользователя в системе. Передайте в метод логин, пароль, почтовый адрес и адрес сайта, за который ответственный пользователь и получите в ответ объект Zend_Rest_Client_Result

 

Метод updateUser


Меняет параметры уже созданного пользователя. Нужно обязательно передать логин, а остальные по желанию. Ответ тот же.

 

Метод setUserAccess


Устанавливает права доступа конкретного пользователя. Логин, право доступа ('view','admin') и идентификатор сайта, для которого нужно установить доступ. Ответы без изменений.

 

Метод deleteUser


Удаляет пользователя из системы. Укажите только логин удаляемого пользователя.

 

Метод getSummary


Очень интересный метод. Возвращает объект Zend_Rest_Client_Result с  статистическими показателями за определенный период от указанного дня. В результате Вы можете показать статистику пользователю в его аккаунте и предложить перейти в Piwik для получения более детального отчета (кстати, для этих вещей есть возможность автоматической логинизации пользователя, но задача это тривиальная и хорошо расписана в разделе FAQ Piwik'а).

Работа всего класса заключается в посылке Piwik'у REST запросов, которые передают необходимые параметры и дают возможность получить информацию. Эта система статистики мне очень понравилась, но она, ИМХО, еще немного сыровата, но уже довольно приличная.

P.S. Обратите внимание, что пароль во всех методах передается у меня в виде md5 хеша!

 

Теги:  Zend_Rest, программирование, php, zend framework

Другие категории:

■ PHP ■ Zend Framework ■ Javascript ■ Другое ■ Книги ■ Украина
Комментарии к статье
  Прохожий

04.06.09 11:28:35

Пивик хорошо себя ведёт на маленьких проектах.

Установил на свои, в среднем посещаемость 15-20 тысяч в сутки, не смог обработать и показать статистику за день, решения по кэшированию не встретил и отправил в печь.

Знакомство продолжалось ровно 2 дня.

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

 
Статьи | Портфолио | Друзья | Контакты
Идея и мозги: Васильев Андрей © 2008-2010 Web-Blog Кисточка и фантазия: Зелинский Богдан