ThinkPHP简单结构介绍!
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);
// 定义应用目录
define('APP_PATH','./Application/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
thinkPHP的路由:
thinkphp下的 conf 下可以进行配置:(154行)
/* 系统变量名称设置 */
'VAR_MODULE' => 'm', // 默认模块获取变量
'VAR_ADDON' => 'addon', // 默认的插件控制器命名空间变量
'VAR_CONTROLLER' => 'c', // 默认控制器获取变量
'VAR_ACTION' => 'a', // 默认操作获取变量
第一种方式:( 默认 )pathinfo模式:网址 / 入口文件(index.php)/平台(home) / 控制器(index) / 方法(index)
http://think.fyz.com/index.php?home/index/index
第二种方式:普通模式:网址 / 入口文件(index.php)/m=模型(home) & c=控制器(index) & a=方法(index)
http://think.fyz.com/index.php?m=home&c=index&a=index
第三种方式:rewrite();重写模式
http://think.fyz.com/index.php?s=/home/index/index
定义和调用TP模板:

TP常用的系统变量:
header('content-type:text/html; charset=utf-8');
echo "当前请求地址:".__SELF__."<br>";
echo "当前分组:".__MODULE__."<br>";
echo "当前控制器:".__CONTROLLER__."<br>";
echo "当前方法:".__ACTION__."<br>";
具体查看地址:ThinkPHP / Behavior / ContentReplaceBehavior.class.php (30行)
$replace = array(
'__ROOT__' => __ROOT__, // 当前网站地址
'__APP__' => __APP__, // 当前应用地址
'__MODULE__' => __MODULE__,
'__ACTION__' => __ACTION__, // 当前操作地址
'__SELF__' => __SELF__, // 当前页面地址
'__CONTROLLER__'=> __CONTROLLER__,
'__URL__' => __CONTROLLER__,
'__PUBLIC__' => __ROOT__.'/Public',// 站点公共目录
);
开发模式显示日志信息:
Application / Common / conf / config.php
return array(
//'配置项'=>'配置值'
'SHOW_PAGE_TRACE' => true,
);
该项的具体配置:
ThinkPHP / Library / Behavior / ShowPageTraceBehavior.class.php (21行)
链接数据库:
具体文件:ThinkPHP / conf / convention.php (54行)
放到:Application / conf / config.php
/* 数据库设置 */
'DB_TYPE' => '', // 数据库类型
'DB_HOST' => '', // 服务器地址
'DB_NAME' => '', // 数据库名
'DB_USER' => '', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '', // 端口
'DB_PREFIX' => '', // 数据库表前缀
测试是否链接成功:
public function mysqlCont(){
echo C('DB_HOST');
}
常用到的聚合函数:
public function showList(){
$list = M('Goods');
echo $goods->count();
echo $goods->max('goods_price');
echo $goods->min('goods_price');
echo $goods->avg('goods_price');
echo $goods->sum('goods_price');
}
一些常用的方法:
1、打印出系统常量;(这些是 ThinkPHP的,不是PHP的)
var_dump(get_defined_constants());
2、A();方法:实例化其他控制器:
(注意这里的跨控制器,是当前平台下的控制器,不能跨调用跨平台的控制器)
public function showManage(){
//$obj = new ManagerController();
$obj = A('Manager');//实例化其他控制器
$obj->showfun();//调用其他控制器的方法
}
3、R();方法
R()和A()基本一样,唯一不同的是R()函数在实例化控制器的时候把操作方法一起传递过去,省略了方法的调用。
public function showManage(){
$obj = R('Manager/showfun');//实例化其他控制器并调用方法
R('Manager/showfun');
}
4、C();方法
取得Conf下的配置参数用的;
public function mysqlCont(){
echo C('DB_HOST');
}
5、M();方法
用来实例化模型用的;
<?php
namespace Model;
use Think\Model;
class GoodsModuel extends Model(){ }
再控制器中实例化该模型:
class GoodsController extends Controller(){
public function testOne(){
//$goods = new \Model\GoodsModuel();
$goods = M('Goods');
var_dump($goods);
}
}
6、D();方法
再TP3.2以后,M()和D()方法就是一样的,在TP3.2之前:
M();类似于是 new Model();
D();类似于是 new GoodsModel();
ThinkPHP简单结构介绍!的更多相关文章
- 一、ThinkPHP的介绍
一.ThinkPHP的介绍 //了解 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板) 工作:负责前台页面显示 编写html代码 C - Controller 控 ...
- thinkPHP框架介绍(一)
原文:thinkPHP框架介绍(一) 一.ThinkPHP的介绍 期间有对ThinkPHP框架在学习上的问题欢迎大家交流:QQ:812231134 MVC M - Model 模型 ...
- ThinkPHP框架介绍
什么是框架 php框架是许多代码的集合,这些代码的程序结构的代码(并不是业务代码)代码中有许多的函数,类,功能类包 不使用框架开发的缺陷 代码编写不规范 牵一发而动全身 不能很好满足客户各方面的需求 ...
- ThinkPHP的介绍和安装
8月6号开始学ThinkPHP了,看的是赵桐正老师的视频,.以及要去看了5集,初步感觉此框架还不错,就是要记忆哪些函数的用法感觉不太好.无论如何,既然要学了,就要遵从这个.在此,将学习时的一些笔记贴上 ...
- thinkphp 介绍
一.ThinkPHP的介绍 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板) 工作:负责 ...
- 【兄弟连ThinkPHP】1、介绍和安装
琢磨了好几天的ThinkPHP了,兄弟连的视频真心不错,下面是记得一些要点,只做备忘,有兴趣的朋友请去百度兄弟连. ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo. ...
- ThinkPHP 介绍及安装 -1
一.ThinkPHP的介绍 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板) 工作:负责前台页面显示 C - Con ...
- Thinkphp学习回顾(一)之基本结构目录
TP框架的学习一般都是从了解框架的基本结构开始的,每个文件都有其专属的作用,我的TP框架的回顾也从基本结构开始讲起. 一.ThinkPHP的获取 http://www.thinkphp.cn 这是 ...
- ThinkPhp学习01
原文:ThinkPhp学习01 一.ThinkPHP的介绍 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板 ...
随机推荐
- R语言扩展包dplyr笔记
引言 2014年刚到, 就在 Feedly 订阅里看到 RStudio Blog 介绍 dplyr 包已发布 (Introducing dplyr), 此包将原本 plyr 包中的 ddply() 等 ...
- Javascript 你不知道的事,好吧,是我不知道的事
NaN表示一个不能产生正常结果的运算结果.它不等于任何值,包括它自己.可以用isNaN(number)来检测. 同Java中的字符串一样,JS中的字符串是不可变的.也就是说一旦字符串被创建,就无法改变 ...
- 分享10个原生JavaScript技巧
首先在这里要非常感谢无私分享作品的网友们,这些代码片段主要由网友们平时分享的作品代码里面和经常去逛网站然后查看源文件收集到的.把平时网站上常用的一些实用功能代码片段通通收集起来,方便网友们学习使用,利 ...
- 关于Cocos2d-x中坐标系的种类和转换
注意: 当一个节点有一个子节点的时候,如果移动父节点,子节点也会跟着做相应的移动变化,只要被添加到父节点中,子节点就被绑定了,所以子节点的位置,坐标就会被动地变化. 当一个节点有一个子节点的时候,如果 ...
- 利用百度地图API根据地址查询经纬度
传上来只是为了记录下三种jsonp方式,$.get(url, callback)方式不行,会出错 -- 必须指明返回类型为”json”才行. 或者使用$.getJSON()或者$.ajax({}). ...
- CommonJS初识
CommonJS是什么 CommonJS是一个标准库,或者说是一组规范.因为官方并没有给出真正的代码实现,而是给出一些代码组织规范.常用模块的api.包(Package)的命名规范和具体格式. Com ...
- bootstrap -- css -- 辅助类
文本 文本颜色 如果文本是个链接,则鼠标移动到链接文本上的时候,文本会变暗 .text-muted:灰色 .text-primary:浅蓝色 .text-success:绿色 .text-info:深 ...
- 最有价值的50道java面试题 适用于准入职Java程序员
下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...
- cesium入门1
本教程将获得所有技能水平的开发人员和他们的第一个铯应用程序运行. 验证Cesium在您的Web浏览器中工作的最简单的方法是单击此处运行Hello World示例 (打开一个新窗口).如果你看到像下面的 ...
- 移动端meta 解释
移动端meta 解释 <meta name="viewport" content="width=device-width, initial-scale=1.0, u ...