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

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

15.10.2011 Zend Framework Day 2011, 12 ноября, Киев (0)

27.09.2011 MSSQL, XML и PHP. Как заставить это работать из под *nix? (0)

22.06.2011 Zend Framework, MSSQL и UTF-8 - проблемы с кодировками (5)

Все

Категории

PHP (2)

Zend Framework (32)

Javascript (4)

Другое (13)

Книги (1)

Все

RSS

Статьи

Комментарии

Портфолио

Облако тегов

программирование  open search  портфолио  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  софт  массовые рассылки  хранение данных 

Все

Статистика



ремонт фольксваген
вывески вао свао.
пылесосы karcher

Главная > Статьи > 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-2011 Web-Blog Кисточка и фантазия: Зелинский Богдан