フロントエンド アプリケーションと管理者を単純に 2 つの別個のアプリケーション (/app
と/admin
) に分離することをお勧めします。admin は単純なフロントエンド アプリケーションであり、データベースですべての「汚い」作業を行うものと考えてください。
そうすることで、URL の /admin プレフィックスを使用して管理者にアクセスするか、DocumentRoot を /admin/webroot に設定し、サブドメイン (つまり、admin.myapp.com) を使用して管理者にアクセスできます。
モデル コードの重複を避けるために、モデルを共有フォルダー (つまり/vendors/core/models
) に配置し、このパスをbootstrap.php
ファイル内のモデル パスに追加することができます ( App::build('models' => array(VENDORS . 'core/models/'))
CakePHP 1.3 の場合$modelPaths = array(VENDORS . 'core/models/')
、CakePHP 1.2 の場合)。
管理者またはアプリ固有のものをモデルに追加するには、コア モデルをロードして拡張することにより、/models でコア モデルを拡張できます。
App::import('Model', 'CoreModelName');
class CustomCoreModelA extends CoreModelA
{
function specificMethod() {}
}
これは、共有コンポーネント、動作などに対して行うことができます。