如何从其他特殊页面调用函数
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
.
我的 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
.