0

私は持っています:

// administration
app/controller/admin/ProjectsController.php

そして私も使いたい:

// public in website
app/controller/ProjectsController.php

しかし、autoload_classmap.php では、次のように登録されています。

'ProjectsController' => 'app/controller/admin/ProjectsController'

では、パブリック ビュー用にもう 1 つ「ProjectsController」が必要な場合は、どうすればよいですか?
何が良いですか?2 つのコントローラー (管理者とパブリック)、または 1 つ (ハイブリッド)。

ありがとう。

4

1 に答える 1

3

Admin コントローラの名前を変更する必要があります。

そうすれば、PSR と一致し、オートローダーはそれらを別の方法で処理します。

namespace Admin;

管理ファイルの上部にあります。

編集:

すべてのコントローラーとモデルに名前空間を設定する価値さえあるかもしれません。

だからあなたのためProjectControllerapp\controllersあなたは置くことができます

namespace ProjectName

次に、サブフォルダー内のすべてに対して、たとえばapp\controllers\admin

namespace ProjectName\Admin

他のフォルダやファイルについても同様です。

これにより、コードが他のものと衝突する可能性が低くなります。

編集: 編集:

クラスの名前空間を設定したら、名前空間の外にあるクラスと関数を参照する必要があります。たとえば、Controller はグローバル名前空間に属しているため、Controller の先頭に \ を置きます。

ここのドキュメントは大いに役立つはずです。PHP 名前空間

于 2013-01-24T10:24:32.407 に答える