项目测试环境:
Window XP sp3
WAMP(httpd-2.2.19-win32-x86-no_ssl.msi、mysql-5.1.57-win32.msi、php-5.2.17-Win32-VC6-x86.zip)
ThinkPHP_3.0_Full.7z
Eclipse PHP Studio (EPP) 中文版
使用ThinkPHP创建应用的一般开发流程是:
- 创建数据库和数据表;(没有数据库操作可略过)
- 项目命名并创建项目入口文件;
- 完成项目配置;(无需额外配置可以忽略)
- 创建控制器类;
- 创建模型类;(如果只是简单的模型类可以不必创建)
- 创建模板文件;
- 运行和调试。
1、创建数据库和数据表
数据库名称think_example:
CREATE TABLE `think_blog` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(32) NOT NULL default \'\',
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(32) NOT NULL default \'\',
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
2、创建项目
在apache DocumentRoot 所在目录下创建应用(注:这里根据测试环境会有不同 例如我的D:\dev\apache\htdocs\),项目名thinkphpLearing,同时将ThinkPHP核心拷贝到thinkphpLearing下,接着新建入口文件index.php
<?php
/*
* Created on 2013-1-30
*
* email study@hacktea8.com
*
*/
// 定义ThinkPHP框架路徂
define(\'THINK_PATH\', \'./ThinkPHP/\');
//定义项目名称和路徂
define(\'APP_NAME\', \'thinkphpLearing\');
define(\'APP_PATH\', \'.\');
// 加载框架入口文件
require(THINK_PATH."/ThinkPHP.php");
//实例化一个网站应用实例
App::run();
?>
访问成功后,看到成功页面:
3、项目配置
在自动生成的目录下面,已经创建了一个空的项目配置文件,.Conf/config.php
打开增加项目配置信息:
<?php
return array(
//\'配置项\'=>\'配置值\'
\'APP_DEBUG\' => true, // 开启调试模式
\'DB_TYPE\'=> \'mysql\', // 数据库类型
\'DB_HOST\'=> \'localhost\', // 数据库朋务器地址
\'DB_NAME\'=>\'think_example\', // 数据库名称
\'DB_USER\'=>\'root\', // 数据库用户名
\'DB_PWD\'=>\'root\', // 数据库密码
\'DB_PORT\'=>\'3306\', // 数据库端口
\'DB_PREFIX\'=>\'think_\', // 数据表前缀
\'DEFAULT_THEME\'=>\'DEFAULT\',//如果有多个模板主题的话,可以用DEFAULT_THEME 参数设置默认的模板主题名。
\'TMPL_L_DELIM\'=>\'<{\',//项目的标签左分隔符
\'TMPL_R_DELIM\'=>\'}>\',//项目的标签右分隔符
);
?>
4、增加业务逻辑(增加为例)
.Lib/Action下,自动生成的IndexAction.class.php(控制器),注释(或者删除)掉当前的index方法,添加新的insert、delete、update、query、index方法:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
//默认界面[查询界面]
$Mblog = M(\'blog\'); // 实例化模型类
//$Mblog->Create();
$list = $Mblog->select(); // 查询数据
$this->assign(\'list\', $list); // 模板发量赋值
// echo "<pre>";
// var_dump($list);exit;
$this->display(\'index\'); // 输出模板
exit;
}
public function insert(){
//添加的动作
$Mblog=M(\'blog\');//实例化模型类
//$data=array(\'title\'=>$_POST[\'title\'],\'content\'=>$_POST[\'content\']);
$Mblog->create();
//var_dump($data);exit;
$insertid=$Mblog->add();
$this->assign(\'lastid\',$insertid);
//var_dump($insertid);exit;
$this->redirect(\'index\');//成功后重定向到index页面
exit;
}
public function delete(){
//删除的动作
$Mblog=M(\'blog\');//实例化模型类
$where=\'id=\'.$_GET[\'id\'];
$Mblog->where($where)->delete();
$this->redirect(\'index\');//操作成功重定向到index模板
exit;
}
public function edite(){
//更新的界面
$where=\'id=\'.$_GET[\'id\'];
$Mblog=M(\'blog\');
$list=$Mblog->where($where)->select();
// echo "<pre>";
// var_dump($list);exit;
$this->assign(\'info\',$list);
$this->display();
exit;
}
public function update(){
//更新的动作
$Mblog=M(\'blog\');
$Mblog->create();
$status=$Mblog->save();
if($status>0){
//更新成功
$this->redirect(\'index\');
}else{
//更新失败
$this->redirect(\'edite\');
}
exit;
}
}
5、增加业务逻辑对应模板
6、测试例子是否正常
经测试都正常[添加、删除、更新操作]
Tips:如果在测试过程中出现错误,请删除.Runtime/~runtime.php文件在测试
【源码】
thinkphpLearing
原文出处: