一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

初次接觸php抽象工廠模式(Elgg)

想實現這樣一個功能:開展一個網站邀請活動,然后參與者(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技術初次接觸php抽象工廠模式(Elgg),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美chengren| 欧美视频亚洲 | 国内精品小视频 | 精品国产自在现线看久久 | 精品久久久久久无码中文字幕 | 91精品国产91 | 欧洲免费视频 | 国产精品久久久久久永久牛牛 | 婷婷激情在线视频 | 日本tubesex人妇 | 亚洲成人7777 | 99亚洲视频| 亚洲高清二区 | 久热中文字幕 | 精品国免费一区二区三区 | 国产福利在线永久视频 | 在线播放国产视频 | 狠狠久久亚洲欧美专区 | 久久国产精品国语对白 | 91亚洲国产成人久久精品网站 | 亚洲最大视频网 | 黄网免费在线观看 | 国产九九精品视频 | 久久一日本道色综合久久m 久久伊人草 | 九九国产 | 91一区二区午夜免费福利网站 | 夜色亚洲 | 91成人高清在线播放 | 国产~aaaaa熟sao妇视频 | 丁香婷婷激情五月 | 日本www视频 | 99精品久久秒播无毒不卡 | 国产精品色婷婷在线观看 | 色欧美视频 | 色哟哟精品视频在线观看 | 亚洲二区视频 | 性欧美在线观看 | 国产中的精品一区的 | 国产婷婷色一区二区三区 | 五月婷中文字幕 | 四虎在线视频免费观看视频 |