rygilles/laravel-api-boilerplate

此包已被弃用且不再维护。未建议替代包。

Laravel API Boilerplate 项目。


README

StyleCI Build Status

这是一个基于 Laravel Laravel 5.* 的项目。

先决条件

设置

运行此命令,并确保正确设置 storage 和 cache 文件夹的权限。

composer create-project --prefer-dist rygilles/laravel-api-boilerplate your-project-name

或者通过 git 克隆手动安装此项目。在这种情况下,您必须将 .env.example 文件复制到 .env 并运行此命令

php artisan key:generate

.env 文件

检查 .env 文件并根据您的喜好更改值。

此项目使用与 Laravel 公共项目相同的库。

但也(详细信息请查看 composer.jsonpackage.json 文件)

生产环境

PHP,使用 composer

后台,Node.js 依赖项

  • laravel-echo : Laravel Echo是一个JavaScript库,使订阅频道和监听Laravel广播的事件变得轻松。
  • socket.io-client : 与Laravel Echo一起使用的实时应用程序框架(客户端)。

开发环境

  • nikic/php-parser : PHP解析器(与php artisan app:makeApiModelResource命令一起使用)。
  • twig/twig : Twig模板渲染(与php artisan app:makeApiModelResource命令一起使用)。
  • barryvdh/laravel-ide-helper包 : 用于生成Laravel定义(PhpDoc)的php文件的工具。在您的IDE中添加自动完成功能。

后台,Node.js依赖项

Vue.js

  • vue : 后台UI的Vue.js JavaScript框架。
  • vuex : Vue.js的集中式状态管理。
  • vue-router : Vue.js的官方路由。
  • vue-i18n : Vue.js中的翻译管理。
  • vue-gravatar : Vue.js的简单Gravatar组件。

图形

Laravel

  • laravel-mix : 适用于80%用例的Webpack优雅包装器。
  • cross-env : 环境脚本的跨平台设置。

杂项

  • jquery : 与AdminLTE一起使用。
  • axios : 身份验证和API请求。
  • pace : 动态加载栏(屏幕顶部)。
  • lodash : 与Vue.js一起使用的JavaScript实用库。
  • moment : 日期格式化。

数据库

此应用程序使用InnoDB表以支持外键约束,并使用utf8mb4_unicode_ci编码以支持现代字符(包括emoji)。它还使用UUID(128位)。

初始化

运行此命令以创建数据库基本设置,包括默认迁移(请检查database/migrations目录)。

确保Redis已正确安装。

php artisan app:makeFresh

这将安装

Laravel基本表格:用户、密码重置、通知、作业

Passport包表格:oauth_auth_codes、oauth_access_tokens、oauth_refresh_tokens、oauth_clients_table、oauth_personal_access_clients)

模板表格:i18n_lang、user_group

示例数据

Artisan命令(见下文)可以为您的数据库提供用户、项目等示例数据,用于测试和文档生成。

有关更多信息,请检查database/seeds/Samples文件夹。

用户ID 用户组ID 姓名 电子邮件 密码
41abdec2-1389-11e7-93ae-92361f002671 开发者 John Doe john.doe@domain.tld johndoe
509dd5c0-1389-11e7-93ae-92361f002671 支持 Alan Smithee alan.smithee@domain.tld alansmithee
605c7610-1389-11e7-93ae-92361f002671 终端用户 John Smith john.smith@domain.tld johnsmith
82b5da82-138c-11e7-93ae-92361f002671 终端用户 Mickey Mouse mickey.mouse@domain.tld mickeymouse

Node、Laravel Mix和Laravel Echo Server

NodeJs

安装NodeJs依赖项(有关更多信息,请检查package.json文件)。

npm install

Laravel Mix

资源

通过替换

检查webpack.mix.js以启用favicon.jpg复制和管理您自己的资源。

编译

运行此命令以编译资源

npm run dev

Laravel Echo Server

实时通知和事件通过使用Redis和Socket.io的本地Node.js服务器发送。

整个过程由laravel-echo-server处理。

通过创建此命令初始化Laravel Echo Serverlaravel-echo-server.json配置文件

laravel-echo-server init

启动和自动重启

使用PM2的自动重启功能

确保您已在laravel-echo-server.ecosystem.config.json文件中配置了所有内容。 :

pm2 start laravel-echo-server.ecosystem.config.json

或使用此命令手动启动服务器

laravel-echo-server start

Artisan命令

app:makeFresh

php artisan app:makeFresh

此命令将重置/刷新迁移,重新创建所需的数据库数据,并可选地创建一个新的应用程序并带有示例数据。

app:generateApiDocs

php artisan app:generateApiDocs

使用当前数据库资源生成API文档。

请确保您已配置好config/apidocs.php文件中的所有内容。

app:makeApiModelResource

php artisan app:makeApiModelResource

仅限开发环境使用!

生成并修改源文件,以添加一个新模型和相关文件。

在执行此命令期间,Laravel应用程序将停止服务(在最后隐式调用php artisan down然后php artisan up)。

在最后将调用Composer dump autoloads。

app:makeApiModelResourceAssets

php artisan app:makeApiModelResourceAssets

仅限开发环境使用!

生成并修改仪表板中新的资源模型的基本资产源文件。

在执行此命令期间,Laravel应用程序将停止服务(在最后隐式调用php artisan down然后php artisan up)。

请确保运行 npm run devnpm run watch 来检查您的资源编译。

(即将进行的升级:对模型资源进行分析以完成新组件字段和其他类似的内容。)

openApiSchemas:generate

php artisan openApiSchemas:generate

此命令由 rygilles/laravel-openapi-schema-generator 包提供。

它将分析您的 laravel 项目文件并生成一个 openapi json 文件,描述您的 API 功能。

在运行此命令之前,请检查 config/openapischemas.php 配置文件。

一些信息无法由脚本自动检索,您可能需要在 "openapi_bindings" 配置数组 中更新/添加数据。

ide-helper:generate

php artisan ide-helper:generate

此命令由 barryvdh/laravel-ide-helper 包 提供。

仅适用于开发环境

此包生成一个您的 IDE 可以理解的文件,因此它可以提供准确的自动完成功能。生成基于您项目中的文件,因此它们始终保持最新。如果您不希望生成它,您可以将预先生成的文件添加到您的 Laravel 项目的根目录中(但这不如自行生成的文件更新)。