ThinkPHP基本编程

来源:互联网 发布:记录商品价格的软件 编辑:程序博客网 时间:2024/06/18 16:40

    本文我们来了解一个php后台开发框架:ThinkPHP。当我们熟悉了php,开始完成web项目时会发现,我们都会找一些框架,比如:前台比较出名的框架easyUI;后台比较常用的框架Thinkphp。当然,现在后台php开发的框架有很多,YII,CI等评价都比Thinkphp要高。但把Thinkphp作为第一个框架来举例讲解很有必要,因为它是中国人开发的,开发文档是中文的,它的MVC架构非常清晰容易理解。这些优点让它上手非常容易,且开发速度快。所以我们本文就来学习一下TP。

    首先,我们需要到TP官网下载框架:http://www.thinkphp.cn/down/framework.html我用的是thinkphp3.2.3完整版。同时我们需要下载对应的TP开发手册http://www.thinkphp.cn/down/doc.html。对于Thinkphp安装配置过程,大家可以去网上搜索,有很多详细的介绍,我在这里就不说了。只提一个重要点:因为后台开发一般分为home模块与admin 模块。所以大家配置安装TP时最好养成创建两个模块的习惯,方法可参考http://www.thinkphp.cn/topic/13239.html。

    配置安装TP后,首先我们需要绑定一个数据库,让我们可以访问其中的内容。上篇中已经说了,我们不需要自己再重复的写链接代码了,打开TP的安装目录,可以看到有Application,Public,ThinkPHP三个文件夹。ThinkPHP文件夹我们一般用不到,是TP框架的系统代码位置,Public文件夹我们之后会用到,这里存放项目中的图片,文件等内容。Application文件夹是我们编写的重点,其中有Home,Common,Runtime等文件夹。第三个文件夹Runtime是运行TP时的缓存文件夹。Home文件为刚刚提到的home模块所在位置,同样,如果创建了admin模块,这里会有Admin文件与之对应。Common文件为公共模块,在其中所设置内容,均可在其他模块中调用。数据库链接是和模块绑定的,各模块可以设置链接同一个数据库,也可以链接不同数据库。

    假如我们要为Home模块链接数据库:打开Home文件,在Conf文件中可以找到config.php,默认内容为:

 

<?php

return array(

    //'配置项'=>'配置值'

);

 

将其修改成:

 

<?php

return array(

    'DB_TYPE' => 'mysql',// 数据库类型

    'DB_HOST' => '127.0.0.1',// 数据库服务器地址

    'DB_NAME' => 'fire',// 数据库名称

    'DB_USER' => 'root',// 数据库用户名

    'DB_PWD' => '123456',// 数据库密码

    'DB_PREFIX' => 'fire_',// 数据表前缀

    'DB_CHARSET' => 'utf8',// 网站编码

    'DB_PORT' => '3306',// 数据库端口

);

将这几行中的必要内容替换为自己的数据库内容即可。这样链接数据库就完成了。

    然后,我们需要了解TP框架构建的主要思想MVC架构:M为model,V为view,C为controller。三层将功能合理划分,架构清晰,且方便了代码的管理与重用。

    (1)view层,为视图层,我们的html文件就是放在这里,决定了用户看到的网页内容。

    (2)model层,为模型层,我们最底层的访问数据库的php文件都在这里。TP的命名是很有学问的,对于model层的默认命名方式,这里举例说明:

    假设我们的数据库中有一个user表,需要访问其中所有内容,我们要在Home\Model文件夹中创建UserModel.class.php文件,编写内容:

 

<?php

namespaceHome\Model;

use Think\Model;

class UserModelextends Model {

         public function all() {

                   1)$query = M('user');

                   2)$data =$query->select();

                   3)return$data;

         }

}

其中1)行中为M方法访问对应的user表。2)行为选出user表中的所有内容。

    (3)Controller层,为控制器层,这是最重要的一层,我们要在其中编写后台所有的控制逻辑。接着上面举例:

    假设需要将user中的内容全部显示在页面中,我们要在Home\Controller文件夹中创建UserController.class.php文件,编写内容:


<?php

namespace Home\Controller;

useThink\Controller;

class UserControllerextends Controller {

    public function index(){

                   1)$User=D('user');

                   2)$ user = $ User->all();

                   3)$this->assign('user',$user);

        4)$this->display();

    }

}

其中1)行中为D方法实例化user模型。2)行中为调用user模型中的all函数,返回user变量存储了user表中的所有内容。3)行有一个非常重要的函数assign,它将user变量输出到页面,并为其赋名为user。4)行为显示函数,显示对应的index页面。

    到这里一个简单的程序已经编写完成了,user表中的内容就可以显示在对应的页面中。MVC架构我们也进行了最初的认识。当然,之后完成复杂的项目时,逻辑会复杂的多,调用多个模型,控制器间的调用,模块间的调用……还需要我们花费心思去学习。但原理是一样的,我希望通过这篇文章,可以对大家有所启发,更快的学习理解ThinkPHP。

 

 

1 0
原创粉丝点击