自定义数据库连接类型
在cp中除了默认支持的支持数据库连接类型外, 还可以自定义数据库连接类型并使用自己的Model
我们以扩展支持medoo为例, 我们先下载Medoo的最新版到项目的lib目录
├─app
├─config
├─docs
├─htdocs
├─lib
│ └─ medoo.php
然后修改数据库配置文件
/**
* mysql
*/
$mysql_link = array(
'host' => '127.0.0.1',
'port' => '3306',
'user' => 'root',
'prefix' => 'cp_',
'pass' => '123456',
'charset' => 'utf8',
);
$db = $mysql_link;
$db['name'] = 'test';
return array(
'mysql' => array(
'db' => $db,
),
'medoo' => array(
'db' => function() use ($db) {
Cross\Core\Loader::import('::lib/medoo.php');
$medoo = new medoo(array(
'database_type' => 'mysql',
'database_name' => $db['name'],
'server' => $db['host'],
'username' => $db['user'],
'password' => $db['pass'],
'charset' => $db['charset'],
'port' => $db['port'],
'prefix' => $db['prefix'],
'option' => array(
PDO::ATTR_CASE => PDO::CASE_NATURAL
)
));
return $medoo;
}
)
);
我们新建一个测试文件modules\test\MedooModule.php
, 在Module中连接medoo:db
, 代码如下:
namespace modules\test;
use Cross\MVC\Module;
class MedooModule extends Module
{
function __construct()
{
parent::__construct('medoo:db');
}
function hi()
{
return $this->link->select('acl_menu', '*');
}
}
在控制器中就可以使用medoo
提供的数据库查询功能了
>CP的Module可以扩展支持任意的Model