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

Php 如何从其他特殊页面调用函数,php,mediawiki,Php,Mediawiki,我的维基上有两个特殊页面: SpecialOne.php SpecialTwo.php 在我的第一个页面(wfSpecialOne())的主函数中,我想使用第二个Specialpage(X(),Y())中的函数。但是调试器说方法是未知的 当(现在)static function X()调用function A()时会出现同样的问题,该函数是SpecialTwo.php 到目前为止我所做的: include_once("SpecialTwo.php"); class SpecialOne ex

我的维基上有两个特殊页面:

SpecialOne.php
SpecialTwo.php
在我的第一个页面(
wfSpecialOne()
)的主函数中,我想使用第二个
Specialpage(X(),Y())
中的函数。但是调试器说方法是未知的

当(现在)
static function X()
调用
function A()
时会出现同样的问题,该函数是
SpecialTwo.php

到目前为止我所做的:

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();
  }
}
我的第一个想法是使所有函数
都是静态的
。但如果是这样,我必须重构每个类中的函数调用,以:

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

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

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

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


您不需要使用
include
和类似的命令。如果您这样做了,您可能没有运行
maintenance/generateLocalAutoload.php

请向我们展示SpecialTwo.php的代码谢谢您的建议。我发现我的“functions”X()和Y()实际上是SpecialTwo的类方法。当我把它们从类块中拉出来时,一切都好了。