icon Посты по тегу kohana

Установка Memcached на Ubuntu для PHP и его использование в kohanaframework

Тут будет рассмотрена установка демона Memcached на систему c Ubuntu для его использования в php. А также использование memcache во фреймворке kohana.

Memcached (Memcache) - ПО, которое позволяет кэшировать данные в оперативной памяти сервера, на котором запущен демон memcached, и устанавливать время жизни кэша.

Для начала нужно установить службу Memcached:

sudo apt-get install memcached

По умолчанию, сервис Memcached запускается на порту 11211. Если захотите, порт можно изменить.

Установить php-расширение для работы с Memcache:

sudo apt-get install php5-memcache
 

Модуль analytics Kohana 3.3 для работы с google analytics API

Мне захотелось выводить количество просмотров статьи на странице этой статьи. Был вариант написать свой счётчик, который будет, учитывая cookies и IP, считать просмотры. Но этот вариант показался мне слишком громоздким по нескольким причинам:

  1. Может быть пользовательская накрутка путём удаление кукисов;
  2. Считать по ip не совсем точно. Например, на организации работают 500 человек и попадают на внешний мир через один единственный proxy (под одинаковым ip);
  3. Учитывать приход через определённое время. Если пользователь вернулся через сутки, наверное, это +1 просмотр?
  4. Ну и вообще не хотелось тратить на это мощь и без того дохленького сервера на shared хостинге. А также своё время.

У меня на сайте уже стоял счётчик google analytics. Его возможностями я и решил воспользоваться, а точнее, возможностями google analytics API.

Какие данные мы хотим получать от google analytics API?

Получать количество просмотров конкретной страницы (у каждого поста уникальный адрес). Идентификация по uri.

Недостатки фреймворка Kohana

Недостатки фреймворка Kohana

1. IDE-подсказки при работе c ORM. Их нет. Например, код:

$latestPosts = ORM::factory('Post')->fetchLatests($limit);

Названия методов из класса Model_Post придётся вспоминать (например, fetchLatests), т.к. IDE покажет подсказки только для класса ORM, а Model_Post - наследник ORM. Перейти в метод по ctrl+click не получится. Вы можете возразить, есть же PHPDoc @var: 

/**
 * @var $modelPost Model_Post
 */
$modelPost = ORM::factory('Post', $postId);
$latestPosts = $modelPost->fetchLatests($limit); //теперь IDE любезно покажет доступные методы

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

Перевод kohana с php 5 на php 7

Исторически сложилось, что jeka.by был написан на фреймворке kohana 3.2 и использовал как и все на то время php 5 (то ли php 5.2 то ли 5.3). 

На дворе 2017 год, а, значит, давно пора переходить на php 7.

Тут я напишу, какие изменения пришлось внести в код проекта. 

НОВЫЕ ПОЛЬЗОВАТЕЛИ