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程序设计有所帮助。

(0)

相关推荐

  • 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

随机推荐