php TP5实战云同桌小程序


前言

参加腾讯小程序比赛,和工作室前端小伙伴一起组队完成了这个云同桌小程序。本人负责该项目后端,主要使用PHP的thinkphp5框架来完成,数据库使用mysql;将码云连接放到文末,相关代码在application下的ygq文件中。


一、TP5是什么?

ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,为WEB应用和API开发提供了强有力的支持。作为php开发者必学的一个框架。

二、使用

1.mvc思想

主要遵循mvc思想主要遵循mvc思想,controller层主要负责view层传来的请求,正真对数据库进行操作的是model层,由于逻辑相对复杂,因此引入TP5框架自带的验证器也就是逻辑层,用于数据的校验与判断。可以实现每层代码量相对减少,逻辑清晰易懂。

控制层代码如下(示例):

<?php
namespace app\ygq\controller;
use think\Controller;
use app\ygq\model\User as UserModel;
use app\ygq\model\Sign as SignModel;
use think\Request;
use think\Session;
//个人信息
class User extends Controller{
	//展示个人信息
	public function index(){
		$user = UserModel::get(Session::get('user_id'));
		$sign = SignModel::all(['uid'=>Session::get('user_id')]);
		$user['sign'] = $sign;
		return json($user);
	}
	//用户数据获取(头像和昵称)
	public function addUser(){
		$data = input('post.');
		$ret  = UserModel::getByName($data['name']);
		if($ret){
			//return'用户已经注册';
			Session::set('user_id',$ret['id']);
			return json(['success'=>'登录成功'],200);
		}else{
			//return '用户还没注册';
			$user    = new UserModel;
			$request = Request::instance();
			$file    = $request->file('image');
			$info    = $file->rule('date')->move(ROOT_PATH.'public'.DS.'uploads');
			$data['image'] = $info->getRealPath();
			if($user->allowField(true)->save($data)){
				Session::set('user_id',$ret['id']);
            	return json(['success'=>'登录成功'],200);
        	}else{
            	return json(['error'=>'登录失败'],404);
        	}
		}
	}
	//个人介绍更新和添加
	public function addIntor(){
		$id   = Session::get('user_id');
        $data = input('post.');
		if(strlen($data['introduce']) > 100){
			return json(['error'=>'字数超出规定'],404);
		}
        if(UserModel::update($data,['id'=>$id])){
            return json(['success'=>'介绍添加成功'],200);
        }else{
            return json(['error'=>'介绍添加失败'],404);
        }
	}
	//每点一个标签就调用一次这个方法
	public function addSign(){
		$uid = Session::get('user_id');
		$ret = SignModel::where('uid','=',$uid)->select();
		if(count($ret) >= 4){
			return json(['error'=>'标签最多选4个'],404);
		}
        $data = input('post.');
        $data['uid'] = $uid;
        if(SignModel::create($data)){
            return json(['success'=>'标签添加成功'],200);
        }else{
            return json(['error'=>'标签添加失败'],404);
        }
	}
	//标签删除
	public function delSign($id){
        if(SignModel::destroy($id)){
            return json(['success'=>'记录删除成功'],200);
        }else{
            return json(['error'=>'记录删除失败'],404);
        }
	}
}

2.感受

thinkphp框架使用起来并不困难,对于初学者第一次接触框架的同学来说,还是比较友好,主要体现在易安装,开发web应用简单明了,教学资料丰富上,网上第三方库也成熟,便于引用。至于运用程度,自然是熟能生巧。不过也有一些缺点,个人感觉对比起golang的beego、gin框架,代码不够简练,有点复杂,个人更喜欢beego一些。

总结

php属于弱类型语言,相比起其他语言来说还是比较简单的,个人感觉php更适于轻量级web开发,开发速度快,php学习上手快,php基础不会太难。但php可能遇到高并发的时候会陷入瓶颈,难以突破。最后将代码连接放出来。

码云代码连接地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值