1、首先简述一下什么是ThinkPHP
ThinkPHP是,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Liunx等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。
2、ThinkPHP基于MVC模式的一种框架结构,内部组织文件主要有这几部分。
模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。
控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。
视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。
3.下面是我做的一个简单的调取数据库的案例
Index.php 入口文件,文件路径(App\)
<?php
define("APP_DEBUG",true);
require'./ThinkPHP/ThinkPHP.php';
?>
Config.php 配置文件(App\Conf\)
<?php
return array(
//'配置项'=>'配置值'
//Mysql数据库连接配置
'DB_TYPE'=>'mysql', //设置数据库类型
'DB_HOST'=>'localhost',//设置主机
'DB_NAME'=>'bbs',//设置数据库名
'DB_USER'=>'root', //设置用户名
'DB_PWD'=>'', //设置密码
'DB_PORT'=>'3306', //设置端口号
'DB_PREFIX'=>'', //设置表前缀
'TMPL_L_DELIM'=>'<{', //修改左定界符
'TMPL_R_DELIM'=>'}>', //修改右定界符
);
?>
Index.html 视图(V)层文件(App\Tpl\Index\)
<html>
<head>
<title>MyThinkPHP</title>
</head>
<body>
<p>用户名: <{$Uname}>
<p>密 码: <{$Upassword}>
<p>注册时间: <{$DateTime}>
</body>
</html>
IndexAction.class.php 控制器(C)层文件 (App\Lib\Action\)
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
echo "This is My Frist ThinkPHP!!!";
$form = M('user') -> select();
dump($form);
$Uid = $form[1]['uId'];
$Uname = $form[1]['uName'];
$Upassword = $form[1]['uPassword'];
$DateTime = $form[1]['dateTime'];
$this -> assign ('uId',$Uid);
$this -> assign ('Uname',$Uname);
$this -> assign ('Upassword',$Upassword);
$this -> assign ('DateTime',$DateTime);
$this -> display();
}
}
UserModel.class.php : 模型(M)层文件,文件路径为(App\Lib\Model\)
<?php
class UserModel Extends Model{
public function findall(){
$sql='SELECT * FROM user';
return $this -> query($sql);
}
}
?>