PHP面向对象之继承类实战

需求描述

小编需在开发过程中用到了DB工具:doctrine-dbal

在查阅文档的时候看到该工具需要每次都连接一次,因此想到用php的继承,直接定义一个父级class,在父级中实例化该工具之后子级直接使用,就不需要每次都再配置数据库了。

代码如下:

父级类:DBinit

注意此处命名空间(namespace):SliverWPWechat,为此项目中的命名空间,也许你项目中并不需要

<?php
namespace SliverWPWechat;

use DoctrineDBALDriverManager;//引入doctrine-dbal
/**
 * 初始化数据库
 */
class DBinit{

	/**
	 * [$SliverDB 实例化数据库]
	 * @var [type]
	 */
	protected $SliverDB;
	/**
	 * [__construct 初始化数据库]
	 */
	public function __construct() {
		$connectionParams = array(
			'dbname' => 'dbname',
			'user' =>  'user',
			'password' => 'password',
			'host' => 'host',
			'driver' => 'pdo_mysql',
			'charset' => 'charset'
		);
		$conn                =   DriverManager::getConnection($connectionParams);
		$this->SliverDB     =   $conn;
	}
}

子级类:SliverCode

<?php
namespace SliverWPWechatDB;

use SliverWPWechatDBinit;
/**
 * 验证码操作类
 */
class SliverCode extends DBinit{//继承父级DBINIT
	public function __construct() {
        //运行父级初始化函数,parent访问父级函数
		parent::__construct();
	}
	/**
	 * [getCode 获取验证码]
	 * @return [type] [description]
	 */
	public function getCode(){
      //$this 关键字访问父级变量
      print_r($this->SliverDB);
	}
}

补充

两个文件结构如下:

这里只是php对类继承的一个简单实战demo,更多用法建议多看看文档

给TA买糖
共{{data.count}}人
人已赞赏
代码片段

Lumen获取两列值相加,并且该值小于给定值的数据

2021-3-9 14:13:00

代码片段前端框架实用片段开发工具开发框架

uni-app实现微信小程序登录(一)

2021-9-14 10:58:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索