首页 >

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

php教程|php手册初次接触php抽象工厂模式(Elgg)
php,Elgg,抽象工厂模式
php教程-php手册
用友源码,vscode主要是干啥的,简单卷ubuntu,TomCat京太游泳,机械爬虫车顶,php招聘信息,九江seo推广推荐,Php淘宝源码网站首页修改,威客网站模板下载lzw
这两天在开发用elgg作为基础的sns网站时,第一次遇到了策略模式的运用。
手机端双色球页面源码,ubuntu 命令的使用,tomcat的默认服务端口,国外爬虫购买网站,asp空间和php哪个好,seo岗位详解lzw
nova 源码,vscode配置文件保存,ubuntu gcc运行,tomcat修改IP端口,科创爬虫,python与php区别,最有前景seo招商项目平台,免费网站客服,joomla安装不了模板lzw

想实现这样一个功能:开展一个网站邀请活动,然后参与者(owner)将推广的网站地址链接发给好友,好友点击链接后在网站注册成功,owner的邀请日志记录条数加1。
活动类 Activity
代码如下:
class Activity extends ElggEntity {
private $strategy; //用于保存策略实例
public function __construction($guid) {

$this->load($guid); //载入实体
}
public function addLog($data) {
$this->strategy->addLog($data); //实际是 DEFAULTActivityStrategy::addLog($data)
}
public function load ($guid) {
if (parent::load($guid)) { //此过程会将本实例的所有属性从数据库中赋值,因此 $this->strategyName的值已经被赋上了。
if ($this->strategyName != ”) {
$this->strategy = AbstractActivityStrategy::getInstance($this->strategyName); //加载策略类
}
return true;
}
return false;
}
}

日志类 ActivityLog
代码如下:
class ActivityLog extends ElggEntity {
$private countValue; //邀请记录数

}

策略类
说明:ElggEntity:所有实体基类。AbstractActivityStrategy:活动抽象类
)首先创建一个活动:
代码如下:
$activity = new Activity();
$activity->name = ‘KKND’; //活动名称
$activity->strategyName = ‘DEFAULT’; //策略名称
$activity->save(); //将活动类保存至数据库,新添加的属性(比如strategyName)也会保存

)别人收到邀请,点击链接后,owner的邀请记录条目+1
比如邀请网址是 http://www.xinwusi.com/KKND/1234
其中/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();
}
}


初次接触php抽象工厂模式(Elgg)
  • 初次接触php抽象工厂模式(Elgg)【PHP】
  • 初次接触php抽象工厂模式(Elgg)【PHP】 | 初次接触php抽象工厂模式(Elgg)【PHP】 ...

    初次接触php抽象工厂模式(Elgg)
  • php设计模式 abstract factory (抽象工厂模式)
  • php设计模式 abstract factory (抽象工厂模式) | php设计模式 abstract factory (抽象工厂模式) ...

    初次接触php抽象工厂模式(Elgg)
  • 学习php设计模式 php实现抽象工厂模式【PHP】
  • 学习php设计模式 php实现抽象工厂模式【PHP】 | 学习php设计模式 php实现抽象工厂模式【PHP】 ...