某行/某行启动器应用

Laravel 框架。

安装: 6

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 3

分支: 1

开放问题: 0

语言:JavaScript

类型:项目

v1.0.2 2016-12-04 15:06 UTC

This package is auto-updated.

Last update: 2024-09-09 03:50:43 UTC


README

Latest Version on Packagist Software License

某行启动器是一个用于快速构建Web应用和Restful API的PHP框架,它基于现代设计模式基础。

它基于流行的Laravel 5框架Vue.jsRestful API仓库设计OAuth2JWT单元测试、前端和后端分层独立。

某行启动器诞生有两个原因

  1. 无需从零开始使用Laravel即可快速构建应用或Restful API启动器。

  2. 引入现代设计模式,为PHP项目提供一个更好的起点。

实际操作

某行启动器演示

使用Vue.js构建的前端,并通过Restful API显示数据

邮箱: libern@someline.com

密码: Abc12345

观看视频

观看下面的视频教程。

YouTube: https://youtu.be/6_lxJNX0Qe0

框架概述

某行启动器适合面向Restful API的项目。

作为后端层的Restful API为前端提供简单的统一接口:Web和移动应用。

它使用Laravel Passport进行受保护资源的认证。

它还提供了API测试和框架测试的单元测试。

它配备了Angulr主题,并提供易于参考的每个部分的功能。

它充分利用了仓库设计模式。

开箱即用组件

如果你不熟悉这些包中的任何一个,建议你了解它们,因为当需要时它们非常有用。

框架

基础

核心

身份验证

主题

前端

  • Vue.js用于现代Web界面的响应式组件

开始使用

请确保您已经安装了PHP 7.0和composer

您可以通过选项A或B开始

A. 通过composer开始

在工作目录下,运行以下命令

composer create-project --prefer-dist someline/someline-starter-app someline-starter-app

A.1. 添加到git仓库 (当需要时)

https://github.com/username/repository-name.git更改为您自己的git仓库地址。

cd someline-starter

git init
git add .
git commit -m 'Initial commit'

git remote add origin https://github.com/username/repository-name.git
git push -u origin master

B. 通过克隆仓库开始

将此项目克隆到您的工作目录并打开该目录

git clone https://github.com/someline/someline-starter-app

B.1. 添加到git仓库 (当需要时)

https://github.com/username/repository-name.git更改为您自己的git仓库地址。

cd someline-starter-app
rm -rf .git

git init
git add .
git commit -m 'Initial commit'

git remote add origin https://github.com/username/repository-name.git
git push -u origin master

安装

开发需求

安装基本组件

打开someline-starter文件夹 (可选,只在不在项目根目录时运行)

cd someline-starter-app

所有这些命令都应该在someline-starter项目的根目录下执行

安装composer依赖

composer install

安装npm依赖

npm install

安装bower依赖

bower install

设置Laravel,在这些命令之后,请更改.env文件以进行您的环境设置

sudo cp .env.example .env
sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache
php artisan key:generate

数据库与填充

您需要创建一个数据库,例如someline_starter,编码为utf8mb4,排序为utf8mb4_unicode_ci

MySQL查询

CREATE DATABASE `someline_starter` DEFAULT CHARACTER SET = `utf8mb4` DEFAULT COLLATE = `utf8mb4_unicode_ci`;

.env文件中的数据库配置更改为您刚刚创建的数据库。

在设置数据库配置之后,您现在可以进行迁移和填充。

php artisan migrate

php artisan db:seed

安装Laravel Passport并生成加密密钥以生成安全的访问令牌。

php artisan passport:install

准备就绪

到此为止,您应该能够访问主页。

例如,如果您已设置域名:http://someline-starter.app/

只需访问:http://someline-starter.app/

系统将提示您登录,请使用

libern@someline.com
Abc12345

您可以从文件database/seeds/UsersTableSeeder.php中更改填充账户信息

您完成了!是的!

探索并开始在此基础上构建。

开发过程与流程

必备知识

在您开始构建之前,您需要了解、阅读和理解以下内容。

我们推荐使用PHPStorm IDE来构建和开发您的项目。

命名空间

app/文件夹的默认命名空间是Someline

如果您不熟悉Someline Starter的命名空间,不建议更改命名空间,因为Someline命名空间在整个项目中被大量使用。

然而,如果您知道自己在做什么,您仍然可以更改它,因为某些命名空间需要手动更改。

要更改命名空间到您喜欢的

php artisan app:namespace YourApp

基类

为了充分利用Someline Starter提供的所有功能,您应该从BaseClass(如果存在的话)扩展类,例如BasePresenterBaseController等。

模型

所有模型都位于app/Models/文件夹下。

位于app/Models/Foundation/文件夹下的User模型默认创建,主键为user_id,您不应过度修改此类,因为它在整个项目中几乎到处都在使用。您可以使用全局函数auth_user()来访问当前登录用户。

每个模型都应该扩展Someline/Models/BaseModel,它有一个观察者Someline/Observers/BaseModelObserver,您可以利用模型中的所有模型事件,例如onCreatingonCreatedonUpdatingonDeleting等。

在创建新模型时,您应该使用命令来自动生成相关的仓库类。

php artisan starter:entity Post

Web Http

所有与Web相关的文件都位于app/Http/文件夹下。

Web路由定义在文件routes/web.php中。

Web控制器定义在文件夹app/Http/Controllers/中。

RESTful API

所有与API相关的文件都位于app/Api/文件夹下。

API路由定义在文件routes/api.php中。

API控制器定义在文件夹app/Api/Controllers/中。

在您创建API之前,您需要对其进行测试才能使用。您应使用提供的单元测试或创建新的单元测试来测试所有API。不推荐使用浏览器或Postman等工具进行测试。

仓库模式

所有与仓库相关的文件都位于app/下,具体类型作为父文件夹。

仓库:app/Repositories/

仓库Eloquent:app/Repositories/Eloquent/

仓库接口:app/Repositories/Interfaces/

仓库标准:app/Repositories/Criteria/

展示者:app/Presenters/

转换器:app/Transformers/

验证器:app/Validators/

资源

Angulr样式和脚本:resources/assets/angulr/

Angulr与Blade视图:resources/views/angulr/

Vuejs:resources/assets/js/

Less样式:resources/assets/less/app.less

Sass样式:resources/assets/sass/app.scss

在更改脚本和样式后,您需要运行命令。

在开发中,运行

npm run-script dev

在生产中,运行

npm run-script prod

当您更改主题文件时,运行

npm run-script theme

API和单元测试

注意

您可能需要更改dev环境中local服务配置下的config/rest-client.php,以适应您的本地开发配置。

同时更改.env文件中API_TEST_CLIENT_SECRET的值,将其设置为oauth_clients表中Password Grant Client记录的secret值。

单元测试:tests/

API单元测试:tests/Api/

调试和Clockwork

从文件storage/clockwork.sqlite中查看所有请求和请求信息。

OAuth Web支持

OAuth HTTP URL:http://someline-starter.app/console/oauth

Web日志查看器

日志查看器HTTP URL:http://someline-starter.app/console/logs

数据库

我们建议使用迁移来管理数据库结构和数据填充。

直接更改数据库或不遵循迁移是强烈不推荐的。

创建数据库迁移的流程
  1. 创建迁移文件(当使用php artisan starter:entity时自动生成),在文件夹database/migrations/下。

  2. 向迁移文件添加必要列(当使用php artisan starter:entity时自动生成)。

您建议使用tablename_id格式作为主键自增键,例如,对于表posts,您需要使用post_id,并且当它成为外键时,您应该在其他表中保持相同的名称post_id

$table->increments('post_id');

您还建议在所有表中使用user_id字段,例如,在company_staffs表中用user_id代替staff_id作为员工ID。如果某些表中没有user_id的含义,您仍然应该放置user_id字段,以备将来使用。因此,您需要根据表场景智能地使用它。同样地,根据您自己的需求,您可能还想添加一个related_user_id字段来指示某些记录与用户有关。

以下列始终由BaseModel所需。

$table->unsignedInteger('user_id')->index();

$table->unsignedInteger('created_by')->nullable();
$table->timestamp('created_at')->nullable();
$table->ipAddress('created_ip')->nullable();
$table->unsignedInteger('updated_by')->nullable();
$table->timestamp('updated_at')->nullable();
$table->ipAddress('updated_ip')->nullable();

并删除timestamps()。

// $table->timestamps();

最后,表的蓝图应如下所示,例如在posts表中。

$table->increments('post_id');
$table->unsignedInteger('user_id')->index();

// Adding more table related fields here...

$table->unsignedInteger('created_by')->nullable();
$table->timestamp('created_at')->nullable();
$table->ipAddress('created_ip')->nullable();
$table->unsignedInteger('updated_by')->nullable();
$table->timestamp('updated_at')->nullable();
$table->ipAddress('updated_ip')->nullable();
  1. 在文件database/factories/ModelFactory.php下添加工厂支持。

  2. 在文件夹database/seeds/下创建播种支持。

刷新数据库迁移和播种。

当您添加或更改迁移或播种文件,或者您只是简单地想刷新数据库中的所有内容时。

php artisan migrate:refresh --seed

许可

Someline Starter 框架是开源软件,许可协议为MIT许可