aratta-studios / aratta-laravel-boilerplate
一个为 Laravel 设计的样板,旨在使用 Laravel 作为后端,Vue 作为前端,并包含一些改进。
Requires
- php: ^7.1.3
- fideloper/proxy: ^4.0
- intervention/image: ^2.4
- laravel/framework: 5.8.*
- laravel/tinker: ^1.0
- tymon/jwt-auth: ^1.0
Requires (Dev)
- beyondcode/laravel-dump-server: ^1.0
- filp/whoops: ^2.0
- fzaninotto/faker: ^1.4
- krlove/eloquent-model-generator: ^1.3
- mockery/mockery: ^1.0
- nunomaduro/collision: ^3.0
- phpunit/phpunit: ^7.5
- dev-master
- 0.0.3
- 0.0.2
- 0.0.1
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/qs-and-express-6.11.0
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/loader-utils-1.4.2
- dev-dependabot/npm_and_yarn/moment-timezone-0.5.37
- dev-dependabot/npm_and_yarn/moment-2.29.4
- dev-dependabot/npm_and_yarn/eventsource-1.1.1
- dev-dependabot/composer/guzzlehttp/psr7-1.8.5
- dev-dependabot/composer/symfony/http-kernel-4.4.39
- dev-dependabot/npm_and_yarn/url-parse-1.5.10
- dev-dependabot/npm_and_yarn/ajv-6.12.6
- dev-dependabot/npm_and_yarn/axios-0.21.1
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/dns-packet-1.3.4
- dev-dependabot/npm_and_yarn/browserslist-4.16.6
- dev-dependabot/npm_and_yarn/lodash-4.17.21
- dev-dependabot/npm_and_yarn/ssri-6.0.2
- dev-dependabot/npm_and_yarn/y18n-4.0.1
- dev-dependabot/npm_and_yarn/elliptic-6.5.4
- dev-dependabot/npm_and_yarn/acorn-6.4.1
- dev-dependabot/npm_and_yarn/mixin-deep-1.3.2
This package is not auto-updated.
Last update: 2024-09-24 20:30:00 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 的默认示例路由
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);