0

現在、このチュートリアルに基づいて、同じサーバー上の多くのサイト間でKohana::Coreを共有しています。さらに一歩進んで、構成とコンテンツを除くすべて(コントローラー、ビュー、モデル)を共有したいと思います。出来ますか?各サイトのテーブルを区別するために、データベース構成の「table_prefix」フィールドを使用しています。URLパラメータに基づいてデータベース構成を動的にロードしたいのですが、うまくいくはずです。

ルートを次のように変更することを考えていました。

 Route::set('default', '(<site>(/<controller>(/<action>(/<parametr>)))))')
        ->defaults(array(
                   'controller' => 'mainpage',
                   'action' => 'index',
                   ));

しかし、現在、適切な構成をどこでどのようにチェックしてロードする必要があるのか​​わかりません。

4

2 に答える 2

0

これを行うにはいくつかの方法がありますが、

一方通行:

Controller_Base クラスを構築し、メソッド before() を配置します。

このメソッドでは<site>、 use でパラメータを 取得します$this->request->param('site')

これで<site>、各サイトの構成名を<site>

今、すべてのコントローラーでController_Base put before() メソッドを拡張し、このメソッドでparent::before()を使用する必要があります

私があなたを助けたことを願っています

于 2013-02-05T09:54:09.887 に答える
0

私は最善かつ最もエレガントなソリューションを見つけました。アプリケーションを modules ディレクトリに移動しました。かなり簡単でした。ルーティング以外をすべて削除して、bootstrap.php を init.php に変更する必要がありました。標準のマルチサイト構成で、すべてのコントローラー、モデル、およびビューを何度も使用できるようになりました。

于 2013-02-05T10:13:24.233 に答える