适配器模式,可以将截然不同的函数接口封装成统一的api;
应用举例,PHP的数据库操作有Mysql、Mysqli、pdo三种,可以用适配器模式统一成一致,类似的场景还有cache适配器,将memcache、redis,file,apc等不同的缓存函数统一成一致。
IDatabase.php
<?<span>php
namespace 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>php
namespace 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
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
0
立即学习“PHP免费学习笔记(深入)”;
<?<span>php
namespace 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怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号