齐博x1第四季《模块插件的制作》系列5-让Test类继承系统类

2021-04-21 作者:torylf 分类:教程 阅读:1532

上一节我们创建了一个Test类下的index方法,点击菜单后这个方法内容显示在了主界面


但是如果我们直接访问这个方法,也是可以显示的,没有受到后台的约束

比如:

后台关键点在哪,后台是需要管理登录才可以看到内容的,我们直接访问这个方法却可以直接访问,这里问题就大了。

怎样解决呢,通常都是需要我们自己写好登录条件进行其判断。

但是我们现在不是自己开发,只是开发X1系统的模块,所以很多东西都必须依靠系统的架构进行继承。因为系统本身这些都已经写好了。


这里我们以继承系统的C类来说明,初级玩家一般只用到一些简单的方法就可以开发不错的模块了

看代码:


关键点:

extends 代表继承,这里继承的是 app\common\controller\admin 下的 C,

所以要使用use加载一下这个C,因为我们现在写的是后台入口,所以需要加载的是系统提供admin下的这个C类

因为index下和member下都有,不要弄混了,因为提供的方法不同



下面我们在进行这个方法的外部访问,就会弹出需要登录了,

因为已经被约束在后台才可以访问。

是不是如此简单。

额外说明:这里特别用C类继承,来说明举例,是因为C里面包含了好了一些增删改查,更容易让大家上手,

因为很多模块开发,都是依据CMS复制过来改版开发,而cms主要的content方法就是依赖C提供的方法,

但是很多业务场景并不是这些简单的内容控制,所以当大家晋升为高级玩家的时候,一般都是继承

app\common\controller\AdminBase   这个类只对后台初始化进行操作,并没有提供其他的功能性方法,让大家干净的开发。

至于系统顶层的Base类,是对系统的登录,路由等一些公共的方法进行处理,大家未晋升到骨灰级玩家时,就不需要考虑这些了。




补充php小知识:

继承,在面向对象的编程中继承是必须要掌握的,这里简单的描述下。

继承可以按照字面意思理解,起到父辈向子辈传承作用,父辈有的东西,可以被子辈继承

代码里就是父类的方法,如果子类继承了,那么子类就可以直接使用,比如在A类写了一个abc方法,B类继承了A,那么B类就可以直接使用abc方法

看下代码:

class A {
    public function abc(){}
}

class B extends A{

}


这时候B类里没有任何方法,但是可以直接使用abc方法,这就是因为继承。





来源: 神盾工作室    转载请注明出处!

本文地址:https://www.shieldsoho.com/article/104.html

{{item.nickname}} @回复
发表于{{item.create_time}}

  • {{replyitem.nickname}} {{item.create_time}}
    @{{item.nickname}}

查看更多评论