thinkPHP简单结构介绍!
Posted 帅到要去报警
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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简单结构介绍!的主要内容,如果未能解决你的问题,请参考以下文章