继续摘抄:一步一步循序渐进学习TP一(新手篇)

来源:互联网 发布:淘宝生活用品代理 编辑:程序博客网 时间:2024/05/16 19:24

一步一步循序渐进学习TP一(新手篇)

前言
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代码
  1. <?php
  2.     // 定义ThinkPHP路径
  3.     define('THINK_PATH','./ThinkPHP');
  4.     // 定义项目名称
  5.     define('APP_NAME','Myapp');
  6.     // 定义项目路径
  7.     define('APP_PATH','./Myapp');
  8.     // 加载入口文件
  9.     require(THINK_PATH.'/ThinkPHP.php');
  10.     // 实例化这个项目
  11.     $App = new App();
  12.     // 执行初始化
  13.     $App->run();
  14. ?>
复制代码
就这么简单几行,然后打开浏览器,输入http://127.0.0.1/
一个TP项目就这样构建出来了。你会看到
  1. ^_^ Hello,欢迎使用ThinkPHP!
复制代码
这行字。并自动为你创建好项目的目录。接下来,我们这个项目添砖加瓦。

=============================================

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

名词解释:


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


Model:数据表相对应的Model类,可以理解为一个Model文件对应着你项目数据库的其中一个表。命名关系请参看这里:http://thinkphp.cn/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如下:
  1. CREATE TABLE `think_form` (
  2.   `id` smallint(4) unsigned NOT NULL auto_increment,
  3.   `title` varchar(255) NOT NULL,
  4.   `content` varchar(255) NOT NULL,
  5.   `create_time` int(11) unsigned NOT NULL,
  6.   `update_time` int(11) unsigned NOT NULL,
  7.   `status` tinyint(1) unsigned NOT NULL,
  8.   `email` varchar(50) NOT NULL,
  9.   PRIMARY KEY  (`id`)
  10. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
复制代码
2 在Conf文件夹内,建立一个config.php文件。这个文件,就是Myapp项目的配置文件。系统会自动加载
config.php文件中的配置是以数组返回方式进行定义,会覆盖TP框架中的common目录下convention.php的默认配置。没有设置的配置,就以默认为准。配置设置可以利用C函数动态改变,暂且不必理会。
而我们连接到数据库的设置也是在这个文件中书写。

config.php代码如下:
  1. <?php
  2. if (!defined('THINK_PATH')) exit();
  3. return array(
  4. 'DB_TYPE'=>'mysql', // 使用的数据库是mysql
  5. 'DB_HOST'=>'localhost',
  6. 'DB_NAME'=>'myapp',// 数据库名
  7. 'DB_USER'=>'root',
  8. 'DB_PWD'=>'123456',// 填写你连接数据库的密码
  9. 'DB_PORT'=>'3306',
  10. 'DB_PREFIX'=>'think_', // 数据表表名的前缀 请参看http://thinkphp.cn/Article/10
  11. );
  12. ?>
复制代码
暂时就是这样,后面会再根据需要进一步添加和讲解。

3 在Lib/Model目录下,创建一个文件,命名为FormModel.class.php。命名规则刚才你已看了两次。
这里就不再多说,我们可以看到,数据表名是think_form,由于我们配置了数据表表名的前缀为think_,
所以文件的命名直接使用 "不含前缀的数据表表名+Model.class.php"就行了。
在这个文件中书写代码:
  1. <?php
  2. class FormModel extends Model {
  3. }
  4. ?>
复制代码
就这样定义一个类名就行了。该类继承了Model类。至于自动验证,自动过滤,自动填充这些,暂且不理会。

4 提前先爽一下吧。再次利用PhpMyAdmin,在该表中插入一些数据
sql如下:
  1. INSERT INTO `think_form` (`id`, `title`, `content`, `create_time`, `update_time`, `status`, `email`) VALUES
  2. (1, '这是测试数据', 'dfdf', 1212724876, 0, 1, 'dddd@ddd.com');
复制代码
然后我们打开Myapp/Lib/Action/IndexAction.class.php文件,将里面的内容删掉。改成下面这样:
  1. <?php
  2. class IndexAction extends Action{
  3.     public function index(){
  4.         $form = D('Form')->findall();
  5.         dump ( $form );
  6.         exit;
  7.     }
  8. }
  9. ?>
复制代码
打开浏览器,输入http://127.0.0.1/,看,数据给输出来了。

今天先到这里,下一步我们继续循序渐进。让我们一起把这个Form最后变成一个有会员功能的留言板。
原创粉丝点击