可扩展CakePHP登录系统
我们决定将CakePHP用于登录系统和前端数据库UI,因为所有automagic都遵守其严格的约定,我知道Codeigniter,使用CI,您可以在可扩展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(
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。您应该检查文档,因为它很容易扩展。