aratta-studios/aratta-laravel-boilerplate

一个为 Laravel 设计的样板,旨在使用 Laravel 作为后端,Vue 作为前端,并包含一些改进。

0.0.3 2019-06-23 17:54 UTC

README

Aratta Laravel Boilerplate

+ CedarMapHelper 用于处理 cedar map API

+ FirebaseHelper 用于处理 Firebase API

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

+ SmsPanelHelper 用于处理短信面板 API

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

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

+ ControllerGenerator 用于生成符合我们模式的控制器

+ Vue Generators 用于生成符合我们模式的 Vue 页面 / 存储 / 组件

+ 默认设置 vue, vuex, vue router, vuetify 和其他 Vue 必要包

+ 为更方便使用 Helper 做了一些其他定制

+ 新的模型/控制器/Vue 文件示例

+ Jwt 已准备好(可能需要从这个链接配置一些设置:https://jwt-auth.readthedocs.io/en/develop/

+ 基于 Data/Domain/Ui 的文件夹结构和 Vue 样板

安装器设置

设置此安装器以创建项目更轻松

composer global require aratta-studios/aratta-laravel

设置

使用我们的安装器创建项目

aratta-laravel projectName

或使用 composer

composer create-project --prefer-dist aratta-studios/aratta-laravel-boilerplate ProjectName
cd ProjectName
npm install
php artisan jwt:secret

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

生成控制器

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

php ControllerGenerator.php --name=ControllerName

生成 Vue 页面和 Store

此命令将在 resources/js/ui/pages/ 文件夹中生成一个 Vue 页面

并在 resources/js/store/ 文件夹中生成一个相关的 Vuex 存储

使用相同的名称,然后在 store/index.js 中添加创建的存储模块

php VuePageGenerator.php --name=pageName

生成 Vue 组件

此命令将在 resources/js/ui/components/ 文件夹中生成一个组件

php VuePageGenerator.php --name=componentName

运行

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

此辅助器检查用户的有效输入

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

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

-最后一个参数是一个回调函数,带有 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

此辅助器帮助您为所有 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);