ThinkPHP中URL路径访问与模块控制器之间的关系
ThinkPHP中URL路径访问与模块控制器之间的关系是ThinkPHP程序开发中非常重要的一个环节。熟练的掌握该技巧对于进一步学习ThinkPHP起着至关重要的作用。具体分析如下:
打开控制器页面:
UserAction.class.php //路径:admin\Lib\Action\ 此处的admin为新建的项目对应的目录
我们都知道在Action里的方法默认为Public属性,私有属性的方法没法访问,但定义私有属性的方法也有其意义所在。
在其中定义私有方法的意义:主要体现在,能够在这里写一个与用户模块相关的方法,但是你又不希望原有方法太过于臃肿,因此,我们可以定义一个私有来实现,如果验证规范发生变化,只需要改这当中的一个方法就行。不用再去找一个大堆的代码当中去找。
示例代码如下:
class UserAction extends Action{ function index(){ echo '这是首页'; } function add(){ $this->verify(); echo '这是向数据库中写入数据的方法'; } private function verify(){ echo '这是验证的方法'; } }
../admin.php/User/add 执行结果:
这是验证的方法这是向数据库中写入数据的方法
希望本文所述对大家ThinkPHP程序设计有所帮助。
相关推荐
-
thinkPHP5.0框架引入Traits功能实例分析
本文实例讲述了thinkPHP5.0框架引入Traits功能.分享给大家供大家参考,具体如下: ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集.Traits和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题. 但由于
-
ThinkPHP实现跨模块调用操作方法概述
使用 $this 可以调用当前模块内的方法,但是很多情况下经常会在当前模块中调用其他模块的方法.ThinkPHP内置了A方法与R方法这两个特殊的大写字母方法来处理跨模块调用的问题. 目前Index模块内有index操作User模块有showName操作User模块及showName操作具体代码如下: <?php class UserAction extends Action{ public function showName(){ echo "Hello World"; } }
-
ThinkPHP空模块和空操作详解
ThinkPHP的空模块和空操作也是很有实用意义的功能,空模块的概念就是当ThinkPHP找不到指定模块的时候,它会尝试去定位空模块(EmptyAction),执行空模块里面的index操作.同理,空操作也是同样的概念,当系统找不到指定模块下的操作方法的时候,就会尝试去定位空操作方法(empty).其实很好理解,就有点类似php虚拟主机里面的自定义404页面,但它比自定义404更加灵活,利用这个机制,我们可以实现错误页面和一些URL的优化,下面分别详细介绍下空模块和空操作的写法. 1.空模块,在
-
ThinkPHP采用模块和操作分析
任何一个WEB行为都可以认为是一个模块的某个操作,系统会根据当前的URL来分析要执行的模块和操作.这个分析工作由URL调度器来实现,官方内置了Dispatcher类来完成该调度. 在Dispatcher调度器中,会根据 http://servername/appName/moduleName/actionName/params 来获取当前需要执行的项目(appName). 模块(moduleName)和操作(actionName),在某些情况下,appName可以不需要(通常是网站的首页,因为项
-
thinkPHP5.0框架自动加载机制分析
本文实例讲述了thinkPHP5.0框架自动加载机制.分享给大家供大家参考,具体如下: 概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4. 自动加载 由于新版ThinkPHP完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载. 类库的自动加载检测顺序如下:
-
thinkphp中空模板与空模块的用法实例
本文实例讲述了thinkphp中空模板与空模块的用法.分享给大家供大家参考.具体实现方法如下: 1. 空操作 复制代码 代码如下: function _empty($name){ $this-]show("$name 不存在 [a href='__APP__/Index/index']返回首页[/a]"); } 2. 空模块 复制代码 代码如下: class EmptyAction extends Action{ function index()
-
thinkphp3.2实现跨控制器调用其他模块的方法
本文实例讲述了thinkphp3.2实现跨控制器调用其他模块的方法.分享给大家供大家参考,具体如下: thinphp中前台后台都有互相调用方法,这样可以省去重复内容. $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他地方的方法同理. 如果是在同控制器里模块名可以省略. 如调用common里面的某个类的方法: $hello = new \Common\Fun\hello(); $hello->hehe(); 框架里面提供了跨
-
thinkPHP5.0框架命名空间详解
本文实例讲述了thinkPHP5.0框架命名空间.分享给大家供大家参考,具体如下: 命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass
-
ThinkPHP访问不存在的模块跳转到404页面的方法
首先在ACTION中新建一个文件EmptyAction.class.php,其代码如下: <?php class EmptyAction extends Action{ function _empty(){ header("HTTP/1.0 404 Not Found");//使HTTP返回404状态码 $this->display("Public:404"); } } ?> 使用apache服务器的情况下需在apache中的网站配置中加入 Err
-
thinkPHP5.0框架模块设计详解
本文实例讲述了thinkPHP5.0框架模块设计.分享给大家供大家参考,具体如下: 5.0版本对模块的功能做了灵活设计,默认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改). 目录结构 标准的应用和模块目录结构如下: ├─application 应用目录(可设置) │ ├─common 公共模块目录(可选) │ ├─common.php 公共函数文件 │ ├─route.php
-
ThinkPHP写第一个模块应用
找到项目文件夹下面的Lib/Action这个目录,在下面有个创建好的例子IndexAction.class.php,加入我们创建的是admin这个项目,那么./admin/Lib/Action/IndexAction.class.php,这个模块是默认加载的模块.在ThinkPHP中,自动加载的动作.方法.操作等等都是以index命名的. 下面,我们创建一个自己的模块,比如UserAction,class.php(注意命名规则),我们编辑这个文件: 复制代码 代码如下: <?php //先继承A
-
解密ThinkPHP3.1.2版本之模块和操作映射
模板和操作映射功能是ThinkPHP3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的特性,对于应用的迁移也有很大的帮助. 因为,普通情况下,如果需要更改URL的模块或者操作访问的话,需要改动的文件较多,容易导致关联性出错.尤其是很多应用需要迁移到新版本的时候,由于模型和控制器改动较多,导致URL地址出现大的调整,通过模块和操作映射功能,就可以很轻松的解决此类问题.
-
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
想要达成的效果很简单,我有两个模块,Home.Wechat. http://localhost/index.php/home/index/index 缩短为: http://localhost/index/index http://localhost/index.php/wechat/index/index 缩短为: http://localhost/wechat/index/index 隐藏index.php,这个比较简单,我开启.htaccess的支持就行,具体配置执行百度吧,我用的是apa
随机推荐
- VB.NET实现验证信用卡卡号
- mongodb安装_动力节点Java学院整理
- jQuery中的on与bind绑定事件区别实例详解
- 查看物理内存的批处理
- Spring Boot中使用Spring-data-jpa实现数据库增删查改
- php实例分享之html转为rtf格式
- Android 定时器实现图片的变换
- Jquery知识点二 jquery下对数组的操作
- 什么是Unicode,什么是UTF-8
- CentOS安装solr 4.10.3详细教程
- 微信小程序 视图容器组件的详解及实例代码
- Oracle 外连接实现代码
- Sequelize中用group by进行分组聚合查询
- Android设计登录界面、找回密码、注册功能
- JVM指令的使用深入详解
- Vuejs在v-for中,利用index来对第一项添加class的方法
- Python参数类型以及常见的坑详解
- 配置Linux使用LDAP用户认证的方法
- 详解在vue-cli项目下简单使用mockjs模拟数据
- java实现阿拉伯数字转汉字数字