2016-04-12 26 views
2

私はMulti module applicationでPhalcon PHPを使用しています。私は私のプロジェクトで名前空間を使用していますが、私はこれらの名前空間を使う何かを探しています。Phalcon PHPマルチモジュール名前空間の定義

たとえば、私のビューフォルダではモデルフォルダを使用していますが、コントローラではモデルフォルダも使用しています。しかし、私はPhalcon findやfindFirstを行うためにたくさんのクラスモデルを使用しています。そして、私は、この複数のアプリケーションが動作するために見られるよりも唯一の方法は、それがこのようなクラスをインポートするために使用される名前空間を定義します:

use Apps\Common\Models\Users; 
use Apps\Common\Models\Customers; 
use Apps\Common\Models\Agents; 
... 

そして、私は私のアプリの中で、このような50個のモデルを持っている...私は「ドン私のすべてのコントローラとすべてのビューでそれらを定義して、動作させる必要があります。

解決策はありますか?

ありがとうございました。

答えて

1

私が正しく理解している場合、あなたはあなたのコントローラファイルの一番上に名前空間宣言を省略することができます。

use Models\News; 

class NewsController extends BaseController 
{ 
    public function indexAction() 
    { 
     // With Use above 
     $obj = new News(); 

     // Without Use above (full namespace path) 
     $obj = new \Models\News(); 
    } 
} 
+0

私は、各コントローラに10のモデルを使用した場合、私は10 use'x '各コントローラの上に置く必要があります?そして、私の見解では私もこれをしなければなりません:(これは '$ obj = new \ Models \ News();' – John

+0

の2つのオプションのうち1つを選択する必要があります。名前空間の考え方は避けられません:) –

+0

ありがとうございました。そして、これはマルチモジュールアプリケーションで名前空間の方法を使用することはできませんか? phalconの1つのアプリケーションで私はnamesaceを使用しないので、私はregisterClassesとregisterDirを使用しています。ここは可能ですか? – John

関連する問題