• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php设计模式 适配器模式

php 搞代码 3年前 (2022-01-23) 12次浏览 已收录 0个评论

适配器模式,可以将截然不同的函数接口封装成统一的API;

应用举例,PHP的数据库操作有Mysql、Mys本文@来#源gaodai$ma#com搞$$代**码网搞代gaodaima码qli、pdo三种,可以用适配器模式统一成一致,类似的场景还有cache适配器,将memcache、redis,file,apc等不同的缓存函数统一成一致。

IDatabase.php

<?<span>phpnamespace Baobab;</span><span>interface</span><span> IDatabase{    </span><span>function</span> connect(<span>$host</span>, <span>$user</span>, <span>$passwd</span>, <span>$dbname</span><span>);    </span><span>function</span> query(<span>$sql</span><span>);    </span><span>function</span> fetch_result(<span>$result</span><span>);    </span><span>function</span><span> close();}</span>

Mysqli.php

<?<span>phpnamespace Baobab\Database;</span><span>use</span><span> Baobab\IDatabase;</span><span>class</span> Mysqli <span>implements</span><span> IDatabase{    </span><span>protected</span><span>$conn</span><span>;    </span><span>function</span> connect(<span>$host</span>, <span>$user</span>, <span>$passwd</span>, <span>$dbname</span><span>){        </span><span>$conn</span> = <span>mysqli_connect</span>(<span>$host</span>, <span>$user</span>, <span>$passwd</span>, <span>$dbname</span><span>);        mysqli_set_charset(</span><span>$conn</span>, 'utf8'<span>);        </span><span>$this</span>->conn = <span>$conn</span><span>;    }        </span><span>function</span> query(<span>$sql</span><span>) {        </span><span>return</span><span>mysqli_query</span>(<span>$this</span>->conn, <span>$sql</span><span>);    }        </span><span>function</span> fetch_result(<span>$result</span><span>){        </span><span>return</span> mysqli_fetch_all(<span>$result</span><span>);    }        </span><span>function</span><span> close() {        </span><span>mysqli_close</span>(<span>$this</span>-><span>conn);    }}</span>

Pdo.php

<?<span>phpnamespace Baobab\Database;</span><span>use</span><span> Baobab\IDatabase;</span><span>class</span> Pdo <span>implements</span><span> IDatabase{    </span><span>protected</span><span>$conn</span><span>;    </span><span>function</span> connect(<span>$host</span>, <span>$user</span>, <span>$passwd</span>, <span>$dbname</span><span>){       </span><span>$conn</span> =  <span>new</span> \PDO("mysql:dbname=<span>$dbname</span>;host=<span>$host</span>", <span>$user</span>, <span>$passwd</span><span>);       </span><span>$this</span>->conn = <span>$conn</span><span>;    }        </span><span>function</span> query(<span>$sql</span><span>){        </span><span>return</span><span>$this</span>->conn->query(<span>$sql</span><span>);    }        </span><span>function</span> fetch_result(<span>$result</span><span>){            }        </span><span>function</span><span> close() {        </span><span>unset</span>(<span>$this</span>-><span>conn);    }}</span>

index.php

<span>$db</span> = <span>new</span><span> Baobab\Database\Mysqli();</span><span>$db</span>->connect('127.0.0.1', 'root', '', 'test'<span>);</span><span>$res</span> = <span>$db</span>->query('select * from ha_cl'<span>);</span><span>print_r</span>(<span>$db</span>->fetch_result(<span>$res</span><span>));</span><span>$db</span>->close();

以上就介绍了php设计模式 适配器模式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php设计模式 适配器模式
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址