1

CakePHP フレームワークを使用して e コマース Web サイトを構築しました。

今、私は管理ログインと注文/ユーザー管理を実装する必要があります...

大きな問題は、新しいアプリ (新しい CakePHP アプリ フォルダー) を作成するか、既存のものを使用する必要があるかということです。

同じフォルダーを使用すると、モデルのコピーに費やす時間が短縮されますが、管理者とユーザーのメソッドを作成する必要があるため、「セキュリティ」が大幅に低下します...

ほぼ同じモデルで個別のフレームワークを使用すると、ビューに役立ちます...別のページテンプレートを使用し、ログインシステムは通常のWebサイトとは異なります。

では、この場合の「最善の」解決策は何ですか?

ありがとう

4

1 に答える 1

4

同じアプリで管理者をビルドします。セキュリティが低下することはありません。Prefix Routingを使用して、管理者ユーザーがアクセスできるコントローラー メソッドを簡単に制御できます。ルート プレフィックスに基づいてビュー レイアウトを変更することもできます。より細かいものが必要な場合、Cake は複雑な権限システムのアクセス制御リストをサポートしています。

最終的に、単一セットのモデルとコントローラーを使用する場合、アプリの保守性が大幅に向上します。

で使用する小さなコード スニペットを次に示しますapp_controller.php。これは CakePHP 1.2 でビルドされたアプリのものであるため、新しいバージョンに合わせて少し更新する必要がある場合があります。これは、登録済みのユーザーが管理 URL にアクセスできることを前提としていますが、これは簡単に変更できます。

function beforeFilter(){
    if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
        if (!$this->Session->check('User')) {
            // save the url in the session so that you can redirect there after login
            $this->Session->write('lastPageVisited', $this->params['url']['url']);
            $this->redirect('/users/login/');
            exit();
        }
        // set the admin layout
        $this->layout = 'admin';
    }
}
于 2012-08-19T18:47:00.100 に答える