本文实例介绍了PHP简单投诉页面的实现代码,分享给大家供大家参考,具体内容如下

php代码:

';

}

final protected function __clone() {

return false;

}

public function conn() {

echo 'Mysql连接成功

';

}

}

/**

* 工厂模式

*/

interface Factory {

function createDB();

}

class MysqlFactory implements Factory {

public function createDB() {

echo 'Mysql工厂创建成功

';

return MysqlSingle::getInstance();

}

}

/**

* 根据用户名显示不同风格

* 观察者模式

*/

class Observer implements SplSubject {

protected $_observers = NULL;

public $_style = NULL;

public function __construct($style) {

$this->_style = $style;

$this->_observers = new SplObjectStorage();

}

public function show() {

$this->notify();

}

public function attach(SplObserver $observer) {

$this->_observers->attach($observer);

}

public function detach(SplObserver $observer) {

$this->_observers->detach($observer);

}

public function notify() {

$this->_observers->rewind();

while ($this->_observers->valid()) {

$observer = $this->_observers->current();

$observer->update($this);

$this->_observers->next();

}

}

}

class StyleA implements SplObserver {

public function update(SplSubject $subject) {

echo $subject->_style . ' 模块A

';

}

}

class StyleB implements SplObserver {

public function update(SplSubject $subject) {

echo $subject->_style . ' 模块B

';

}

}

/**

* 根据不同方式进行投诉

* 桥接模式

*/

class Bridge {

protected $_obj = NULL;

public function __construct($obj) {

$this->_obj = $obj;

}

public function msg($type) {

}

public function show() {

$this->msg();

$this->_obj->msg();

}

}

class BridgeEmail extends Bridge {

public function msg() {

echo 'Email>>';

}

}

class BridgeSms extends Bridge {

public function msg() {

echo 'Sms>>';

}

}

class Normal {

public function msg() {

echo 'Normal

';

}

}

class Danger {

public function msg() {

echo 'Danger

';

}

}

/**

* 适配器模式

*/

class Serialize {

public $content = NULL;

public function __construct($content) {

$this->content = serialize($content);

}

public function show() {

return '序列化格式:

' . $this->content;

}

}

class JsonAdapter extends Serialize {

public function __construct($content) {

parent::__construct($content);

$tmp = unserialize($this->content);

$this->content = json_encode($tmp, TRUE);

}

public function show() {

return 'Json格式:

' . $this->content;

}

}

/**

* 在投诉内容后自动追加

* 装饰器模式

*/

class Base {

protected $_content = NULL;

public function __construct($content) {

$this->_content = $content;

}

public function getContent() {

return $this->_content;

}

}

class Decorator {

private $_base = NULL;

public function __construct(Base $base) {

$this->_base = $base;

}

public function show() {

return $this->_base->getContent() . '>>系统时间:' . date('Y-m-d H:i:s', time());

}

}

/**

* 分级举报处理功能

* 责任链模式

*/

class level1 {

protected $_level = 1;

protected $_top = 'Level2';

public function deal($level) {

if ($level <= $this->_level) {

echo '处理级别:1

';

return;

}

$top = new $this->_top;

$top->deal($level);

}

}

class level2 {

protected $_level = 2;

protected $_top = 'Level3';

public function deal($level) {

if ($level <= $this->_level) {

echo '处理级别:2

';

return;

}

$top = new $this->_top;

$top->deal($level);

}

}

class level3 {

protected $_level = 3;

protected $_top = 'Level2';

public function deal($level) {

echo '处理级别:3

';

return;

}

}

if (!empty($_POST)) {

echo '

PHP设计模式';

//连接数据库——工厂+单例模式

$mysqlFactory = new MysqlFactory();

$single = $mysqlFactory->createDB();

$single->conn();

echo '

';

//观察者模式

$username = $_POST['username'];

$ob = new Observer($username);

$a = new StyleA();

$ob->attach($a);

$b = new StyleB();

$ob->attach($b);

$ob->show();

echo '

';

$ob->detach($b);

$ob->show();

echo '

';

//桥接模式

$typeM = $_POST['typeM'];

$typeN = 'Bridge' . $_POST['typeN'];

$obj = new $typeN(new $typeM);

$obj->show();

echo '

';

//适配器模式

$post = $_POST;

$obj = new Serialize($post);

echo $obj->show();

echo '

';

$json = new JsonAdapter($post);

echo $json->show();

echo '

';

echo '

';

//装饰器模式

$content = $_POST['content'];

$decorator = new Decorator(new Base($content));

echo $decorator->show();

echo '

';

//责任链模式

echo '

';

$level = $_POST['level'];

$deal = new Level1();

$deal->deal(intval($level));

return;

}

require("0.html");

html代码:

PHP设计模式用户名

Tom

Lily

投诉方式

Normal

Danger

Email

Sms

处理级别

1

2

3

投诉内容

提交

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php投诉单页源码,PHP设计模式之简单投诉页面实例_PHP相关推荐

  1. 2023 情人节表白单页源码

    情人节表白单页源码,情人节快到了,给亲爱的ta搭建起来吧. 2023 情人节表白单页源码...........

  2. 漂亮大气VIP会员介绍页面 html单页源码无需数据库

    介绍: 扒的某站漂亮大气VIP会员介绍页面 html单页源码无需数据库 源码下载地址:扒的某站漂亮大气VIP会员介绍页面 html单页源码无需数据库.zip - 蓝奏云https://qumaw.la ...

  3. 仿翁天信网站旅行足迹地图HTML单页源码

    介绍: 本文是仿翁天信网站旅行足迹地图HTML单页源码 index.html第85行修改去过的地方,源码内有标注. 网盘下载地址: http://kekewl.net/HxDxt18Hyaf 图片:

  4. 小清新卡通人物404单页源码

    介绍: 小清新卡通人物404单页源码 网盘下载地址: http://kekewl.net/SVjfAzeAxV2 图片:

  5. HTML清新卡通人物404单页源码分享

    正文: HTML清新卡通人物404单页源码分享,喜欢就下载吧,这源码没啥好介绍的,就只是一个404页面而已,具体样式可以看上方的封面图. 程序: lanzou.com/i7w0204q693e 图片:

  6. 好看的网站跳转单页源码

    介绍: 某娱乐网广告最新跳转单页源码,很漂亮 网盘下载地址: http://kekewangLuo.cc/v1TuT5eLO6Z 图片:

  7. HTML——全网VIP影视解析单页源码 自适应

    文章目录[隐藏] 全网VIP影视解析单页源码+自适应 全网VIP影视解析单页源码+自适应 上传源码到服务器,访问即可使用,无需数据库,php版本没有限制 为了界面美观,不添加播放器,跳转到解析接口页面 ...

  8. 火牛协议php网页版源码_阿狸子PHP商品订单系统V2.9豪华版源码(竞价单页源码,分销商城)...

    阿狸子PHP商品订单系统V2.9豪华版源码(竞价单页源码,分销商城),非常不错,喜欢的朋友快来下载吧! 环境说明 1.PHP5.3-5.6版本,不支持PHP7 2.mysql5.1及以上 3.PHP须 ...

  9. QQ强制聊天/加好友/临时会话接口跳转单页源码

    QQ强制聊天/加好友/临时会话接口跳转单页源码.实现以下功能:1.跳转QQ聊天界面:支持已开启临时会话的QQ用户进行聊天.2.跳转加好友界面:解决了QQ设置不允许被搜索后无法加好友的问题.3.WPA临 ...

最新文章

  1. nginx基于IP的虚拟主机
  2. html:漂亮的原生表格_HTML表格:关于它们的所有知识
  3. 获取数组第N个元素的方法
  4. 碾压专业机构,27 岁华裔小伙推出美国最准新冠预测模型
  5. 面试官:什么是QoS?如何原理是怎么样的?
  6. Hadoop权威指南阅读笔记
  7. 【AI产品】超长文详解作业帮产品逻辑和技术原理
  8. JS实现图片预览与等比缩放
  9. 洛谷 一种堆套路 P1631序列合并、P2085最小函数值
  10. Oracle使用数据泵导入/导出数据(expdp/impdp)【图文教程】
  11. 初见mybatis-plus(快速创建入门案例)
  12. Apache Commons CLI 开发命令行工具示例
  13. [Node.js]操作mysql
  14. Android控件:在《第一行代码(第二版)》学习RecyclerView的踩坑经过
  15. matlab latex表示,科学网—MATLAB程序如何在latex上发表? - 卢远志的博文
  16. PHPstudy使用教程
  17. Leetcode 408: Valid Word Abbreviation
  18. Laravel Eloquent If Record Exists
  19. office2016无法打开新建的Excel表格,但是能打开以前新建的,解决办法如下
  20. Java 之 socket 网络编程

热门文章

  1. Eclipse各版本官方下载地址
  2. android大屏适配_大屏开创者三星Note系列,也要被更大屏的折叠屏手机取代了
  3. java注解和反射——狂神说java学习笔记三
  4. 按漏洞的攻击途径分类情况分析
  5. Qt 开发使用VSCode 笔记2
  6. oracle编码转换utf16,oracle编码转换:AL32UTF8-ZHS16GBK
  7. 软件项目管理 第12讲 软件项目跟踪
  8. spring注解校验
  9. Python3 实现 KMP 算法核心 PMT
  10. 坚鹏:银行数字化转型中的金融数据治理、数据安全政策解读培训