Преобразование Ruby в переполнение стека

Я не 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() это то, что я ищу, хотя.

Другие ошибки?

0

Решение

Я не 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>

Увидеть руководство для получения дополнительной информации.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]