美文网首页
基于Laravel5.5 的小程序开发

基于Laravel5.5 的小程序开发

作者: 莫要迷失 | 来源:发表于2018-03-28 14:49 被阅读0次

部分页面效果展示

image.png image.png image.png image.png image.png image.png

.....

为了让团队开发更加顺利,这里对一些基础功能统一做了封装,让大家直接使用。避免重复开发、提高效率,也是做了一个统一规范。

公共部分

指所有模块,包含后台,前台、api等

1、数据model

统一放在 app目录下的Models文件夹中

1、逻辑logic

统一放在 app目录下的Logics文件夹中


Api部分

1、封装返回的统一消息

返回的自定义消息,和错误消息,封装了一个Trait,用来做基本的返回,如下

namespace App\Api\Helpers\Api;
use Symfony\Component\HttpFoundation\Response as FoundationResponse;
use Response;

trait ApiResponse
{
    /**
     * @var int
     */
    protected $statusCode = FoundationResponse::HTTP_OK;

    /**
     * @return mixed
     */
    public function getStatusCode()
    {
        return $this->statusCode;
    }

    /**
     * @param $statusCode
     * @return $this
     */
    public function setStatusCode($statusCode)
    {

        $this->statusCode = $statusCode;
        return $this;
    }

    /**
     * @param $data
     * @param array $header
     * @return mixed
     */
    public function respond($data, $header = [])
    {

        return Response::json($data,$this->getStatusCode(),$header);
    }

    /**
     * @param $status
     * @param array $data
     * @param null $code
     * @return mixed
     */
    public function status($status, array $data, $code = null){

        if ($code){
            $this->setStatusCode($code);
        }

        $status = [
            'status' => $status,
            'code' => $this->statusCode
        ];

        $data = array_merge($status,$data);
        return $this->respond($data);

    }

    /**
     * @param $message
     * @param int $code
     * @param string $status
     * @return mixed
     */
    public function failed($message, $code = FoundationResponse::HTTP_BAD_REQUEST, $status = 'error'){

        return $this->setStatusCode($code)->message($message,$status);
    }

    /**
     * @param $message
     * @param string $status
     * @return mixed
     */
    public function message($message, $status = "success"){

        return $this->status($status,[
            'message' => $message
        ]);
    }

    /**
     * @param string $message
     * @return mixed
     */
    public function internalError($message = "Internal Error!"){

        return $this->failed($message,FoundationResponse::HTTP_INTERNAL_SERVER_ERROR);
    }

    /**
     * @param string $message
     * @return mixed
     */
    public function created($message = "created")
    {
        return $this->setStatusCode(FoundationResponse::HTTP_CREATED)
            ->message($message);

    }

    /**
     * @param $data
     * @param string $status
     * @return mixed
     */
    public function success($data, $status = "success"){

        return $this->status($status,compact('data'));
    }

    /**
     * @param string $message
     * @return mixed
     */
    public function notFond($message = 'Not Fond!')
    {
        return $this->failed($message,Foundationresponse::HTTP_NOT_FOUND);
    }

}

然后创建一个ApiController,通过所有的Api控制器继承该控制器,实现简洁的Api返回 ApiController代码:

<?php

namespace App\Http\Controllers\Api;

use App\Api\Helpers\Api\ApiResponse;
use App\Http\Controllers\Controller;

class ApiController extends Controller
{

    use ApiResponse;

    // 其他通用的Api帮助函数

}

然后,大家的Api控制器就可以简洁的返回

<?php

namespace App\Http\Controllers\Api;

class IndexController extends ApiController
{
    public function index(){

        return $this->message('请求成功');
    }
}

2、使用资源类型的返回

资源返回通过5.5的新特性,API资源实现,具体参见 https://d.laravel-china.org/docs/5.5/eloquent-resources

比如返回用户的分页数据,只需要这样

其他功能看上面链接的文档

<?php

namespace App\Http\Controllers\Api;
use App\Models\User;
use App\Http\Resources\User as UserCollection;
use Illuminate\Support\Facades\Input;

class IndexController extends ApiController
{
    public function index(){

        return UserCollection::collection(User::paginate(Input::get('limit') ?: 20));

    }
}

未完待续.....

github地址 https://github.com/sqc157400661/paperShop

相关文章

  • 基于Laravel5.5 的小程序开发

    部分页面效果展示 ..... 为了让团队开发更加顺利,这里对一些基础功能统一做了封装,让大家直接使用。避免重复开发...

  • Touch WX

    TouchWX 使用TouchWX开发小程序,需要学习@小程序文档。TouchWX是基于小程序组件机制开发的,所以...

  • 无标题文章

    wepy 基于vue语法的小程序开发框架

  • 小程序直播功能开发流程

    微信小程序开发需要基于微信提供的开发者工具与 SDK。如果开发者对小程序开发流程不熟悉,建议先系统学习:微信小程序...

  • 关于JSCore/WebView的几点笔记

    微信小程序基于JSCore+WebView开发,界面渲染和JS逻辑完全分离。小程序也是可以只基于WebView来实...

  • 今天来谈谈小程序分销和其他分销的本质区别!!1

    微信小程序分销系统是什么?微信小程序分销系统是基于小程序开发的一种微信分销系统,无需开发APP,操作比较便捷,通过...

  • 资讯微信小程序分销商城的特点

    如今微信小程序的到来,给用户带来了很多便利。其中小程序分销商城是基于小程序开发的微信分销,无需开发APP,操作便捷...

  • 用Laravel简单快速实现API开发

    开发环境 laravel5.5 laravel5.5 已经引入了独立的无状态路由文件 api.php 作为 api...

  • 潍坊小程序开发

    潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍...

  • 潍坊商城小程序开发制作

    潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍坊小程序开发潍...

网友评论

      本文标题:基于Laravel5.5 的小程序开发

      本文链接:https://www.haomeiwen.com/subject/fggycftx.html