五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

事件注解

適用場(chǎng)景

模型事件類似于 ThinkPHP 框架模型的模型事件,可用于在數(shù)據(jù)寫入數(shù)據(jù)庫(kù)之前做一些預(yù)處理操作。

模型事件是指在進(jìn)行模型的寫入操作的時(shí)候觸發(fā)的操作行為,包括調(diào)用模型對(duì)象的 insertdeleteupdate 方法以及對(duì)實(shí)體對(duì)象初始化時(shí)觸發(fā)。

模型類支持 OnInitializeOnInsertOnDeleteOnUpdate 事件。

事件行為注解 描述
OnInitialize 實(shí)體被實(shí)例化時(shí)觸發(fā)
OnInsert 新增前
OnDelete 刪除前
OnUpdate 更新前

使用示例

聲明事件注解

在模型類中可以通過(guò)注解及定義類方法來(lái)實(shí)現(xiàn)事件注解的聲明,如下所示:

<?php
declare(strict_types=1);

namespace EasySwoole\FastDb\Tests\Model;

use EasySwoole\FastDb\AbstractInterface\AbstractEntity;
use EasySwoole\FastDb\Attributes\Hook\OnInitialize;
use EasySwoole\FastDb\Attributes\Hook\OnInsert;
use EasySwoole\FastDb\Attributes\Hook\OnDelete;
use EasySwoole\FastDb\Attributes\Hook\OnUpdate;
// ...

/**
 * @property int    $id
 * @property string $name
 * @property int    $status
 * @property int    $score
 * @property int    $create_time
 */
#[OnInitialize('onInitialize')]
#[OnInsert('onInsert')]
#[OnDelete('onDelete')]
#[OnUpdate('onUpdate')]
class User extends AbstractEntity
{
    // ...

    public function onInitialize()
    {
        // todo::
    }

    public function onInsert()
    {
        if (empty($this->status)) {
            return false;
        }
        if (empty($this->create_time)) {
            $this->create_time = time();
        }
    }

    public function onDelete()
    {
        // todo::
    }

    public function onUpdate()
    {
        // todo::
    }
}

上面定義了 OnInitializeOnInsertOnDeleteOnUpdate 事件注解,并在注解中通過(guò)形如 #[OnInitialize('onInitialize')] 的方式給 OnInitialize 注解傳入?yún)?shù),給對(duì)應(yīng)的事件行為設(shè)置事件被觸發(fā)時(shí)執(zhí)行的回調(diào) onInitializeonInsertonDeleteonUpdate

設(shè)置的回調(diào)方法會(huì)自動(dòng)傳入一個(gè)參數(shù)(當(dāng)前的模型對(duì)象實(shí)例),并且 OnInsertOnDeleteOnUpdate 事件的回調(diào)方法(onInsertonDeleteonUpdate) 如果返回 false,則不會(huì)繼續(xù)執(zhí)行。

使用

$user = new User(['name' => 'EasySwoole', 'id' => 1000]);
$result = $user->insert();
var_dump($result); // false,返回 false,表示 insert 失敗。
主站蜘蛛池模板: 九草在线播放 | 三上悠亚免费一区二区在线 | 五月天综合婷婷 | 大片免免费观看视频播放网站 | 国产精品久久久亚洲第一牛牛 | 日韩美女一级视频 | 亚洲国产精品成人综合色在线婷婷 | 99精品久久99久久久久 | 国产精品精品国产一区二区 | 伊人免费视频网 | 亚洲狠狠婷婷综合久久久图片 | αv天堂 | 国产精品久久久久影院嫩草 | 久99久热只有精品国产男同 | 米奇四色影院 | 国产在线观看一区二区三区四区 | 久久久久久久久久久久福利 | 久久久久国产视频 | 国产精品21区 | 美日韩在线观看 | 色www精品视频在线观看 | 久久精品爱国产免费久久 | 色婷婷在线观看视频 | 欧美日韩国产在线 | 国产片在线 | 五月天最新网站 | 奇米777网| run away无删减全集 动漫 | 高清偷自拍第1页 | 成 人 黄 色 视频播放16 | 成人自拍视频网站 | 乱中年女人伦中文字幕久久 | 色婷婷影院在线视频免费播放 | 婷婷激情五月网 | 99在线国产 | 男人天堂资源站 | 奇米色网 | 四虎影院海外永久 | 国产成人黄色在线观看 | 欧美高清视频一区 | 国产精品久久九九 |