首页 > 作文

初次接触php抽象工厂模式(Elgg)

更新时间:2023-04-06 13:44:34 阅读: 评论:0

想实现这样一个功能:开展一个网站邀请活动,然后参与者(owner)将推广的网站地址链接发给好友,好友点击链接后在网站注册成功,owner的邀请日志记录条数加1。

活动类 activity
怎样删除qq好友

复制代码 代码如下:

class activity extends elggentity {

private $strategy; //用于保存策略实例

public function __construction($guid) {

R学信网怎么查学籍30;

$this->load($guid); //载入实体

}

public function addlog($data) {

$this->strategy->addlog($data); //实际是 defaultactivitystrate国庆65周年gy::addlog($data)

}

public function load ($guid) {

if (parent::load($guid)) { //此过程会将本实例的所有属性从数据库中赋值,因此 $this->strategyname的值已经被赋上了。

if ($this->strategyname != ”) {

$this->strategy = abstractactivitystrategy::getinstance($this->strategyname); //加载策略类

}

return true;

}

return fal;

}

}

日志类 activitylog


桃花三月复制代码 代码如下:

class activitylog extends elggentity {

$private countvalue; //邀请记录数



}

策略类

说明:elggentity:所有实体基类。abstractactivitystrategy:活动抽象类

)首先创建一个活动:


复制代码 代码如下:

$activity = new activity();

$activity->name = ‘kknd’; //活动名称

$activity->strategyname = ‘default’; //策略名称

$activity->save(); 行政管理简历//将活动类保存至数据库,新添加的属性(比如strategyname)也会保存

)别人收到邀请,点击链接后,owner的邀请记录条目+1

比如邀请网址是 /d/file/titlepic/1234br />
其中/kknd/是活动名称,1234是owner的guid,假设该活动的guid为 8888,则

$activity = new activity(8888); //获取活动实体

$activity->addlog($data); //添加邀请记录。$data包括owner的guid,活动的guid,活动名name等。

最后2行代码的过程,就是读取了该活动实体的策略名,并根据这个策略名生成一个策略实体,保存在自己的$stragety属性里,再调用其中的addlog方法增加日志记录。

以后有新活动的时候,直接把活动实例属性的策略名改了,就可以调用对应新策略中的方法了。


复制代码 代码如下:

class defaultactivitystrategy extends abstractactivitystrategy {



public function addlog($data) {

$activitylog = new activitylog();



$activitylog->save();

$activitylogamount = new activitylogamount(); //计数类



$activitylogamount->countvalue += 1;

$activitylogamount->save();

}

}

本文发布于:2023-04-06 13:44:30,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/359ddf07b65f1432a4afb17941ca0322.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:初次接触php抽象工厂模式(Elgg).doc

本文 PDF 下载地址:初次接触php抽象工厂模式(Elgg).pdf

标签:代码   策略   实体   属性
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图