ThinkPHP5.0框架控制器继承基类和自定义类示例
本文实例讲述了ThinkPHP5.0框架控制器继承基类和自定义类。分享给大家供大家参考,具体如下:
继承系统控制器基类:
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function hello() { return 'hello,world'; } }
或者自定义一个基础控制器类Base:
<?php namespace app\index\controller; use think\Controller; class Base extends Controller { }
可以在Base控制器类中定义一些公共方法(如果对类的基本知识不够熟悉的话,参考PHP的类与对象部分说的非常清楚,在此不做深入了)。
然后应用下面的所有控制器类都继承Base:
<?php namespace app\index\controller; use app\index\controller\Base; class Index extends Base { public function hello() { return 'hello,world'; } }
建议给应用统一定义一个自己的控制器基类,方便后期扩展。
PHP不支持多继承,如果需要继承多个类,可以通过引入trait
。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
相关推荐
-
学习thinkphp5.0验证类使用方法
通过一个实例,给大家讲解一下如果通过thinkphp5.0验证类的方法. 自定义验证类,需继承Validate类 比如在home模块新建validate文件夹,再新建Test.php验证类,内容如下: <?php namespace app\home\validate; use think\Validate; class Test extends Validate { protected $rule = [ 'name' => 'require|regex:/.{6}/', 'age' =&g
-
php执行多个存储过程的方法【基于thinkPHP】
本文实例讲述了php执行多个存储过程的方法.分享给大家供大家参考,具体如下: 从以前的使用原生代码来看,只需要将结果集关闭即可,即 $this -> queryID -> close(); 使用mysqli方式,修改DbMysqli.class.php,将query函数改为: public function query($str) { $this -> initConnect(false); if (!$this -> _linkID) { return false; } $thi
-
thinkphp5 migrate数据库迁移工具
tp5相对与tp3.2有很大的不同 migrate是其中一点,通过migrate程序员可以在php代码中创建数据库修改回滚等操作 首先下载migrate扩展,命令行到当前项目目录下执行 composer require topthink/think-migration 通过使用php think命令可以查看migrate是否成功下载 使用migrate:create migrate文件名(首字母大写的驼峰法),在database下生成migrate文件 有可能建立失败提示没有什么方法一般是com
-
thinkPHP5框架auth权限控制类与用法示例
本文实例讲述了thinkPHP5框架auth权限控制类.分享给大家供大家参考,具体如下: 这个是比较简单的用法: 直接把类贴出来,这里我改了,我没有用uid,因为我建的表是admin表,所以代码里对应查询改成了aid 还有表名,我都去掉了前缀 <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] //
-
thinkPHP5实现数据库添加内容的方法
本文实例讲述了thinkPHP5实现数据库添加内容的方法.分享给大家供大家参考,具体如下: 面对一个新框架安装好了一般不知道要干啥.那就先做一个写入功能先. 先做好准备工作先,首先要连接上数据库. 配置文件在application下的database.php里 return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'shoptest', // 用户名 '
-
thinkPHP5框架数据库连贯操作之cache()用法分析
本文实例讲述了thinkPHP5框架数据库连贯操作之cache()用法.分享给大家供大家参考,具体如下: 介绍 TP5中自带的缓存系统,是File型缓存.也就是文件型缓存.存储地址是:根目录\..\runtime\cache(根目录指public). 这个缓存系统相较于redis,memcached肯定有局限性的,自动更新以及缓存数据的复杂程度上有区别.但是对于一些简单的查询等还有很有帮助的.比如文章等这些内容使用起来还是不错的. cache可以用于select.find.value和colum
-
thinkPHP5实现的查询数据库并返回json数据实例
本文实例讲述了thinkPHP5实现的查询数据库并返回json数据.分享给大家供大家参考,具体如下: TP5 实现查询数据库返回json数据(返回json数据函数实例) 返回结果: 复制代码 代码如下: {"code":0,"msg":"\u6570\u636e\u8fd4\u56de\u6210\u529f","count":1000,"data":[{"id":617,"t
-
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
本文实例讲述了针对thinkPHP5框架存储过程bug重写的存储过程扩展类.分享给大家供大家参考,具体如下: 近期用tp5框架调取存储过程发现有bug,借鉴了一些官方的函数.以及找了个mysqli的类把存储过程重新写了个扩展类,下面两个类直接放置项目extend目录的stored(这个文件夹名称请按个人习惯命名)目录下,需要注意的是类增加命名空间namespace stored就OK. 1.mysqli类,此类直接在网上找的,新增一个getAllData()的函数来获取存储过程多条数据集 <?p
-
tp5(thinkPHP5)操作mongoDB数据库的方法
本文实例讲述了tp5(thinkPHP5)操作mongoDB数据库的方法.分享给大家供大家参考,具体如下: 1.通过composer安装 composer require mongodb/mongodb 2.使用 <?php /** * @author: jim * @date: 2017/11/17 */ namespace app\index\controller; use think\Controller; use MongoDB\Driver\Manager; use MongoDB\C
-
ThinkPHP5.0框架控制器继承基类和自定义类示例
本文实例讲述了ThinkPHP5.0框架控制器继承基类和自定义类.分享给大家供大家参考,具体如下: 继承系统控制器基类: <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function hello() { return 'hello,world'; } } 或者自定义一个基础控制器类Base: <?php namespace app\inde
-
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
本文实例讲述了Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作.分享给大家供大家参考,具体如下: Thinkphp5.0 控制器向视图view的赋值 方式一(使用fetch()方法的第二个参数赋值): <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function study_view(){ return $thi
-
thinkPHP5.0框架引入Traits功能实例分析
本文实例讲述了thinkPHP5.0框架引入Traits功能.分享给大家供大家参考,具体如下: ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集.Traits和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题. 但由于
-
thinkPHP5.0框架模块设计详解
本文实例讲述了thinkPHP5.0框架模块设计.分享给大家供大家参考,具体如下: 5.0版本对模块的功能做了灵活设计,默认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改). 目录结构 标准的应用和模块目录结构如下: ├─application 应用目录(可设置) │ ├─common 公共模块目录(可选) │ ├─common.php 公共函数文件 │ ├─route.php
-
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
本文讲述了thinkPHP5.0框架整体架构.分享给大家供大家参考,具体如下: ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织. MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作
-
thinkPHP5.0框架命名空间详解
本文实例讲述了thinkPHP5.0框架命名空间.分享给大家供大家参考,具体如下: 命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass
-
thinkPHP5.0框架URL访问方法详解
本文实例讲述了thinkPHP5.0框架URL访问方法.分享给大家供大家参考,具体如下: URL设计 ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...] 支持切换到命令行访问,如果切换到命令行模式下面的访问规则是: >php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...] 可以看到,无论是URL访问还是命
-
thinkPHP5.0框架应用请求生命周期分析
本文实例讲述了thinkPHP5.0框架应用请求生命周期.分享给大家供大家参考,具体如下: 本篇内容我们对ThinkPHP5.0的应用请求的生命周期做大致的介绍,以便于开发者了解整个执行流程. 1.入口文件 用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件.当然,你也可以更改或者增加新的入口文件. 通常入口文件的代码都比较简单,一个普通的入口文件代码如下: // 应用入口文件 // 定义项目路径 define('APP_PATH', __DIR__ . '/..
-
thinkPHP5.0框架API优化后的友好性分析
本文实例讲述了thinkPHP5.0框架API优化后的友好性.分享给大家供大家参考,具体如下: 新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展. 数据输出 新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置default_return_type或者动态设置不同类型的Response输出就可以自动进行数据转换处理,一般来说,你只需要在控制器中返回字符串或者数组即可,例如如果我们配置: 'default_return_type'=
-
thinkPHP5.0框架自动加载机制分析
本文实例讲述了thinkPHP5.0框架自动加载机制.分享给大家供大家参考,具体如下: 概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4. 自动加载 由于新版ThinkPHP完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载. 类库的自动加载检测顺序如下:
随机推荐
- js 将json字符串转换为json对象的方法解析
- 正则表达式中的反向预搜索(下)
- 用xslt将xml解析成xhtml的代码
- javamail 发送邮件的实例代码分享
- iOS中自动实现对象序列化的方法详解
- spring cloud学习教程之config修改配置详解
- javascript 三组文字间隙滚动实例代码
- javascript showModalDialog传值与FireFox的window.open 父子窗口传值示例第1/2页
- 发款php蜘蛛统计插件只要有mysql就可用
- SQL GROUP BY 详解及简单实例
- ie中js创建checkbox默认选中问题探讨
- 创建无表格网站的原因和原则 译文
- jQuery制作可自定义大小的拼图游戏
- jQuery中设置form表单中action值的实现方法
- 导致计算机系统“死机”的原因及其预防方法
- 探秘软件开发的另一极(1)
- 配置ipsec
- 交换机的启动及基本配置
- TF-IDF与余弦相似性的应用(二) 找出相似文章
- Android zip4j压缩、解压、加解密的示例代码