Не получается создать свой хелпер. Объясните в чем причина. Нашел php-функцию для генерации guid (uuid) по стандарту RFC 4122. Вот её код:
Код:
public function create_guid() //Генераци GUID
{
static $guid = '';
$uid = uniqid("", true);
$data = $namespace;
$data .= $_SERVER[`REQUEST_TIME`];
$data .= $_SERVER[`HTTP_USER_AGENT`];
$data .= $_SERVER[`LOCAL_ADDR`];
$data .= $_SERVER[`REMOTE_ADDR`];
$data .= $_SERVER[`REMOTE_PORT`];
$hash = strtoupper(hash(`ripemd128`, $uid . $guid . md5($data)));
$guid = substr($hash, 0, 8).
`-`.substr($hash, 8, 4).
`-`.substr($hash, 12, 4).
`-`.substr($hash, 16, 4).
`-`.substr($hash, 20, 12);
return $guid;
}
Я значит создал файл application/classes/Hashgen.php и в нем записал следующее:
Код:
<?php defined('SYSPATH') or die('No direct script access.');
class Hashgen {
public function create_guid() //Генераци GUID
{
static $guid = '';
$uid = uniqid("", true);
$data = $namespace;
$data .= $_SERVER[`REQUEST_TIME`];
$data .= $_SERVER[`HTTP_USER_AGENT`];
$data .= $_SERVER[`LOCAL_ADDR`];
$data .= $_SERVER[`REMOTE_ADDR`];
$data .= $_SERVER[`REMOTE_PORT`];
$hash = strtoupper(hash(`ripemd128`, $uid . $guid . md5($data)));
$guid = substr($hash, 0, 8).
`-`.substr($hash, 8, 4).
`-`.substr($hash, 12, 4).
`-`.substr($hash, 16, 4).
`-`.substr($hash, 20, 12);
return $guid;
}
} //END OF Hashgen
Вызываю этот хелпер таким образом:
Код:
$user->user_id = Hashgen::create_guid();
и получаю ошибку
rrorException [ Strict ]: Non-static method Hashgen::create_guid() should not be called statically, assuming $this from incompatible context