sjaakp/yii2-novelty

表示 Yii2 ActiveRecord 新颖性的属性。

安装: 47

依赖关系: 1

建议: 0

安全性: 0

星标: 2

关注者: 2

分支: 0

开放性问题: 0

类型:yii2-extension

1.0.1 2024-06-29 13:31 UTC

This package is auto-updated.

Last update: 2024-08-29 13:46:19 UTC


README

表示 Yii2 ActiveRecord 新颖性的属性

Latest Stable Version Total Downloads License

yii2-novelty 是一个 行为,它将名为 'novelty' 的属性添加到 Yii2 PHP 框架中的 ActiveRecord 中。此属性有以下三个值之一:

  • 'new':如果记录自用户上次访问网站以来已创建;
  • 'updated':如果记录自用户上次访问网站以来已更新;
  • null:在其他情况下。

NoveltyBehavior 继承自 Yii 的 TimestampBehavior。'novelty' 的值基于 TimestampBehavior 的属性值,通常称为 'created_at''updated_at',以及用户上次访问网站的时间。上次访问时间存储在两个cookie中。

安装

使用 Composer 以常规方式安装 yii2-novelty。将以下内容添加到您的 composer.json 文件的 require 部分

"sjaakp/yii2-novelty": "*"

或者运行

composer require sjaakp/yii2-novelty

您可以通过 下载 ZIP 格式的源代码 来手动安装 yii2-novelty

使用 NoveltyBehavior

NoveltyBehavior 添加到您的 ActiveRecord,如下所示

<?php

use sjaakp\novelty\NoveltyBehavior;

class MyRecord extends ActiveRecord
{
    public function behaviors( ) {
	    return [
	        [
	            'class' => NoveltyBehavior::class,
	            // ... options ...
	        ],
	        // ... more behaviors ...
	    ];
	}
	...
}

NoveltyBehavior 继承自 yii\behaviors\TimestampBehavior,因此您不应该同时使用它们。

添加 NoveltyBehavior 后,ActiveRecord 将具有一个额外的属性 'novelty',它可以像其他属性一样被读取,例如,使用

$novelty = $record->novelty;

它是一个只读属性,因此不能被写入。

选项

在大多数情况下,NoveltyBehavior 将直接工作。以下是一些可用的选项,可用于微调。所有选项都是可选的。

  • noveltyAttribute string 只读属性名称。默认:'novelty'
  • visitCookie string 存储上次访问时间的cookie名称。默认:'visit'
  • visitStamina integer 访问cookie的过期时间(秒)。默认:31536000(一年)。
  • cacheCookie string 缓存上次访问时间的cookie名称。默认:'visit-cache'
  • cacheStamina integer 缓存cookie的过期时间(秒)。默认:1800(30分钟)。
  • format null|string TimestampBehavior 属性的 PHP date() 格式。如果为 null,则为此设置正确的值,对于 value 为 null 或 value 设置为 new Expression('NOW()') 的情况,即几乎所有用例。只有在真正特殊的情况下,才可能将其设置为其他任何值。默认:null
  • noveltyValues array 分配给 novelty 的可能值。默认:请参阅源代码。

NoveltyBehavior 还继承了 yii\behaviors\TimestampBehavior 的所有选项。