0

ログイン システムとフロントエンド データベース UI に CakePHP を使用することにしました。これは、厳密な規則に従うとすべて自動化されるためです。私は Codeigniter を知っており、CI を使用するとシステム コントローラーを拡張してsystem/core/Controller.php認証を処理できます。

class AdminController extends CI_Controller {

    protected $user;

    public function __construct() {

        parent::__construct();

        $this->load->model('AdminModel');

        $this->user = $this->AdminModel->user()->row();
        $data->user = $this->user;
        $this->load->vars($data);
    }
}

次に、それをアプリケーション コントローラーとして拡張することにより、$userグローバルに使用できるようになり、AdminController は既に CI_Controller を拡張しています。

class Admin extends AdminController {

    public function __construct() {

        parent::__construct();

    }

    function index(){

        //$user is global since it's extending AdminController

        $this->data['user'] = $user->someItem;

        //load view etc..

    }
}

これがCakePHPの正しいアプローチであるかどうかはわかりません.自動魔法を実装するスケーラブルなログインシステムの一般的なコンセンサス/ベストプラクティスはありますか?

前もって感謝します

4

2 に答える 2

1

はい、できます。たとえば、これは機能します:

 class AppController extends Controller
     class CustomAppController extends AppController
         class BikesController extends CustomAppController

実際にはプラグインの実装です。ここを見てください。

http://book.cakephp.org/2.0/en/plugins.html

プラグインでも同じことが起こります。すべてのプラグインには、すべてのプラグイン コントローラーが拡張されるカスタム PluginNameAppController があります。

プロジェクト内の機能が明確に分離されているため、とにかくプラグインを調べるのは興味深いかもしれません.

于 2013-01-13T12:15:56.427 に答える
1

AuthComponent::user()詳細が必要な場所、またはAuthComponent::user('id')特定のフィールドが必要な場所でいつでも使用できます。

于 2013-01-12T07:17:29.080 に答える