Typecho是一个开源PHP博客程序。其表结构,模板插件,管理设置,代码风格都与早期Wordpress版本相似,低CPU和低内存占用,安装时直接支持Mysql和SQLite。
Typecho数据库组件(包括其它组件)代码写得不错。在没使用namespace的情况下就实现了较为清晰的文件夹类包结构。
简单易用,我认为这就是原味的php,自由地轻快地专注于自己的想法实现,不需要太多的花巧语法规则约束。新版本语法lib不兼容是开发最大的麻烦,SwiftCode和Net是这样,php7和8也有这方面倾向。。。
扯远了,回到正题。按照如下步骤就能把Typecho数据库组件独立作为第三方库引用。
1,解压 Typecho_1.17 源码包,把里面的 /var/Typecho 文件夹复制出来。复制到你的项目下。
2,在项目下新建 typechodb.inc.php 代码如下面。
3,在项目下新建 test.php 代码如下面。
注:这两个文件都要修改代码,修改为你实际作用的数据库地址和表。
项目结构如下:
MyProject
|
——Typecho
|
——typechodb.inc.php
|
——test.php
<?php
//typechodb.inc.php
/**
* Typecho db component test
*
* @summary 这个文件也是复制自config.inc.php
* @By RoadToTheExpert
*/
/** 定义根目录 */
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
/** 设置包含路径 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ );
/** 载入API支持 */
require_once 'Typecho/Common.php';
/** 载入配置支持 */
require_once 'Typecho/Config.php';
/** 载入异常支持 */
require_once 'Typecho/Exception.php';
/** 程序初始化 */
Typecho_Common::init();
/** 定义数据库参数 */
$db = new Typecho_Db('Mysql', 'typecho_');
$db->addServer(array (
'host' => 'localhost',
/以下参数修改为你测试的数据库
'user' => 'xxx',
'password' => 'xxx',
'database' => 'xxx',
/
'charset' => 'utf8',
'port' => '3306',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
<% //test.php
require_once 'typechodb.inc.php';
$res = Typecho_Db::get()->fetchRow("select count(*) as cnt from your_table");
var_dump($res);