基于 tp5.1 的如何简单优雅的书写代码?
关于新手第一次使用 tp,login 模块简单写法,请大家指正哇
#
login 模块 三个方法
login
loginCheck
loginOut
1.login
控制器代码#
public function login()
{
if(Admin::adminUser()){
return redirect('/admin');
}else{
if(Admin::getRemember()){
$data = Admin::getRemember();
return view('login/login',compact('data'));
}
return view('login/login');
}
}
public function loginCheck(Request $request, AdminUser $user)
{
$data = $request->post();
$validate = new LoginCheck();
if (!$validate->check($data)) {
return msg('error', 500, $validate->getError());
}
$result = $user->verify_pwd($data);
return $result;
}
public function loginOut()
{
Admin::loginOut();
return redirect('/')->with('success','退出登录');
}
2.Admin.php 类#
<?php
namespace app\common;
use think\facade\Cookie;
use think\facade\Session;
class Admin
{
//操作验证session、cookie 信息 语义化代码
public static function adminUser()
{
$user = Session::get(config('app.user_info_session'));
return $user;
}
public static function loginOut()
{
Session::delete(config('app.user_info_session'));
return true;
}
public static function remember($data)
{
Cookie::set('admin_user',$data);
}
//记住我
public static function getRemember()
{
$data = Cookie::get('admin_user');
return $data;
}
public static function delRemember()
{
$data = Cookie::delete('admin_user');
return $data;
}
}
3. 瘦控制器 胖模型的思想 模型封装验证方法#
<?php
namespace app\admin\model;
use app\common\Admin;
use think\facade\Session;
use think\Model;
class AdminUser extends Model
{
protected $table = 'admin_users';
public static $password_salt = '';
protected static function generateSalt()
{
$str = 'qwertyuiopasdfghjklzxvcbnm1234567890QWAESRDTFYGUHIJOKPLMNBVCXZ';
$salt = substr(str_shuffle($str), 10, 6);
return $salt;
}
protected static function init()
{
parent::init();
self::$password_salt = self::generateSalt();
}
public function verify_pwd($data)
{
$user = $this->where('username',$data['username'])->where('password',md5($data['password']))->find();
if(!empty($user)){
self::Admin($user);
if($data['remember']=='on'){
Admin::remember($data);
}
return msg('success',200,'登录成功');
}else{
return msg('error',500,'账号或密码不存在');
}
}
public static function Admin($user=null)
{
Session::set(config('app.user_info_session'),$user);
}
}
4. 在 common.php 公共文件下 定义公共函数 如:#
function msg($title,$code=500,$message=''){
$msg = [
'title' => $title,
'code' => $code,
'message' => $message
];
return json_encode($msg);
}
(ps): 谢谢大家 观摩咯
推荐文章: