可扩展的CakePHP登录系统

时间:2013-01-12 07:14:02

标签: php cakephp login

我们已经决定将CakePHP用于登录系统和前端数据库UI,因为在遵守严格的约定时所有的自动化,我知道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的正确方法,对于可自动化的可扩展登录系统是否存在普遍共识/最佳实践?

提前致谢

2 个答案:

答案 0 :(得分:1)

您只需在需要详细信息的地方使用AuthComponent::user(),或在需要特定字段的地方使用AuthComponent::user('id')

答案 1 :(得分:1)

是的,你可以这样做。例如,这将起作用:

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

实际上这是插件的实现,你应该看看这里:

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

插件中也会发生同样的事情,每个插件都有一个自定义PluginNameAppController,所有插件控制器都会扩展。

无论如何看看插件可能会很有趣,因为项目中的功能明显分离。

相关问题