代码之家  ›  专栏  ›  技术社区  ›  Chris Dji

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

  •  -1
  • Chris Dji  · 技术社区  · 8 年前

    我有两个特别的页面 维基 :

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

    我的第一个想法是创建所有函数 static 但如果是这样,我必须重构每个类中的函数调用,以:

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

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

    2 回复  |  直到 8 年前
        1
  •  0
  •   Tgr    8 年前

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

    毫无疑问,你永远不需要 include 以及类似的命令。如果你跑了,你可能没有跑 maintenance/generateLocalAutoload.php .

        2
  •  0
  •   enno.void    8 年前

    什么时候是特价。php还扩展了SpecialPage,SpecialOne可以扩展SpecialTwo。