PHP有哪些设计模式
发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,这篇文章主要介绍"PHP有哪些设计模式",在日常操作中,相信很多人在PHP有哪些设计模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PHP有哪些设计模式"的疑惑有所帮
千家信息网最后更新 2024年09月25日PHP有哪些设计模式
这篇文章主要介绍"PHP有哪些设计模式",在日常操作中,相信很多人在PHP有哪些设计模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PHP有哪些设计模式"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
设计模式非常的多,这里介绍单例模式,工厂模式,组合模式,策略模式4种模式
/** * 单例模式 * @author YangYang <1812271619@qq.com> * 可以想成在一次http请求中只产生该类的一个对象(即只new classname一次) * 经典的例子是数据库连接(redis,mongodb,memcache等) * 在一次http请求中我们可能需要对数据库做增删改查多条sql操作 * 但是如果一次http请求中每执行一条sql我们就mysql_connect(),很明显会导致服务器资源的浪费 * 为了节约资源,就可以通过单例模式来实现一次http请求只做一次mysql_connect() * 即将mysql_connect()放在类方法的__construct中,并将__construct方法做成私有, * 这样只能通过getInstance()方法来获得mysql_connect()的资源连接符 * getInstance()方法中判断是否已经存在myql连接符,如果存在就直接返回该连接符 * 否则new classname()即调用了__construct方法执行了mysql_connect()得到了资源连接符,并返回连接符 * 因为现在PHP已不再建议直接使用mysql函数进行数据库操作,而是建议通过PDO进行数据库操作,所以这里写一个简易PDO连接的单例模式 * 这里只是讲解单例原理,数据库的防sql注入等问题不做考虑 * 准备工作 数据库:test 数据表:user 字段:id name 记录:1 CodeAnti * 最终运行结果: 数据表user中id=1这条记录被删除 */class SinglePDO{ private static $_instance = null; private $_pdo; //私有,防止外部直接实例化new SinglePDO(...) private function __construct($dsn,$dbUser,$dbPassword) { try{ $this->_pdo = new PDO($dsn,$dbUser,$dbPassword); $this->_pdo->exec('set names utf8'); }catch(PDOException $e){ die("Error:{$e->getMessage()}"); } } //私有,防止克隆 private function __clone(){} //获取连接实例 public static function getInstance($dsn,$dbUser,$dbPassword) { if(self::$_instance === null) self::$_instance = new self($dsn,$dbUser,$dbPassword); return self::$_instance; } //执行sql public function execSql($sql) { $result = $this->_pdo->exec($sql); return $result; }}$dsn = "mysql:host=localhost;dbname=test";$dbUser = "root";$dbPassword = "";$sql = "delete from user where id = 1";$pdo = SinglePDO::getInstance($dsn,$dbUser,$dbPassword);$result = $pdo->execSql($sql); //$pdo->execSql($sql)多次调用,但仍然是同一个pdo对象print_r($result);
到此,关于"PHP有哪些设计模式"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
模式
数据
数据库
方法
设计模式
设计
资源
学习
私有
实例
对象
建议
数据表
更多
问题
帮助
实用
明显
接下来
例子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发不属于设计阶段
图书馆购买的数据库外文
域服务器管理共享设置
甘肃省网络安全知识考试试题
易数据库单元格大小
软件开发所需要的技术人员
超市盘点系统 软件开发
河北网络安全普法知识
数据库绑定默认值语句
网络安全如何部署防护设备
数据库 单字段多值
第几个网络安全
世界服务器连接不上怎么办
hz服务器管理员
solr怎么连接数据库数据的
软件开发的艺术
湖南外贸软件开发公司
服务器2个硬盘放错位置
通付盾 论坛网络安全
云计算中服务器虚拟化分析
软件开发专业l
phpcms修改数据库
npoi 大数据库
魅族手机怎么打开远程服务器地址
数据库必须要先打开吗
软件开发目的及组织实施方式
上海积分落户网络技术加分
软件开发好后怎么赚钱
济南槐荫软件开发培训
金融网络安全进社区活动方案