1

当社のウェブサイトは次のように機能します。

  • 誰もが登録、情報の変更、「名刺」の管理を行える中央サイトwww.example.orgがあります。
  • また、誰もがcompanyname.example.orgを持っています。ここでは、ユーザーはメインサイトで変更した情報に基づいて簡単なサイトを公開できます。

このサイトはCakePHP上に構築されています。私はこれのための良いセットアップが何であるか疑問に思っています。グーグルを行った後、再利用するためにコントローラーとモデル用に別々のディレクトリーを作成するのが一般的であるように見えますが、この場合、ルートとビューを除くすべてのコードを実際に共有したいと思います。

ドメイン名に基づいてルートを変更することは可能ですか?これは、CakePHPにとって「適切」と見なされますか。仕事を「行う」解決策ではなく、ベストプラクティスを見つけたいと思います。

ありがとう!

4

3 に答える 3

1

このチュートリアルを使用して解決

于 2009-11-25T09:52:05.727 に答える
1

頭の中で、CakePHPのルーティングエンジンにはドメインの概念がないため、理論的には、Apacherewriteを使用して/company1 / post/1などのルートをcompany1.example.com/post/1にマップすることができます。

/ en / blog、/ es / blogなどの多言語サイトを作成するために以前に使用したので、ルートでのプレフィックスは可能です。したがって、ルートで会社名をプレフィックスする場合にすぎません。

于 2009-11-27T16:30:46.033 に答える
1

あなたが探しているのはthemesです。

CakePHP 1.3にはそれがうまく実装されていますが、1.2はほぼ同じように機能します。

AppControllerで、これらの行に沿って何かを追加して、ホストに基づいて別のテーマをロードする必要があります。

$mapThemes = array('company.example.com' => 'theme-1', 'store.example.com' => 'theme-shopping');
$this->theme = $mapThemes[env('SERVER_NAME')];

もちろん、可能性は無限大です。すべてのユーザーに複数のテーマを定義させるなどして、データベースからロードできます$mapThemes。しかし、それが一般的な考え方であり、Cakeのやり方だと私は信じています。

于 2009-11-28T06:49:15.500 に答える