thinkPHP简单结构介绍
application : 应用
extend:扩展 扩展内库
public:入口文件 index.php 在里面
runtime:缓存文件(里面的文件可以随便删除)
thinkphp:tinkphp的核心框架
vendor:第三方的内库
 
thinkPHP几个重要的核心文件
1、App.class.php 框架核心类文件
2、Think.class.php 每次请求都要执行的类
3、Controller.class.php 控制器的父类
4、Model.class.php 模型的父类
5、View.class.php 视图的父类
 
构建一个THink应用
  1. // 检测PHP环境
  2. if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
  3. // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
  4. define('APP_DEBUG',True);
  5. // 定义应用目录
  6. define('APP_PATH','./Application/');
  7. // 引入ThinkPHP入口文件
  8. require './ThinkPHP/ThinkPHP.php';

thinkPHP的路由

thinkphp下的 conf 下可以进行配置:(154行)

  1. /* 系统变量名称设置 */
  2. 'VAR_MODULE' => 'm', // 默认模块获取变量
  3. 'VAR_ADDON' => 'addon', // 默认的插件控制器命名空间变量
  4. 'VAR_CONTROLLER' => 'c', // 默认控制器获取变量
  5. 'VAR_ACTION' => 'a', // 默认操作获取变量

第一种方式:( 默认 )pathinfo模式:网址 / 入口文件(index.php)/平台(home) / 控制器(index) / 方法(index)

  1. http://think.fyz.com/index.php?home/index/index

第二种方式:普通模式:网址 / 入口文件(index.php)/m=模型(home) & c=控制器(index) & a=方法(index)

  1. http://think.fyz.com/index.php?m=home&c=index&a=index

第三种方式:rewrite();重写模式

第四种方式:兼容模式   参数 s=/分组/控制器/方法
  1. http://think.fyz.com/index.php?s=/home/index/index

定义和调用TP模板

所有的模板都要放到 view 文件夹下:
规则:一个控制器对应一个文件夹,一个方法对应一个文件

TP常用的系统变量

  1. header('content-type:text/html; charset=utf-8');
  2. echo "当前请求地址:".__SELF__."<br>";
  3. echo "当前分组:".__MODULE__."<br>";
  4. echo "当前控制器:".__CONTROLLER__."<br>";
  5. echo "当前方法:".__ACTION__."<br>";

具体查看地址:ThinkPHP / Behavior / ContentReplaceBehavior.class.php (30行)

  1. $replace = array(
  2. '__ROOT__' => __ROOT__, // 当前网站地址
  3. '__APP__' => __APP__, // 当前应用地址
  4. '__MODULE__' => __MODULE__,
  5. '__ACTION__' => __ACTION__, // 当前操作地址
  6. '__SELF__' => __SELF__, // 当前页面地址
  7. '__CONTROLLER__'=> __CONTROLLER__,
  8. '__URL__' => __CONTROLLER__,
  9. '__PUBLIC__' => __ROOT__.'/Public',// 站点公共目录
  10. );

开发模式显示日志信息

Application / Common / conf / config.php

  1. return array(
  2. //'配置项'=>'配置值'
  3. 'SHOW_PAGE_TRACE' => true,
  4. );

该项的具体配置:

ThinkPHP / Library / Behavior / ShowPageTraceBehavior.class.php (21行)

链接数据库

具体文件:ThinkPHP / conf / convention.php (54行)

放到:Application / conf / config.php

  1. /* 数据库设置 */
  2. 'DB_TYPE' => '', // 数据库类型
  3. 'DB_HOST' => '', // 服务器地址
  4. 'DB_NAME' => '', // 数据库名
  5. 'DB_USER' => '', // 用户名
  6. 'DB_PWD' => '', // 密码
  7. 'DB_PORT' => '', // 端口
  8. 'DB_PREFIX' => '', // 数据库表前缀

测试是否链接成功:

  1. public function mysqlCont(){
  2. echo C('DB_HOST');
  3. }

常用到的聚合函数

  1. public function showList(){
  2. $list = M('Goods');
  3. echo $goods->count();
  4. echo $goods->max('goods_price');
  5. echo $goods->min('goods_price');
  6. echo $goods->avg('goods_price');
  7. echo $goods->sum('goods_price');
  8. }

一些常用的方法

1、打印出系统常量;(这些是 ThinkPHP的,不是PHP的)

  1. var_dump(get_defined_constants());

2、A();方法:实例化其他控制器:

(注意这里的跨控制器,是当前平台下的控制器,不能跨调用跨平台的控制器)

  1. public function showManage(){
  2. //$obj = new ManagerController();
  3. $obj = A('Manager');//实例化其他控制器
  4. $obj->showfun();//调用其他控制器的方法
  5. }

3、R();方法

R()和A()基本一样,唯一不同的是R()函数在实例化控制器的时候把操作方法一起传递过去,省略了方法的调用。

  1. public function showManage(){
  2. $obj = R('Manager/showfun');//实例化其他控制器并调用方法
  3. R('Manager/showfun');
  4. }

4、C();方法

取得Conf下的配置参数用的;

  1. public function mysqlCont(){
  2. echo C('DB_HOST');
  3. }

5、M();方法

用来实例化模型用的;

我们的Model是在Application 路径下,所以Application 不用写:只用写Model:
所以命名空间是 :  namespace Model;   
其次我们要用到think下的model 类:Model.class.php
文件所在位置:ThinkPHP / Library / Think / Model.class.php
所以使用:use Think\Mode ;   
  1. <?php
  2. namespace Model;
  3. use Think\Model;
  4. class GoodsModuel extends Model(){
  5.  
  6. }

再控制器中实例化该模型:

  1. class GoodsController extends Controller(){
  2. public function testOne(){
  3. //$goods = new \Model\GoodsModuel();
  4. $goods = M('Goods');
  5. var_dump($goods);
  6. }
  7. }

6、D();方法

再TP3.2以后,M()和D()方法就是一样的,在TP3.2之前:

M();类似于是 new Model();

D();类似于是 new GoodsModel();

 
 

ThinkPHP简单结构介绍!的更多相关文章

  1. 一、ThinkPHP的介绍

    一.ThinkPHP的介绍 //了解 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板) 工作:负责前台页面显示 编写html代码 C - Controller 控 ...

  2. thinkPHP框架介绍(一)

    原文:thinkPHP框架介绍(一) 一.ThinkPHP的介绍 期间有对ThinkPHP框架在学习上的问题欢迎大家交流:QQ:812231134 MVC M - Model 模型           ...

  3. ThinkPHP框架介绍

    什么是框架 php框架是许多代码的集合,这些代码的程序结构的代码(并不是业务代码)代码中有许多的函数,类,功能类包 不使用框架开发的缺陷 代码编写不规范 牵一发而动全身 不能很好满足客户各方面的需求 ...

  4. ThinkPHP的介绍和安装

    8月6号开始学ThinkPHP了,看的是赵桐正老师的视频,.以及要去看了5集,初步感觉此框架还不错,就是要记忆哪些函数的用法感觉不太好.无论如何,既然要学了,就要遵从这个.在此,将学习时的一些笔记贴上 ...

  5. thinkphp 介绍

    一.ThinkPHP的介绍             MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板)        工作:负责 ...

  6. 【兄弟连ThinkPHP】1、介绍和安装

    琢磨了好几天的ThinkPHP了,兄弟连的视频真心不错,下面是记得一些要点,只做备忘,有兴趣的朋友请去百度兄弟连. ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo. ...

  7. ThinkPHP 介绍及安装 -1

    一.ThinkPHP的介绍 MVC M - Model 模型                工作:负责数据的操作 V - View  视图(模板)        工作:负责前台页面显示 C - Con ...

  8. Thinkphp学习回顾(一)之基本结构目录

    TP框架的学习一般都是从了解框架的基本结构开始的,每个文件都有其专属的作用,我的TP框架的回顾也从基本结构开始讲起. 一.ThinkPHP的获取 http://www.thinkphp.cn   这是 ...

  9. ThinkPhp学习01

    原文:ThinkPhp学习01 一.ThinkPHP的介绍           MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板 ...

随机推荐

  1. Qt 反射

    简介 本文主要讲解Qt是如何实现反射,以及一点点反射使用的小心得. 文章概览 Qt反射内幕小窥 详细内容 反射前期准备 得到注册的类成员变量 得到注册的类成员函数 访问类成员属性(get,set) 调 ...

  2. 基于Linux的智能家居的设计(4)

    3  开发环境的搭建 本次课题使用的开发环境比較特殊.没有一个现成的集成开发环境,需要自己一步一步的搭建开发环境,开发环境的搭建的过程十分复杂,并且假设没有这个开发环境本次课题就无法进行. 因此.在进 ...

  3. .net FrameWork各个版本之间的发展[转]

    上个星期看到了.NET 4.0框架退休日期逐渐临近文章,发现自己一直在使用NET  FrameWork,身为一个NET程序员,里面大概的区别自己还是知道的,但是自己要说出个所以然来了,发现还是有点力不 ...

  4. retinex相关代码汇总

    混合方法 SSR.m matlab代码,本来是RGB,改成了处理灰度图像的. %%%%%%%%%%%%%%%RGB normalisation%%%%%%%%%%%%%%%%%%%%%% %its c ...

  5. DWORD类型

    INT 代表int,DWORD 代表 unsigned longint会随着机器位数的不同而发生变化,比如在16位机上为16为,在32位机上为32位,在64位机上为64位.看看最原始的定义就知道了. ...

  6. IPV6设置

    C:\Windows\System32\drivers\etc 目录下修改hosts文件. 网上有更新的ipv6 hosts文件,复制下来~ 别人不断更新的: https://raw.githubus ...

  7. HBase 1.3(NOSQL) 发布,性能大幅提升

        Apache HBase 1.3.0版在2017年1月中旬正式发布了,新版本支持分层数据的压缩和多个方面的性能提升,像预写日志(WAL).一个新的RPC机制,等等.HBase 1.3.0一共修 ...

  8. import 和 import {} 的区别

    http://es6.ruanyifeng.com/#docs/module#export

  9. Spring MVC异常统一处理

    package com.shzq.common.exception; import java.io.PrintWriter;import java.io.StringWriter;import jav ...

  10. Oracle-未能加载文件或程序集“oracle.dataaccess”或它的某一个依赖项。试图加载格式不正确的程序。

    未能加载文件或程序集“oracle.dataaccess”或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以 ...