2014-04-01 122 views
1

我有一個基本的控制器如下在基本控制器,而不是單獨的控制器使用爾康類

<?php 
use Phalcon\Mvc\Controller; 

class ControllerBase extends Controller { 


    public function initialize() { 

    } 

    // wrapper function for debug purposes. 
    public function pr($data = null) { 
     echo '<pre>'; 
     print_r($data); 
     echo '</pre>';  
    } 

} 

和用戶控制器如下

<?php 
use Phalcon\Mvc\Model\Criteria; 
use Phalcon\Paginator\Adapter\Model as Paginator; 
use Phalcon\Mvc\View; 

class UsersController extends ControllerBase { 


    public function initialize() { 
     // initialize parent, here ControllerBase. 
     parent::initialize(); 
    } 

    public function loginAction() { 

     // disable the main layout. 
     $this->view->disableLevel(View::LEVEL_MAIN_LAYOUT); 
     // disable the controller layout. 
     $this->view->disableLevel(View::LEVEL_LAYOUT); 
    } 
     . 
     . 
     . 
     . 
     other functions... 


} 

我想知道如果我可以打電話給所有的在基礎控制器中需要phalcon類,然後擴展到所有的子類,這樣我就不需要在每個控制器上分別調用它們。

。換句話說,我可以添加下面的代碼

use Phalcon\Mvc\Model\Criteria; 
use Phalcon\Paginator\Adapter\Model as Paginator; 
use Phalcon\Mvc\View; 

僅在基本控制器和存取權限它們的其它控制器。我試圖把他們的基地控制器,但它給了錯誤:未找到類。

這是正確的方法還是在我的方法有問題...請幫助。

回答

1

如果我正確理解你的問題,答案是否定的。

Namespaces是語言功能,並以此方式工作。 use Phalcon\Mvc\Model\Criteria只聲明您將使用Phalcon\Mvc\Model\命名空間中的Criteria類。因此,在您的代碼中,您可以編寫new Criteria()來創建對象,而不是使用其全名new \Phalcon\Mvc\Model\Criteria()

您必須在實例化該類的對象的每個文件中聲明每個類,以便autoloader知道給定類存在於哪個文件中。

+0

謝謝你的澄清和鏈接,這是非常有益的....我會這樣做... .... –

相關問題