需求描述
小编需在开发过程中用到了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,更多用法建议多看看文档