普通网友 2017-01-25 14:14
浏览 29
已采纳

如何从其他专题页面调用功能

I have 2 Special Pages on my wiki:

SpecialOne.php
SpecialTwo.php

In the main function of my first page (wfSpecialOne()) i want to use functions from my 2nd Specialpage (X(), Y()). But debugger says the method is unknown.

The same issue when the (now) static function X() calls function A() which is part of SpecialTwo.php

What i did so far:

include_once("SpecialTwo.php");

class SpecialOne extends SpecialPage {
  public function __construct() {
      parent::__construct( 'One' );
  }
  public function execute( $sub ) {
      $out = $this->getOutput();
      $this->wfSpecialOne();
  }

  function wfSpeicalOne(){
    $var1 = X();
    $var2 = Y();
  }
}

My first thought was to make all the functions static. But if so I'd have to refactor the function calls in each class to:

SpecialTwo::X();
SpecialTwo::Y():

Isn't there a better way? or did i miss something?

  • 写回答

2条回答 默认 最新

  • dpq59734 2017-01-25 19:11
    关注

    You should refactor your code in such a way that anything that's needed by multiple special pages is in some sort of utility class. Special pages should not reference each other (I won't say it never happens but it's an antipattern).

    Unrelatedly, you should never need include and similar commands. If you do, you probably did not run maintenance/generateLocalAutoload.php.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100