设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
Thinkphp 空操作、空控制器、命名空间(详解) ...
返回列表
查看:
1342
|
回复:
0
Thinkphp 空操作、空控制器、命名空间(详解)
[复制链接]
福多多fluke
当前离线
积分
7736
2600
主题
2600
帖子
7736
积分
论坛元老
论坛元老, 积分 7736, 距离下一级还需 9992263 积分
论坛元老, 积分 7736, 距离下一级还需 9992263 积分
积分
7736
发消息
电梯直达
楼主
发表于 2018-2-14 05:26:11
|
只看该作者
|
倒序浏览
|
阅读模式
1、空操作
空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。
http://网址/index.php/Home/Main/login
http://网址/index.php/Home/Main/
hello 空操作
出现页面:
显示的错误信息过于详细,为安全以及优化页面起见,实行空操作
1、做一个_empty()方法。要在子类里面写,不要再父类里(推荐使用)
function _empty()
{
echo "网页不存在,请检查浏览器地址信息!";
}
2.造一个该方法对应的模版
在view/main下面新建一个text.html文件
别乱访问
注意:空操作方法仅在你的控制器类继承系统的Think\Controller类才有效,否则需要自己定义 __call 来实现。
2、空控制器
空控制器的概念是指当系统找不到请求的控制器名称的时候,系统会尝试定位空控制器(EmptyController),利用这个机制我们可以用来定制错误页面和进行URL的优化。
Home/Controller/EmptyController.class.php
3、跨控制器调用
一个控制器在执行的时候,可以实例化另外一个控制,并通过对象访问其指定方法。
跨控制器调用可以节省我们代码的工作量
3.1 同一模块下:
例如:在Home/Controller中有两个控制器:IndexController.class.php和MainController.class.php
在IndexController.class.php有一个方法:
public function ShuChu()
{
return "教务管理系统!";
}
现在想要在 MainController.class.php中也调用ShuChu()方法
function DiaoYong()
{
//方法一:造对象
//$index=new IndexController();
//echo $index->ShuChu();
//造对象有快捷函数供我们使用:
//A(“[模块/]控制器标志”) 实例化控制器对象
//方法二:使用A()方法
//$index=A("Index");
//echo $index->ShuChu();
//R([模块/]控制器标志/操作方法) 实例化对象同时调用指定方法
//方法三:使用R()方法,造对象并且调用某个特定的方法
echo R("Index/ShuChu");
}
运行结果:
3.2 不同模块下:
新添加一个模块Admin
TextController.class.php:
现在想要在Home/Controller/ MainController.class.php中也调用Text()方法
function Text()
{
//跨模块调用
//方法一:使用A()方法
//$tt=A("Admin/Text");
//echo $tt->Text();
//方法二:使用R()方法,造对象并且调用某个特定的方法
echo R("Admin/Text/Text");
}
运行结果:
4.命名空间namespace
相当于一个虚拟的目录
正常管理文件使用文件夹--物理区分
TP框架的初始命名空间是:ThinkPHP\Library
在TP框架下命名空间里面使用\代表的是初始命名空间(ThinkPHP\Library)
1.系统目录下根命名空间是ThinkPHP\Library下面的文件夹名称命名的
2.模块的根命名空间是以模块名命名的
在定义命名空间的时候需要从根写起例如:Home\Controller 例如:Think\Model
如果要使用某个类文件,引入该类命名空间的时候:
使用use关键字,后面写该类的命名空间 后面加上 "\文件名"
如果不想引入命名空间:在造类的对象的时候可以使用\(初始命名空间)来找到对应的类
例如:new \Think\Page(30);
以上这篇Thinkphp 空操作、空控制器、命名空间(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
thinkphp控制器调度使用示例
ThinkPHP3.2.2的插件控制器功能简述
ThinkPHP控制器间实现相互调用的方法
ThinkPHP控制器详解
初识ThinkPHP控制器
thinkphp3.2实现上传图片的控制器方法
thinkphp3.2实现跨控制器调用其他模块的方法
完美解决在ThinkPHP控制器中命名空间的问题
thinkPHP通用控制器实现方法示例
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端