如何从其他特殊页面调用函数

How to call function from an other Specialpage

我的 wiki 上有 2 个特殊页面:

SpecialOne.php
SpecialTwo.php

在第一页 (wfSpecialOne()) 的主要功能中,我想使用第二页 Specialpage (X(), Y()) 中的功能。但是调试器说 方法未知

当(现在)static function X() 调用属于 SpecialTwo.php

function A() 时出现同样的问题

到目前为止我做了什么:

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();
  }
}

我第一个想到的是把所有的功能都搞定static。但如果是这样,我必须将每个 class 中的函数调用重构为:

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

有没有更好的办法?还是我错过了什么?

当SpecialTwo.php也扩展SpecialPage时,SpecialOne可以扩展SpecialTwo。

您应该重构您的代码,使多个特殊页面所需的任何东西都在某种实用程序中 class。特殊页面不应相互引用(我不会说它永远不会发生,但它是一种反模式)。

与此无关,您永远不需要 include 和类似的命令。如果你这样做,你可能没有 运行 maintenance/generateLocalAutoload.php.