ThinkPHP框架初步掌握

为了帮老师用ThinkSNS二次开发一个微博系统,专门花了几天学习ThinkPHP框架,现在将一些ThinkPHP入门知识作以记录。

首先声明:

本文不是完全教程,只是将开发中碰到的问题作以总结,如果需要学习ThinkPHP框架,请参考官网文档:

官网首页

ThinkPHP3.1快速入门教程(更新中)

ThinkPHP完全开发手册

ThinkPHP3.1 API手册

附:开源微博系统ThinkSNS

目录结构

目录/文件 说明
ThinkPHP.php 框架入口文件
Common 框架公共文件目录
Conf 框架配置文件目录
Lang 框架系统语言目录
Lib 系统核心基类库目录
Tpl 系统模板目录
Extend 框架扩展目录(关于扩展目录的详细信息请参考后面的扩展章节)

我的文件结构

入口(ThinkPHP.php)

1、先在Web根目录(我用的phpstudy,是www文件夹)下面创建一个app项目(这个app就是我们的项目名)。

2、将下载的ThinkPHP解压(我是解压到app下,名为ThinkPHP)。

3、在app目录下面创建一个index.php文件,添加两行简单的代码:

    <?php    define("APP_DEBUG", TRUE);  //开启调试模式,方便调试
     require ‘/ThinkPHP框架所在目录/ThinkPHP.php‘;  //我的为/ThinkPHP/ThinkPHP.php

这行代码的作用就是加载ThinkPHP框架的入口文件ThinkPHP.php,这是所有基于ThinkPHP开发应用的第一步。
然后,在浏览器中访问这个入口文件。

        http://localhost/app/index.php

因为index.php为默认首页,所以亦可省略。

模板(Tpl)

Tpl文件夹下为模版页面,可放置html、php等页面。

同时支持多模块,即可在Tpl下建立多个文件夹,每个文件夹对应一个模块,同时一个模块和一个控制器对应(需要名字相同)

我的:

两个模块Form、Index

Tpl下对应有两个文件夹Form、Index

则对应的控制器也是两个FormController.class.php、IndexController.class.php

控制器(Controller)

命名:模块名+Controller

PATHINFO模式:是系统的默认URL模式,提供了最好的SEO支持,系统内部已经做了环境的兼容处理,所以能够支持大多数的主机环境。

对应上面的URL模式,PATHINFO模式下面的URL访问地址是:

    http://localhost/app/index.php/module/action/var/value/
  //module为模块名称(控制器名称)、不带Controller
  //action为操作名称(控制器中的方法名称)、不带Model
  //var为参数名
  //value为参数值  //var与value成对出现

我的:

    http://localhost/app/index.php/Index/index
  调用IndexController下的index()方法    如果该方法不存在,将直接调用Tpl/Index/index.html页面

模型(Model)

1、命名:模块名字+Model

在ThinkPHP的模型里面,有几个关于数据表名称的属性定义,在对应的Model中声明为属性字段(或者叫成员变量):

属性 说明
tableName 不包含表前缀的数据表名称,一般情况下默认和模型名称相同,只有当你的表名和当前的模型类的名称不同的时候才需要定义。
trueTableName 包含前缀的数据表名称,也就是数据库中的实际表名,该名称无需设置,只有当上面的规则都不适用的情况或者特殊情况下才需要设置。
dbName 定义模型当前对应的数据库名称,只有当你当前的模型类对应的数据库名称和配置文件不同的时候才需要定义。

只要命名规范,ThinkPHP会根据Model名字找到你要调用的数据库表,当然,前提你得建立。

规则:

1)表名为tp_categories(tp_为表前缀,在配置文件中配置)

    protected $tableName = ‘categories‘; 

2)表名为top_depts,top_不是系统配置的表前缀,需要使用表的全名

    protected $trueTableName = ‘top_depts‘; 

3)可设置数据库

    protected $dbName = ‘top‘;

调用:

可调用本模块Model,也可跨项目或模块调用。

本模块:

D("UserModel")

跨项目:

D("UserModel", "app")  //D(Model名称,项目名称)

M方法与D方法类似,不过,我只用了D方法

函数库

可通过load(@.hello),hello为函数库文件名称

也可通过在项目配置文件中定义LOAD_EXT_FILE参数,例如:

    "LOAD_EXT_FILE"=>"user,db"

类库

通过import可引入使用的类包,可跨项目或模块

import("App.Model.UserModel");
App为应用名

Model表明是模型

UserModel为模型名称

数据库

这块东西太多,使用也最频繁,因此,官方文档介绍的很详细,请大家点击文章开头的链接查看

写了好久,希望对大家有点用处。

原文链接:http://www.cnblogs.com/FlyFive/archive/2013/01/06/2848246.html

时间: 2024-10-08 11:49:21

ThinkPHP框架初步掌握的相关文章

ThinkPHP 框架模型

本文和大家分享的主要是ThinkPHP 框架模型相关内容,一起来看看吧,希望对大家学习php有所帮助. 1 在MainController.class.php 控制器中有一个test的方法,同时还有一个deng的方法,我想在test方法中使用deng方法 表示为 <?phpnamespace Home\Controller;use Think\Controller;class MainController extends controller{ public function test() {

ThinkPHP框架系统源码解析——URL路由解析

1 一.ThinkPHP框架目录 2 /test/index.php //项目入口文件 3 /ThinkPHP/ThinkPHP.php //框架入口文件 4 5 Common 框架公共文件目录(函数库) 6 ThinkPHP/Common/runtime.php //框架初次运行文件 7 ThinkPHP/Common/common.php //框架基础函数库 8 ThinkPHP/Common/functions.php //标准模式公共函数库 9 10 Conf 框架配置文件目录 11 T

ThinkPHP框架里隐藏index.php总结

本文所写的配置在ThinkPHP3.2.2上测试过.按理也兼容其它版本.如果你正在学习ThinkPHP框架,一定能有所收获. 首先修改配置文件: 'URL_CASE_INSENSITIVE'  =>  true,   // 默认false 表示URL区分大小写 true则表示不区分大小写'URL_MODEL'             =>  2,       // URL访问模式,可选参数0.1.2.3,代表以下四种模式: // 0 (普通模式); 1 (PATHINFO 模式); 2 (RE

ThinkPHP框架快速开发网站

使用ThinkPHP框架快速搭建网站 这一周一直忙于做实验室的网站,基本功能算是完成了.比较有收获的是大概了解了ThinkPHP框架.写一些东西留作纪念吧.如果对于同样是Web方面新手的你有一丝丝帮助,那就更好了挖. 以前用PHP做过一个很蹩脚的网站,为什么这么说呢,因为写的全是死代码.做完以后觉得实在是累,前端要div+css,js 后端要php,mysql,这么多东西要弄,十分头疼.所以,在接到做网站的任务后,我第一时间想到一定要使用开发框架去做,绝不能跟以前一样那么累了. 我选择的是PHP

关于Thinkphp框架模型应用过程中出现的错误Undefined class constant MYSQL_ATTR_INIT_COMMAND

今天在用thinkphp框架做网站的时候,在调用model模型是意外发生Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]错误, 下面是我百度的结果,大部分说解决问题可以分为以下两类: 1. windows下iis7.5+php5.4.11(FastCGI) 缺少pdo,编辑php.ini 取消注释: extension=php_pdo_mysql.dll 重启iis PHP数据对象(PDO)扩

ThinkPHP框架的部署

1.将ThinkPHP框架的框架文件放到想要放置的地方,与创建的应用文件夹同级 2.vhost文件中设置虚拟目录 3.在hosts文件中配置 4.在应用目录中创建入口文件index.php 5.在入口文件中引入框架 6.从浏览器访问入口文件 7.应用中自动生成相关文件

ThinkPHP框架基础回顾

首先,我们必须要知道的就是目录结构: 我们把解压完成之后会出现以下的目录: 这是tp官方的手册目录解释,我们可以先不要去看其他的文件,这里,我们主要用到的就是php的核心库ThinkPHP框架目录: 然后在这个非常主要的目录下面,又有如下的文件目录对我们是同样的重要: 这个就是tp的核心目录了,接下来就是关于入口文件了,显而易见,这个入口文件就比zend框架的入口文件好找多了,那么这个入口文件其实在解压目录的表面就已经给我们了,我们可以直接使用它,当然也可以自己去写,就是那个index的文件,千

学习ThinkPHP框架必须了解的知识点(一)

1.框架:有大量的类.方法.函数按一定的逻辑组成的集合: 2.MVC(Model-View-Controller):即模型-视图-控制器这种编程模式:  M->Model:实体层,它主要是对数据库的操作:每一个Model.cs文件对于一张数据表,和它相应的数据库库操作:  V->View:视图层,可以简单的理解为模板,主要是展示作用:  C->Controller:控制层(控制器),对数据进行分析.过滤:它向上连接视图层,向它提供从数据口读取的数据,向下连接实体层,控制数据的读取.  M

关于在BAE上部署ThinkPHP框架的问题

现在有点小兴奋,因为在在BAE上部署ThinkPHP框架的问题快折腾一天了,午觉都没睡,不过没白整总算有点结果.不扯淡了,直入正题吧. 之前熟悉ThinkPHP框架,想在BAE上用ThinkPHP做点东西,部署了一天的环境了总结一下把: 一:首先你得有百度帐号吧,别着急先登上.然后进入快速创建应用如下图所示 二.创建应用的具体过程就不多说了吧不是今天的重点,然后ThinkPHP官网上去下一个云引擎版本链接如下:http://www.thinkphp.cn/down.html,我是用的ThinkP