Я не PHP-парень, и мне нужно преобразовать этот код из Ruby в PHP, который я вставлю на сайт WordPress:
#controller
def action1
@value1 =
if @current_user
@current_user.value1
else
if cookies[:value1].blank?
value1 = SecureRandom.hex(6)
cookies[:value1] = {
:value => value1,
:expires => 5.years.from_now.utc
}
value1
else
cookies[:value1]
end
end
end
#view
<script>
someMethod({'key1': <%= @value1 %> })
</script>
где @current_user
является примером модель Пользователь. Вот мои попытки:
# 123.php (view)
<?php
$user = get_current_user();
if ($user) {
$value1 = $user.value1();
} else {
if(!isset($_COOKIE["value1"])) {
$retVal = "????"; // how to generate 12 random digitst the way SecureRandom.hex(6) does?
setcookie("value1", $retVal, time() + (86400 * 30) * 365 * 5, "/");
$value1 = $retVal;
} else {
$value1 = $_COOKIE["value1"];
}
}
?>
<script>
someMethod({'key1': <?php echo $value1 ?> })
</script>
Я не уверен get_current_user()
это то, что я ищу, хотя.
Другие ошибки?
Я не Ruby парень, но по крайней мере следующее должно быть действительным PHP.
<?php
$user = get_current_user();
if ($user) {
$value1 = $user->value1(); ///// need to use -> not .
} else {
if(!isset($_COOKIE["value1"])) {
$retVal = openssl_random_pseudo_bytes(6); //////
setcookie("value1", $retVal, time() + (86400 * 30) * 365 * 5, "/");
$value1 = $retVal;
} else {
$value1 = $_COOKIE["value1"];
}
}
?>
<script>
someMethod({'key1': <?php echo $value1 ?> })
</script>
Увидеть руководство для получения дополнительной информации.
Других решений пока нет …