easyswoole - 基于swoole扩展实现的一款高性能php框架

事件注解

適用場景

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

模型事件是指在進行模型的寫入操作的時候觸發的操作行為,包括調用模型對象的 insertdeleteupdate 方法以及對實體對象初始化時觸發。

模型類支持 OnInitializeOnInsertOnDeleteOnUpdate 事件。

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

使用示例

聲明事件注解

在模型類中可以通過注解及定義類方法來實現事件注解的聲明,如下所示:

<?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 事件注解,并在注解中通過形如 #[OnInitialize('onInitialize')] 的方式給 OnInitialize 注解傳入參數,給對應的事件行為設置事件被觸發時執行的回調 onInitializeonInsertonDeleteonUpdate

設置的回調方法會自動傳入一個參數(當前的模型對象實例),并且 OnInsertOnDeleteOnUpdate 事件的回調方法(onInsertonDeleteonUpdate) 如果返回 false,則不會繼續執行。

使用

$user = new User(['name' => 'EasySwoole', 'id' => 1000]);
$result = $user->insert();
var_dump($result); // false,返回 false,表示 insert 失敗。
主站蜘蛛池模板: 潍坊沃林机械设备有限公司-牵引式风送果园打药机,悬挂式风送果园喷雾机,自走式果树喷药机,车载式风送远程喷雾机-潍坊沃林机械设备有限公司-牵引式风送果园打药机,悬挂式风送果园喷雾机,自走式果树喷药机,车载式风送远程喷雾机 潍坊网络推广,临沂360推广,东营360推广,枣庄360推广,潍坊网站建设,潍坊网络公司,潍坊360搜索,潍坊APP开发,潍坊360推广,潍坊360代理,潍坊点睛网络科技有限公司 | 苏州新闻网_苏州最权威资讯 | 金坛区成辉仪器厂-精密増力电动搅拌器,石英亚沸蒸馏水器- | 离婚协议书怎么写_离婚协议书模板标准版_离婚协议书范本下载 - 离婚协议书 | 中科迈金节能技术(浙江)有限公司 | 上海垃圾房,简易成品环保垃圾房,小区室外垃圾房,上海翼亭智能垃圾房厂家 | 太原石膏基自流平,太原轻质抹灰石膏,太原腻子粉,太原抗裂砂浆-太原乔贝建筑材料有限公司 | 深圳-广州-惠州-东莞-重型货架-悬臂-轻中型货架-深圳市诺普泰仓储设备有限公司 | 酒博会丨京酒展丨北京国际酒业博览会| 智能灰熔融性测试仪,微机自动定硫仪,快速自动测硫仪-鹤壁市恒科仪器仪表有限公司 | 破碎机设备-锤式颚式反击式圆锥移动冲击式破碎机厂家-成都大宏立机器公司 | 胶球清洗-射水抽气器-磷酸盐加药装置-连云港振辉机械设备有限公司 | 组合式空调机组-吊顶式新风换气机-消防高温排烟风机-德州宏楚空调设备有限公司 | 上海新航道学校官网_20年专注雅思_托福_SAT_ACT等出国语言培训机构. | 宁波搬家_宁波搬家公司_宁波搬厂_专业搬家搬厂-「宁波喜洋洋搬家公司」 | 合肥固化地坪-安徽耐磨地坪-合肥环氧地坪厂家-安徽玉平地坪工程有限公司 | 土石_泥石分离机_无轴滚筒筛_振动筛 - 巩义市鑫利重工机械制造有限公司 | 河北瑞峰医疗-河北护理床-河北医用病床-河北养老院护理床-河北护理床厂家-河北病床厂家-河北瑞峰医疗 | 厦门,泉州自助餐上门|生日自助餐|婚礼自助餐|公司聚会自助餐|户外烧烤|冷餐|茶歇外卖配送-福建非选餐饮公司 | 首页|YULI玉立专业厨房电器官网|集成灶十大品牌 油烟机 燃气灶 | 中华石油化工网 www.cnpec.net——歌颂石化 服务石化 奉献石化 发展石化 | 新中式家具,广东新中式家具,广州新中式家具,佛山新中式家具,顺德新中式家具,乐从新中式家具,新中式家具厂家直销--唐明雅居 | 吉安仁济医院「官网」吉安男科医院-吉安仁济男科医院靠谱吗-男性专科医院 | 中原起重-河南省中原起重机有限公司【官网】 | 上海办公室装修公司|办公室装修设计|上海写字楼装修【半尺砚装饰】 | 图观 - 数字孪生 应用开发引擎 | 三维可视化 | 上海网站建设-上海网站制作-网站设计-上海做网站公司-SEO优化推广-咏熠软件 | 企多网-B2B网站,B2B商务平台免费b2b,推荐注册送积分,免费注册企业商铺, | 合肥发斯特精密塑模有限公司专业精密磨具,注塑模具,精密注塑机械零件(加工制造|生产|销售|厂家) 浩通集团 国际货运 物贸一体化 中非经贸 | 金亨木业建筑模板_清水模板_覆膜板_金亨木业建筑模板厂家批发 | 华网,华网资讯,华网头条,华人网络家园 | 雅兰床垫-会呼吸的床垫-中国高端床垫-国潮床垫品牌 | 四氟瓶塞-塑料离心机-双联恒温水浴锅-常州天瑞仪器有限公司 | 液力耦合器,摩擦型液力耦合器生产厂家-河南省华升矿机有限公司 | 青岛网站建设_网站制作_品牌设计_网站设计_圭谷设计 | 齐东汽车-提供抑尘车|洒水车|压缩垃圾车|餐厨垃圾车|垃圾转运车|清洗吸污车|扫路车价格,图片及视频 | 金属标牌,镍电铸,电铸铭牌,标牌定制-青岛大东电铸标牌制作厂家 | 无锡大型数控龙门铣加工中心,精密焊接件制造,机械设备加工-无锡嘉迅机械科技有限公司 | 金属标牌,镍电铸,电铸铭牌,标牌定制-青岛大东电铸标牌制作厂家 | 萘系减水剂|缓凝|早强|聚羧酸|混凝土|石膏板|管桩减水剂厂家-潍坊英宏建材有限公司 | 陕西柱塞泵厂家_智能张拉设备_桥梁施工设备_千斤顶_液压分裂棒_液压分裂枪|陕西中拓矿山设备有限公司 |