esperlos/laravel_esperlos_boilerplate

为 Laravel 设计的样板代码,旨在将 Laravel 作为后端,Vue 作为前端,并包含一些改进。


README

Laravel Esperlos 样板代码

+ CedarMapHelper 用于处理 cedar 地图 API

+ FirebaseHelper 用于处理 Firebase API

+ JalaliDateHelper, NumbersHelper 用于处理波斯日期和数字

+ SmsPanelHelper 用于处理短信面板 API

+ UploadHelper 用于处理文件和图像上传

+ ResponseHelper, InputHelper 用于更方便地使用更好的模式处理 API

+ ControllerGenerator 用于生成遵循我们模式的控制器

+ 默认设置 vue, vuex, vue router, vuetify 以及其他 Vue 必备包

+ 对 Helper 进行了一些其他定制,以方便使用

+ 新的 Model/Controller/Vue 文件示例

设置

composer create-project --prefer-dist esperlos/laravel_esperlos_boilerplate ProjectName
cd ProjectName
npm install

然后您可以设置数据库配置、设置迁移等...

生成控制器

此命令将在 app/http/controller/api/ 文件夹中生成一个控制器

php ControllerGenerator.php --name=ControllerName

运行

php artisan serve
npm run watch

示例路由

Vue 的默认示例路由

https://:8000/

API 的默认示例路由

https://:8000/api/v1/example/create-example-user

主体

{
	"field_one":"Hello",
	"field_two":"Word"
}

https://:8000/api/v1/example/edit-example-profile

主体

{
	"api_token":"FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
		"field_one":"Hello",
	"field_two":"Sajjad"

}

https://:8000/api/v1/example/get-example

主体

{
	"api_token":"FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
		"field_one":"Hello",
	"field_two":"Sajjad"

}

https://:8000/api/v1/example/get-examples-list

主体

{
	"api_token":"FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
	"offset":"0"
}

InputHelper

此 Helper 用于检查用户的有效输入

-第一个参数是您从控制器函数接收的请求。

-第二个参数是要检查的请求参数数组。

-最后一个参数是带有 Response 参数的回调函数,当检查通过时将调用此函数。

导入

use App\Http\Helpers\InputHelper;

使用

InputHelper::inputChecker(
    $request,
    [
        $request->field_one,
        $request->field_two,
        // All fields that you need to check
    ],
    function (Request $request) {
        // Input is correct do something
    }
);

如果您不需要检查任何字段

InputHelper::inputChecker(
    $request,
    null,
    function (Request $request) {
        // Do something
    }
);

ResponseHelper

此 Helper 帮助您为所有 API 提供集成的 JSON 响应

-第一个参数是错误消息,如果您没有错误,可以将其设置为 null 值。

-第二个参数是 HTTP 响应代码。

-最后一个参数是要发送给用户的 数据。它可以是数组、对象,甚至是字符串。

导入

use App\Http\Helpers\ResponseHelper;

使用

ResponseHelper::jsonResponse(null, Response::HTTP_OK, config('messages.success'))->send();

示例输出

{
    "errors": null,
    "status": 200,
    "data": [
        {
            "id": 2,
            "api_token": "FeDsHsoDjJZXd2gxl7c80WxYjobMB0ptzP3FZn5cU2wq4KIR21Y4qtssGoPx",
            "field_one": "Hello",
            "field_two": "Word",
            "created_at": "2019-05-31 12:25:11",
            "updated_at": "2019-05-31 12:25:11"
        },
        {
            "id": 1,
            "api_token": "FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
            "field_one": "Hello",
            "field_two": "Sajjad",
            "created_at": "2019-05-31 12:24:43",
            "updated_at": "2019-05-31 12:43:58"
        }
    ]
}

CedarMapHelper

导入

use App\Http\Helpers\CedarMapHelper;

使用

$directionsData = CedarMapHelper::getDirectionsData(
    (object) ['latitude' => $request->get('start_lat'), 'longitude' => $request->get('start_lng')],
    (object) ['latitude' => $request->get('end_lat'), 'longitude' => $request->get('end_lng')]
);

FirebaseHelper

导入

use App\Http\Helpers\FirebaseHelper;

使用

FirebaseHelper::sendFcmNotificationMessage($pushTokenArray, $data, 'Text');

SmsPanelHelper

导入

use App\Http\Helpers\SmsPanelHelper;

使用

SmsPanelHelper::sendSms($phoneNumber), $tempCode);