如何从其他专页调用功能

时间:2017-01-25 14:14:37

标签: php mediawiki

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

SpecialOne.php
SpecialTwo.php

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

(现在)static function X()调用function A() <{1}} 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();
  }
}

我的第一个想法是完成所有功能static。但如果是这样的话,我必须将每个类中的函数调用重构为:

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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