X1最强大之处,体现在灵活,扩展性强,在使用过程中,你会发现灵活之处非常之多.

现在跟大家讲一下,灵魂函数 fun()

X1的核心函数文件是 application/common.php

随着模块频道的增加,这个文件会不断的挤大. 而用户要二次开发,肯定要增加全局函数. 如果写在这个文件的话,一升级,就会被替换,不升级的话,又不行.
面对这几个问题的困扰

fun() 函数应运而生

他的使用方法是

fun('sort@get')
双或者是
fun('sort@set',$fid)

其中第一项就是定义文件名与方法名, 自定义函数统一放在这个目录 \application\common\fun
@后面就是方法名

比如上面的情况就是 \application\common\fun 这个目录下面的自定义函数文件 sort.php

sort.php 里边的代码大致如下

<?php
namespace app\common\fun; class Sort{
public function get(){
return '返回不带参数的演示';
} public function set($fid,$mid='100'){
return "返回fid=$fid,mid=$mid";
}
}

也就是说, \application\common\fun 目录下实质都是类文件,里边都是方法,通过 fun() 函数就把他们当作函数一样使用了.
这样也可以解决函数同名的问题, 也就是说不同文件的函数方法名是可以雷同的.同一个文件当然是不行的.

虽然thinkphp可以定义多个函数文件的存在, 但他存在两个弊端, 第一个就是他会预先加载,假如文件有几十,几百个的话,会全部一次加进来.这非常影响效率. 第二个是函数名不能雷同.

而 fun 函数的话,可以很好的解决这些问题.他是按需加载, 用到什么就加载什么文件 . 同时函数方法名在不同的文件中互不影响.

实例演示:

https://x1.php168.com/bbs/show-990.html


特别提醒:
fun函数的实质就是执行类,特别方便在模板中使用,比如

{:fun('sort@name',$fid)}

像这样一个函数,实质就是运行了一个类的方法 , 如果不用fun函数的话, 在模板中,你要使用一个类的方法非常麻烦, 至少你需要在模板中单独写php代码use app\xx\xx\xx 把要使用的类,这样包含进来. 如果要使用多个类,这个页面就会变得非常乱.
如果你把他当作函数写在 app\xxx\common.php 里边的话, 那别的频道不好调用. 所以这些都是fun可以解决的。

当然如果仅仅是在PHP文件中使用,而不在模板中使用的话,他的灵活之处就不是太明显

齐博x1 二次开发的灵魂fun函数的更多相关文章

  1. 齐博x1齐博首创钩子的使用方法

    齐博X1有两套钩子体系,第一套是基于TP思路设计的.跟外面的大同小异.现在重点讲一下第二套我们首创的使用方法. 首先说一下如何埋钩子,这个跟TP思路的钩子类似,就是在页面的任何地方加入如下代码即可如下 ...

  2. 齐博X1到底是个什么鬼?

    什么是齐博/齐博CMS之X1? 齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. ...

  3. 齐博x1到底是怎么的存在?

    齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. 系统已经对接好QQ.微信登录,同 ...

  4. 最近无聊搭建一个齐博X1的下载页面

    https://layui.wanxiangsucai.com/ 用layui官方镜像站的模版 改了个齐博X1的下载页面 https://x1.wanxiangsucai.com/ 哈哈哈!!! 还有 ...

  5. 齐博x1第四季《模块插件的制作》系列21-公共表单器的参数选项(7)

    password 密码类型 和text一样,只不过type类型是password,密码类型输入时,显示星号.即Html中的密码框类型 icon 字体图标类型 和列表页一样,把css的字体图标引入到了表 ...

  6. 齐博x1频道的二次开发入门讲解

    要进行频道的二次开发,首先我们要先了解一下频道的目录结构,如下图最基本的几个目录admin 后台文件存放目录index 前台文件存放目录member 会员中心存放目录model 数据表模型目录trai ...

  7. 齐博软件 著名的老牌CMS开源系统 X1.0基于thinkphp开发的高性能免费开源PHP开放平台齐博x1.0基于thinkphp框架开发的高性能免费开源系统 主推圈子 论坛 预定拼团分销商城模块

    齐博X1--标签变量大全 1.网站名称: {$webdb.webname} 2.网址: {$webdb[www_url]} {:get_url('home')} 3.网站SEO关键词: 首页:{$we ...

  8. 齐博x1服务器性能太差,调整系统升级每次校验的文件数

    系统升级需要校验本地的文件是否被修改过,系统默认每次检验1千个文件,一般来说需要分四到五页来处理,如下图所示. 如果你的服务器性能太差的话,就需要手工把数值调小.把下面的代码复制出来.进入后台数据库管 ...

  9. 齐博x1模板中常用的TP标签数据处理

    上图是比较常用的, 而下图是比较特殊的场合,比如幻灯片可能会用到 下图使用了TP的循环标签. 上图只使用了条件判断标签 上图不存在 val="xxx" 这个参数,所以会自动循环输出 ...

随机推荐

  1. WPF 实现带蒙版的 MessageBox 消息提示框

    WPF 实现带蒙版的 MessageBox 消息提示框 WPF 实现带蒙版的 MessageBox 消息提示框 作者:WPFDevelopersOrg 原文链接: https://github.com ...

  2. WorkflowAsCode 来了,Apache DolphinScheduler 2.0.2 惊喜发布

    文章目录 前言 01 新功能 1 WorkflowAsCode 2 企业微信告警方式支持群聊消息推送 02 优化 1 简化元数据初始化流程 2 删除补数日期中的"+1"(天) 03 ...

  3. 让 DolphinScheduler 1.3.4 开启 Netty 日志打印,解决流程实例一直在运行中的问题

    关于新一代大数据任务调度 - Apache DolphinScheduler   Apache DolphinScheduler(incubator) 于 17 年在易观数科立项, 19 年 8 月进 ...

  4. 用VS Code搞Qt6:编译附加模块

    上一次水文中,老周所介绍的是编译 Qt 的基础模块-- qtbase.一次性编译所有代码可以一劳永逸,但体积相当大,编译时间较长,CPU负载大发热大,风扇转得猛,电费交得多.因此老周更喜欢分开来编译. ...

  5. java学习第三天常用类.day11

    工具类如何设计,在开发中有两种设计: 工具方法:静态方法的使用 非静态的方法使用: 使用单列模式,为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 保证在整个应用中某一个类有且只有一个实例(一 ...

  6. python包合集-shutil

    一.简介 shutil是 python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查看等方法,还提供了对文件以及目录的路径操作.shutil模块提供了移动 ...

  7. 痞子衡嵌入式:浅析IAR下调试信息输出机制之硬件UART外设

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR下调试信息输出机制之硬件UART外设. 在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我们可以比较容易地 ...

  8. Shell第三章《for循环》

    Shell循环:for 语法结构: for 变量名 [ in 取值列表 ] do 循环体 done 需求:自动创建10个用户 #!/bin/bash read -p "请输入你要创建的用户名 ...

  9. HiveSql调优系列之Hive严格模式,如何合理使用Hive严格模式

    目录 综述 1.严格模式 1.1 参数设置 1.2 查看参数 1.3 严格模式限制内容及对应参数设置 2.实际操作 2.1 分区表查询时必须指定分区 2.2 order by必须指定limit 2.3 ...

  10. DFS算法-求集合的所有子集

    目录 1. 题目来源 2. 普通方法 1. 思路 2. 代码 3. 运行结果 3. DFS算法 1. 概念 2. 解题思路 3. 代码 4. 运行结果 4. 对比 1. 题目来源 牛客网,集合的所有子 ...