Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Реализация счетчика просмотров страниц в Kohana3.2
http://forum.kohanaframework.su/viewtopic.php?f=32&t=119
Страница 1 из 2

Автор:  vitamin [ 07 апр 2012, 00:26 ]
Заголовок сообщения:  Реализация счетчика просмотров страниц в Kohana3.2

Подскажите плиз кто уже реализовывал счетчик просмотров страниц в Kohana3.2. Очень нужно. И как лучше это сделать?

Автор:  admin [ 07 апр 2012, 01:24 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

Я делал. Для страниц сделал поле "Количество просмотров" и при заходе на страницу делал апдейт +1

Автор:  vitamin [ 07 апр 2012, 11:57 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

Спасибо за ответ. А можно немного поподробнее? В той же таблице или лучше создать отдельную таблицу для счетчика? Какой вариант быстрее в работе? И если возможно код реализации счетчика.

Автор:  admin [ 07 апр 2012, 14:27 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

Быстрее конечно в той же. Вы сразу запросом сразу получаете и информацию по странице и количество просмотров. А так прийдется какой-нибудь JOIN лепить...зачем ?
Т.е. будет таблица, там статьи например. Заголовок статьи, дата, сама статья, автор итд ... и количество просмотров.
Метод в модели типа такого:
Код:
   public function updateCurrent($id)
   {   
      $query = DB::update('articles')
            ->set(array('views' => DB::expr('views + 1')))
            ->where('id', '=', $id)
            ->execute();
   }


В него передается id статьи.
Это query builder. ORM я не использую.

Автор:  vitamin [ 07 апр 2012, 14:59 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

Спасибо огромное

Автор:  aktuba [ 22 апр 2012, 23:13 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

admin писал(а):
DB::expr('views + 1')


Жесть.

Автор:  admin [ 23 апр 2012, 00:00 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

В чем жесть ? Подобный пример дается в официальном мануале коханы
http://kohanaframework.org/3.2/guide/database/query/builder

Код:
$query = DB::update('users')->set(array('login_count' => DB::expr('login_count + 1')))->where('id', '=', $id);

Автор:  aktuba [ 24 апр 2012, 11:20 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

admin писал(а):
В чем жесть ? Подобный пример дается в официальном мануале коханы
http://kohanaframework.org/3.2/guide/database/query/builder

Код:
$query = DB::update('users')->set(array('login_count' => DB::expr('login_count + 1')))->where('id', '=', $id);


Жесть в том, что вместо простейшего и быстрого запроса на plain sql делается куча доп.действий. Хотя, это наверное просто ворчание ))))

Автор:  admin [ 24 апр 2012, 14:02 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

А в чем тяжесть запроса ? В DB::expr, который добавляет данные "как они есть", без обрамления в кавычки ? Или в использовании квери билдера для счетчика ?
Тогда можно и про орм сказать, что все это очень тяжело. Я орм не использовал почти, но что-то читаю про него и огорчаюсь. Что он и поля тянет все, даже когда мне всего два поля надо и перед делитом селект делает.
Тем более, что данный пример есть в мануале, не дураки наверное писали :) (кстати брал я не оттуда, потом уже наткнулся..ну 1 в 1 :))

Ув. aktuba, вы еще не видели жесть.
А я наблюдал, когда счетчик реализовывали вообще таким образом:
SELECT `views` FROM `articles` WHERE `id` = 2
тут пхп код где мы к полученному $views прибавляем единичку
UPDATE `articles` SET `views` = $views WHERE `id` = 2

Автор:  aktuba [ 24 апр 2012, 14:09 ]
Заголовок сообщения:  Re: Реализация счетчика просмотров страниц в Kohana3.2

admin писал(а):
А в чем тяжесть запроса ? В DB::expr, который добавляет данные "как они есть", без обрамления в кавычки ? Или в использовании квери билдера для счетчика ?
Тогда можно и про орм сказать, что все это очень тяжело. Я орм не использовал почти, но что-то читаю про него и огорчаюсь. Что он и поля тянет все, даже когда мне всего два поля надо и перед делитом селект делает.
Тем более, что данный пример есть в мануале, не дураки наверное писали :) (кстати брал я не оттуда, потом уже наткнулся..ну 1 в 1 :))

Ув. aktuba, вы еще не видели жесть.
А я наблюдал, когда счетчик реализовывали вообще таким образом:
SELECT `views` FROM `articles` WHERE `id` = 2
тут пхп код где мы к полученному $views прибавляем единичку
UPDATE `articles` SET `views` = $views WHERE `id` = 2


Тяжесть в использовании оболочки (орм/query builder) над запросами. Хочешь сделать хороший пост для сайта? Сделай сравнение скорости выполнения запросов plain sql vs orm. Начиная с простых, заканчивая сложными.

Страница 1 из 2 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/