我不是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>
有关详细信息,请参阅手册。