可扩展CakePHP登录系统

可扩展CakePHP登录系统,php,cakephp,login,Php,Cakephp,Login,我们决定将CakePHP用于登录系统和前端数据库UI,因为所有automagic都遵守其严格的约定,我知道Codeigniter,使用CI,您可以在system/core/controller.php中扩展系统控制器以处理身份验证 class AdminController extends CI_Controller { protected $user; public function __construct() { parent::__construct(

我们决定将CakePHP用于登录系统和前端数据库UI,因为所有automagic都遵守其严格的约定,我知道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_控制器

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的正确方法,对于实现automagic的可伸缩登录系统,是否有普遍共识/最佳实践


提前感谢

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

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

 class AppController extends Controller
     class CustomAppController extends AppController
         class BikesController extends CustomAppController
实际上,这就是插件的实现,您应该看看这里:

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


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

您考虑过吗?特别是,我在想,而且非常漂亮。并不是说CakePHP也不漂亮……谢谢,我可以从AppController的扩展控制器定义AuthComponent::user()吗?我想在应用程序的特定区域扩展MyController而不是AppController。您应该检查文档,因为它很容易扩展。