我们已经决定将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的正确方法,对于可自动化的可扩展登录系统是否存在普遍共识/最佳实践?
提前致谢
答案 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,所有插件控制器都会扩展。
无论如何看看插件可能会很有趣,因为项目中的功能明显分离。