php框架ThinkPHP代码分析核心解析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前言

TP的手册相当多,其实不必再出这样的贴子,论技术,我也是菜鸟一个,同时也在学习当中。看到论坛上多了不少新朋友,不少在抱怨手册看不懂,那我就姑且抛砖引玉,尝试与新朋友们更简单地、手把手地进入TP的应用中去。讲解过程中有错的地方,大家帮忙指正。

这个系列,初步定下的目标为,从零开始,以TP示例中心中的Form为例进行讲解,以实践为主,理论为辅,将TP的最基本内容逛一遍,至少让我们一起学会如何进行最简单的对数据进行查、增、改、删操作并输出到模板。

由于我们说的是循序渐进,所以我用步骤式来说明,只要一步一步跟着做,相信聪明的你在使用过程中就会明白TP的应用了。

注意:以下的步骤,仅仅是TP灵活的布署方式其中一种,实际开发中可以根据自己的情况去另行设定。至于为什么那样做,我们会在最后再作总结,我觉得先实操然后再进行说明比较容易明白。以下不再重复解释。

一快速开始一个项目

名词解释:

项目:你要开发的系统,称之为项目。

入口文件:你可以理解为这个项目的唯一的一道门,以后所有的操作都会通过这道门去执行处理。不必理会什么意思,你甚至可以先把它看成是index.php就是入口文件

TP: ThinkPHP框架的简称

1 下载TP1.5正式版

2 拟好你的项目名称,我们这里以 Myapp 为项目名称

3 在www根目录下,将TP框架所有文件全部复制过去,文件夹名称是ThinkPHP

4 与ThinkPHP同级新建一个文件夹,起名为 Myapp,也就是项目名称

5 在www根目录下,创建一个PHP文件,起名index.php,这就是入口文件

入口文件index.php代码:

// 定义ThinkPHP路径

define('THINK_PATH','./ThinkPHP');

// 定义项目名称

define('APP_NAME','Myapp');

// 定义项目路径

define('APP_PATH','./Myapp');

// 加载入口文件

require(THINK_PATH.'/ThinkPHP.php');

// 实例化这个项目

$App = new App();

// 执行初始化

$App->run();

>

就这么简单几行,然后打开浏览器,输入http://127.0.0.1/

一个TP项目就这样构建出来了。你会看到

^_^ Hello,欢迎使用ThinkPHP!

这行字。并自动为你创建好项目的目录。接下来,我们这个项目添砖加瓦。

二简单认识项目里的各个文件夹

名词解释:

Action:模块控制器类,你暂时可以理解为一个Action文件代表着一个应用模块,Action 文件中的每一个方法(function)代表着一个操作,操作分为有输出到模板的操作和只具执行不需要输出的操作。对于有输出的操作,则代表了你的项目中一个展示给用户应用的web 页面。(注意:这不是正统的术语解释)

Model:数据表相对应的Model类,可以理解为一个Model文件对应着你项目数据库的其中一个表。命名关系请参看这里:/Article/10

在添砖加瓦之前,我们有必要认识一下各个文件夹的用途。

打开Myapp文件夹,里面TP已让你很省心地构建了最基本的目录。其中:

Cache文件夹:项目自动生成的模版缓存会出现在这里

Common文件夹:你的项目中要用到的自己写的函数,可以在这个文件夹下创建一个名为common.php文件,在这个文件中书写函数,这些函数可以用在你项目的各个类,同时也可以在模板变量中使用,TP框架会自动加载。

Conf文件夹:项目的运行配置文件config.php将放在这个文件夹里,(还有路由配置,调试配置等,请先忽略)

Data文件夹:TP会把项目的数据库表字段生成到这里,另外。。。那些先不必理会。Lang文件夹:项目的语言设置目录,先不必理会。

Lib文件夹:应用类库目录,在这文件夹内还有两个文件夹:Action和Model,Action目录放置命名为xxxAction.class.php的控制器文件,Model目录放置对应数据库表的命名为xxxModel.class.php的类文件。

Logs文件夹:项目中自动产生的日志文件会存放在这里。暂不必理会。

Temp文件夹:数据缓存目录,存放项目中自动生成的项目运行缓存文件等,以及使用文件方式时的缓存文件等

Tpl文件夹:模板文件目录,内有一个default文件夹,也就是默认的风格

项目生成的目录结构就先简单介绍到这里,下一步我们要简单地对项目进行最基本的配置。三创建数据表,并对项目进行配置,以便连接到数据库。

1 我们这里使用的是Mysql数据库,利用PhpMyadmin新建一个数据库,名称为myapp。

使用示例中心中的sql如下:

CREATE TABLE `think_form` (

`id` smallint(4) unsigned NOT NULL auto_increment,

`title` varchar(255) NOT NULL,

`content` varchar(255) NOT NULL,

`create_time` int(11) unsigned NOT NULL,

`update_time` int(11) unsigned NOT NULL,

`status` tinyint(1) unsigned NOT NULL,

`email` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

2 在Conf文件夹内,建立一个config.php文件。这个文件,就是Myapp项目的配置文件。系统会自动加载

config.php文件中的配置是以数组返回方式进行定义,会覆盖TP框架中的common目录下convention.php的默认配置。没有设置的配置,就以默认为准。配置设置可以利用C函数动态改变,暂且不必理会。

而我们连接到数据库的设置也是在这个文件中书写。

config.php代码如下:

if (!defined('THINK_PATH')) exit();

return array(

'DB_TYPE'=>'mysql', // 使用的数据库是mysql

'DB_HOST'=>'localhost',

'DB_NAME'=>'myapp',// 数据库名

'DB_USER'=>'root',

'DB_PWD'=>'123456',// 填写你连接数据库的密码

'DB_PORT'=>'3306',

'DB_PREFIX'=>'think_', // 数据表表名的前缀请参看/Article/10

);

>

暂时就是这样,后面会再根据需要进一步添加和讲解。

3 在Lib/Model目录下,创建一个文件,命名为FormModel.class.php。命名规则刚才你已看了两次。

这里就不再多说,我们可以看到,数据表名是think_form,由于我们配置了数据表表名的前缀为think_,所以文件的命名直接使用 "不含前缀的数据表表名+Model.class.php"就行了。

在这个文件中书写代码:

class FormModel extends Model {

}

>

就这样定义一个类名就行了。该类继承了Model类。至于自动验证,自动过滤,自动填充这些,暂且不理会。

4 提前先爽一下吧。再次利用PhpMyAdmin,在该表中插入一些数据

sql如下:

INSERT INTO `think_form` (`id`, `title`, `content`, `create_time`, `update_time`, `status`, `email`) VALUES

(1, '这是测试数据','dfdf',1212724876,0,1,'************');

然后我们打开Myapp/Lib/Action/IndexAction.class.php文件,将里面的内容删掉。改成

相关文档
最新文档