代码之家  ›  专栏  ›  技术社区  ›  CodeWhisperer

使用其他类的函数扩展CakePHP的AppController

  •  0
  • CodeWhisperer  · 技术社区  · 8 年前

    我不想通过函数从应用程序根目录中“library”文件夹的另一个类扩展默认的AppController类。

    在这一刻,我可以通过添加 @property 声明高于我的类定义,如下所示。但当我运行应用程序时,它会返回 Call to a member function showTest() on boolean 例外这是因为我没有以那种方式声明名称空间或其他东西吗?

    // Default class inside 'root/src/Controller/'
    /**
    * Class    AppController
    *
    * @property testControl $testControl
    *
    * @package     App\Controller
    */
    class AppController extends Controller
    {
        public function initialize() {
            parent::initialize();
        }
    
        public function beforeFilter(Event $event) : void
        {
           $this->testControl->showTest();
        }
    }
    
    // The class inside folder 'root/library/' 
    class testControl
    {
        public function showTest() {
            die("test");
        }
    }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   drmonkeyninja    8 年前

    您需要创建 testControl 调用方法之前的对象:-

    public function beforeFilter(Event $event) : void
    {
        $testControl = new testControl;
        $testControl->showTest();
    }
    

    您看到的PHP错误是因为您尚未启动对象 $this->testControl 尚未定义。

    您还需要确保告诉PHP在哪里可以找到 测试控制 通过添加 use 语句,或在启动对象时引用命名空间。

    推荐文章