Thinkphp是免费开源的php框架,提供了建站所须要的各类组件,方便用户快速建设部署网站。php
Thinkphp简介:http://thinkphp.cn/Manual/16html
官方彻底开发手册:http://thinkphp.cn/Manualmysql
使用 ThinkPHP 建立应用的通常开发流程是:sql
建立数据库和数据表;(没有数据库操做可略过)thinkphp
项目命名并建立项目入口文件;数据库
完成项目配置;(无需额外配置能够忽略)apache
建立控制器类;浏览器
建立模型类;(若是只是简单的模型类能够没必要建立)缓存
建立模板文件;php框架
运行和调试。
1. 首先在数据库建立一个数据库 demo ,表 think_demo ,以 MySQL 为例
CREATE TABLE `think_demo` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`content` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
2. 建立入口文件
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2009 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// 定义 ThinkPHP 框架路径
define('THINK_PATH', '../ThinkPHP');
// 定义项目名称和路径
define('APP_NAME', 'MyApp');
define('APP_PATH', '.');
// 加载框架公共入口文件
require(THINK_PATH."/ThinkPHP.php");
// 实例化一个网站应用实例
App::run();
?>
注意, APP_PATH 的路径指的是项目目录所在路径,而不是项目入口文件所在的路径。 APP_NAME 一般都必须和项目目录名称一致。
若是你的项目入口文件放到项目目录下面的话,能够无需定义 APP_NAME 和 APP_PATH ,系统能够自动识别。 THINK_PATH 一般也不是必须的。
3. 自动生成
ThinkPHP 具有项目目录自动生成功能,而且不须要使用任何命令行工具。咱们只须要简单的浏览器里面访问刚才建立的应用入口文件。
打开浏览器,访问该项目的入口文件: http://127.0.0.1/Myapp/index.php
这时能够看到项目构建成功后的提示画面,而且在 Myapp 目录下,已为您构建好了项目目录。
注意: ThinkPHP 框架的全部文件都是采用 UTF-8 编码保存,可是这不影响你的项目中使用其余编码开发和浏览。请注意确保文件保存的时候去掉 UTF-8 的 BOM 头信息,防止因产生隐藏的输出而致使程序运行不正常。
注意:若是你是在 Linux 环境下,要确保项目目录的自动生成,请设置 Myapp 目录的权限为可写,不然请自行建立相关目录。而后设置 Runtime 目录为可写权限(一般都是设置目录属性为 777 )。
4. 项目配置
自动生成的项目目录下面已经为咱们建立了一个空的项目配置文件,位于项目的 Conf 目录下面,名称是 config.php 。咱们打开这个配置文件,加入咱们的数据库配置信息。
<?php
return array(
//' 配置项 '=>' 配置值 '
'APP_DEBUG' => true, // 开启调试模式
'DB_TYPE'=> 'mysql', // 数据库类型
'DB_HOST'=> 'localhost', // 数据库服务器地址
'DB_NAME'=>'demo', // 数据库名称
'DB_USER'=>'root', // 数据库用户名
'DB_PWD'=>'123456', // 数据库密码
'DB_PORT'=>'3306', // 数据库端口
'DB_PREFIX'=>'think_', // 数据表前缀
);
?>
5. 业务逻辑
接下来,咱们须要实现一个数据添加和查询操做的简单应用,来领略下 ThinkPHP 的快速开发。
在项目的 LibAction 目录下面找到自动生成的 IndexAction.class.php 文件,这个文件就是 ThinkPHP 的控制器,也就是 Index 模块的实现。删除 IndexAction 类默认生成的 index 方法。添加新的 insert 方法和 index 方法,代码以下:
public function insert() {
$Demo = new Model('Demo'); // 实例化模型类
$Demo->Create(); // 建立数据对象
$result = $Demo->add(); // 写入数据库
$this->redirect('index'); // 成功后重定向到 index 操做页面
}
public function index() {
$Demo = new Model('Demo'); // 实例化模型类
$list = $Demo->select(); // 查询数据
$this->assign('list',$list); // 模板变量赋值
$this->display(); // 输出模板
}
以上定义后, Index 模块就具备了 insert 和 index 两个操做,操做方法的定义不须要使用任何参数,并且必须定义为 public 类型,不然没法访问。
因为只是简单的数据操做应用,因此咱们根本不须要建立任何的模型类也一样能够进行 CURD 操做,这就是新版的魅力所在。 ^_^
6. 模版定义
控制器和操做方法已经建立完毕,接下来就是定义模板文件了。
项目的自动生成已经为咱们生成了 Tpl/default 目录,咱们只须要在 default 目录下面建立 Index 目录,表示存放 Index 模块的模板文件。因为 insert 操做是后台操做,并不涉及模板输出,所以不须要定义模板文件,因此咱们只要为 index 操做定义模板便可,内容以下:
<form method="post" action="__ URL __/insert" >
标题: <input type="text" name="title"><br />
内容: <textarea name="content" rows="5" cols="25"><textarea><br/>
<input type="submit" value=" 新增数据 ">
</form>
<volist name='list' id='vo' >
编号 :{$vo.id}<br/>
标题 :{$vo.title}<br/>
内容 :{$vo.content}<hr>
</volist>
把上面的内容保存为 Tpl/default/Index/index.html 便可。
action="/Admin/Manual/insert" 表示提交表单到当前模块的 insert 操做。
7. 运行应用
模板定义完成后,咱们就能够运行应用了。咱们在浏览器里面输入:
http://localhost/Myapp/ 就能够看到页面的表单输出了。
因为咱们开启了调试模式,因此在页面的最下面还会看到一些额外的调试信息,而且能够很清楚的看到当前页面的请求信息和执行时间、 SQL 日志,最后还有加载的文件列表,事实上,页面 Trace 信息的显示彻底是能够定制的,而这些内容不须要在模板里面定义。
在 ThinkPHP 中,咱们称之为页面 Trace 信息,这是为了在开发过程当中调试用的,关闭调试模式后,这些信息会自动消失。另外在调试模式下面,因为开启了日志记录,而且关闭了全部缓存,因此执行效率会有必定影响,可是关闭调试模式后,效率会有很是显著的提升。
能够尝试在页面新增数据,会看到页面下面有列表数据输出。到目前为止,咱们已经完成了一个完整的数据操做应用了。