首页 > 代码库 > Interface接口的设置是由其他模块决定的
Interface接口的设置是由其他模块决定的
描述:我写了个登陆器 无非就是登陆和注册这2个功能,当然还有一个验证码功能
根据职责性,我登陆器不涉及任何用户有关操作。
但我需要规定用户模型必须有以下几个功能,我登陆器才能使用,登陆、注册、根据名字获取用户的个人信息。
所以我设置如下
<?php interface IMember { /** * 根据用户名获取用户信息 用户名不指定可以是邮箱、昵称或者手机号码 * @param String $username */ public function getOneMemberByUsername($username); /** * 登陆检测 */ public function login($user); /** * 新增用户 */ public function register($user); }
有了这个规定之后,我的登陆器就可以写了
<?php /** * WCMS 登陆器 只跟用户有关注册、登陆有关 其他无关 判断有无登陆 可以设置cookie * 描述 调用了MemberService指定接口 login register getOneMemberByUsername * @author wolf * @since 2014-08-02 * @version 第4次简化 * */ class AnonymousController extends Action { const COOKIENAME = ‘user‘; /** * 管理员登录口 */ public function admin() { if (isset ( $_COOKIE [COOKIENAME] )) { $userInfo = self::getMemberService ()->getOneMemberByUsername ( $_COOKIE [COOKIENAME] ); $this->view ()->assign ( ‘user‘, $userInfo ); $this->view ()->assign ( "userinfo", $userInfo ); } $this->view ()->display ( ‘file:anonymous/login.tpl‘ ); } /** * 用户注册 接口 调用用户服务 * 只检测提交的字段是否合法 * @todo 默认用户组未添加 */ public function register() { $group = self::getMemberService ()->getMemberGroup (); $this->view ()->assign ( "group", $group ); $this->view ()->display ( ‘mysql:register.tpl‘ ); } /** * 用户提交注册 */ public function setRegister() { $rs = self::getMemberService ()->register ( $_POST ); $this->sendNotice ( $rs, null, false ); } /** * 普通会员登录 */ public function login() { //导入推荐用户 $this->loginExtend (); if (isset ( $_COOKIE [COOKIENAME] )) { $userInfo = self::getMemberService ()->getOneMemberByUsername ( $_COOKIE [COOKIENAME] ); $this->view ()->assign ( ‘user‘, $userInfo ); $this->view ()->assign ( "userinfo", $userInfo ); } $this->view ()->display ( ‘mysql:login.tpl‘ ); } /** * 登录扩展信息 DIY */ private function loginExtend() { $userface = self::getMemberService ()->getRandFace ( 12 ); $this->view ()->assign ( ‘face‘, $userface ); } /** * 生成验证码 */ public function captcha() { require ‘Captcha.php‘; //确保每次都能取到新值 unset ( $_SESSION [‘authum_session‘] ); // 实例化一个对象 $_vc = new Captcha (); $_vc->doimg (); $_SESSION [‘authnum_session‘] = $_vc->getCode (); } /** * 登录验证 */ public function setLogin() { $rs = self::getMemberService ()->login ( $_POST ); //登陆成功 默认记录8个小时 if ($rs == SUCCESS) { setcookie ( COOKIENAME, $_POST [‘username‘], time () + 3600 * 10, "/" ); } $this->sendNotice ( $rs, null, false ); } /** * 退出登录 同步登录 */ public function signout() { setcookie ( COOKIENAME, "", - 86400, "/" ); $this->redirect ( "退出成功!", ‘/anonymous/login‘ ); } /** * 获取用户服务类 */ public static function getMemberService() { return new MemberService (); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。