学习ThinkPHP的第一步:
0、前提,下载安装xampp,运行apache和mysql服务。
1、下载ThinkPHP的核心包,解压到D:\xampp\htdocs\,可以看到是一个名字为ThinkPHP的文件夹,在当前目录下新建一个文件夹myapp,并剪切ThinkPHP到myapp下,这样就安装好了框架并准备开发应用了。
2、
在myapp下,新建一个文件index.php,内容如下:
<?php
    define('THINK_PATH','./ThinkPHP');
    define('APP_NAME','Myapp');
    define('APP_PATH','.');
    require(THINK_PATH.'/ThinkPHP.php');
    $app = new App();
    $app->run();
?>
这样就定义并运行了第一个应用程序Myapp。
3、修改Index控制器行为:
编辑目录D:\xampp\htdocs\myapp\Lib\Action下的文件,IndexAction.class.php:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action{
    public function index(){
        echo '嗨,大家好?';
    }
}
?>
继承Action类的方法必须是public。
4、在浏览器中输入网址:localhost/myapp/进行验证,输出为:

嗨,大家好?


1、项目配置

编辑D:\xampp\htdocs\myapp\Conf\config.php,加入以下内容:
<?php
return array(
    'APP_DEBUG'=>TRUE,
    'DB_TYPE'=>'mysql',
    'DB_HOST'=>'localhost',
    'DB_NAME'=>'lk',
    'DB_USER'=>'root',
    'DB_PWD'=>'',
    'DB_PORT'=>'3306',
    'DB_PREFIX'=>'think_',
);
?>
这就是本项目myapp的配置文件,可见接下来就准备连接数据库了,比起第一课要实用一些。

2、定义业务操作
定义业务操作即是向控制器中添加相应的方法。
还是编辑D:\xampp\htdocs\myapp\Lib\Action下的IndexAction.class.php:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action{
    public function index(){
        $example = new Model('example');
        echo '以下是数据库中的内容<br>';
        $result = $example->select();
        //以下两句用于调用模板输出
        $this->assign('result',$result);
        $this->display();
    }
    
    public function sendin(){
        $example = new Model('example');
        $example->Create();
        $result = $example->add();
        $this->redirect('index');
    }
}
?>
index和sendin都要实现某些功能,sendin是向数据库中写入数据,然后返回index.php页面,index则将数据库中内容调用模板输出。

3、编写模板
模板就是我们能看到的html页面,是最后呈现在眼前的东西。
进入D:\xampp\htdocs\myapp\Tpl\default,在这底下先创建文件夹,和方法对应,如Index方法就需要有个Index文件夹,这个文件夹里存放Index方法中display的模板,模板是html文件。
建立Index/index.html:
<html>
<head>
<title>这是五岳之巅自学的练习项目</title>
</head>
<body>
<form method='post' action='__URL__/sendin'>
姓名:<input type='text' name='name'><br />
性别:<input type='text' name='gender'><br />
<input type='submit' value='添加'><br />
</form>
数据库中已有记录:<br />
<volist name='result' id='vo'>
姓名:{$vo.name}<br />
性别:{$vo.gender}<br />
</volist>
</body>
</html>
4、建立数据表
CREATE TABLE `lk`.`think_example` (
`id` INT( 3 ) NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 12 ) NOT NULL ,
`gender` VARCHAR( 2 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
5、运行程序
结果运行正常,显示和向数据库写入均成功。

总结:
1、一个模型实例就是一个数据库表实例,实例化数据库表后,就可以使用ThinkPHP提供的多种数据库操作方法,但如果要插入记录,则需要先创建写入的记录对象,而select则不用;
2、表单中的action对应着sendin方法,即提交给Index控制器,让sendin方法处理表单内容;
3、$this->display()是展示模板,模板中的参数用assign方法传送,redirect方法是送定向;
4、在模板中含有大量的特殊标签,这些标签是ThinkPHP提供的模板替换标签,实现界面和数据的分离;
5、网址的构成:http://服务器名/应用程序名(只有一个应用可以不写)/模块名/操作名/操作数。