someline / someline-starter
Someline Starter 是一个基于现代设计模式基础的 PHP 框架,用于快速构建 Web 应用和 Restful API。
Requires
- php: ^7.1.3
- dingo/api: v2.2.3
- fideloper/proxy: ^4.0
- rap2hpoutre/laravel-log-viewer: ^1.1.1
- someline/starter-framework: 1.9.*
Requires (Dev)
- beyondcode/laravel-dump-server: ^1.0
- filp/whoops: ^2.0
- fzaninotto/faker: ^1.4
- mockery/mockery: ^1.0
- nunomaduro/collision: ^3.0
- phpunit/phpunit: ^7.5
- dev-master
- v0.8.2
- v0.8.1
- v0.7.12
- v0.7.11
- v0.7.10
- v0.7.9
- v0.7.8
- 0.7.7
- v0.7.6
- v0.7.5
- v0.7.4
- v0.7.3
- v0.7.2
- v0.7.1
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.9
- v0.4.8
- v0.4.7
- v0.4.6
- v0.4.5
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.43
- v0.3.42
- v0.3.41
- v0.3.40
- v0.3.39
- v0.3.38
- v0.3.37
- v0.3.36
- v0.3.35
- v0.3.34
- v0.3.33
- v0.3.32
- v0.3.31
- v0.3.30
- v0.3.29
- v0.3.28
- v0.3.27
- v0.3.26
- v0.3.25
- v0.3.24
- v0.3.23
- v0.3.22
- v0.3.21
- v0.3.20
- v0.3.19
- v0.3.18
- v0.3.17
- v0.3.16
- v0.3.15
- v0.3.14
- v0.3.13
- v0.3.12
- v0.3.11
- v0.3.10
- v0.3.9
- v0.3.8
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-5.8.10@dev
- dev-5.6.17@dev
- dev-5.5.1@dev
- dev-5.4.3@dev
- dev-5.3.28@dev
- dev-5.3.24@dev
- dev-dev
- dev-development
This package is auto-updated.
Last update: 2024-08-29 04:25:27 UTC
README
由 Someline Inc 测试并用于生产。
Someline Starter 是一个用于快速构建 Web 应用和 Restful API 的 PHP 框架,具有现代设计模式基础。
它是基于流行的 Laravel 5.8 框架
、Vue.js 2.6
、Restful API
、Repository Design
、OAuth2
、JWT
、单元测试
、前后端分离。
Someline Starter 出现了三个原因
-
无需从头开始使用 Laravel,即可快速启动 Web 应用。
-
使用 Restful API 实现前后端分离。
-
引入现代设计模式,为 PHP 项目提供一个更好的基础。
实际应用
Someline Starter 演示
使用 Vue.js 开发的前端,通过 Restful API 显示数据
电子邮件: libern@someline.com
密码: Abc12345
观看视频
请观看下面的视频教程。
YouTube: https://youtu.be/6_lxJNX0Qe0
框架概述
Someline Starter 适用于以 Restful API 为主的项目。
Restful API 作为后端层,为前端(Web 和移动应用)提供简单统一的接口。
它利用 Laravel Passport 进行受保护资源的认证。
它还提供了 API 测试和框架测试的单元测试。
它包含 Angulr 主题,您可以在各个部分轻松引用其功能。
它充分利用了 Repository 设计模式。
开箱即用组件
如果您不熟悉这些包中的任何一个,建议您了解它们,因为它们在需要时非常有用。
框架
- Laravel 5.8 laravel/framework
- Laravel IDE Helper barryvdh/laravel-ide-helper
- Clockwork itsgoingd/clockwork
- Laravel 5 日志查看器 rap2hpoutre/laravel-log-viewer
基础
- Redis predis/predis
- GuzzleHTTP guzzlehttp/guzzle
- HTTP 状态 lukasoppermann/http-status
核心
- Restful API dingo/api
- L5 Repository prettus/l5-repository
- Fractal thephpleague/fractal
- Laravel Validation prettus/laravel-validation
- Intervention Image intervention/image
- Intervention Image Cache intervention/imagecache
- Rest API Client someline/rest-api-client
- 某行图像服务 someline/someline-image
身份验证
- Laravel Passport laravel/passport
主题
-
支持Bootstrap和jQuery的Angulr主题。演示:[Angular版本](http://flatfull.com/themes/angulr/angular/#/app/dashboard-v1) 和 [HTML版本](http://flatfull.com/themes/angulr/html/)。
如果您在项目中使用此主题,请购买许可证。
前端
- Vue.js 用于现代网络界面的响应式组件
入门指南
请确保您已经安装了PHP 7.1和composer。
您可以选择以下任一选项开始
A. 通过composer开始
在工作文件夹下运行以下命令
composer create-project --prefer-dist someline/someline-starter someline-starter
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
B.1. 添加到git仓库 (如有需要)
将 https://github.com/username/repository-name.git
改为您自己的git仓库地址。
cd someline-starter
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
安装
开发要求
- PHP: >=7.1.8
- MySQL: >=5.7
- SQLite扩展
- Laravel 5: https://laravel.net.cn/docs/5.8/installation
- Yarn: https://yarn.npmjs.net.cn/
- NodeJS: https://node.org.cn/
- Bower: https://bower.io/
安装基本工具
打开 someline-starter
文件夹 (可选,仅在您不在项目根目录下时运行)
cd someline-starter
所有这些命令应在someline-starter项目的根目录下执行
安装composer依赖项
composer install
使用Yarn依赖管理器安装npm依赖项(推荐)
注意:此命令应在homestead环境中执行。如果您愿意,仍然可以使用npm install
。
yarn install
安装bower依赖项
bower install
设置Laravel,在这些命令之后,请修改.env
文件以设置您自己的环境设置
sudo cp .env.example .env
sudo chmod -R 777 storage 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
当在服务器上部署时
sudo chown www-data:www-data storage/oauth-*.key
sudo chmod 600 storage/oauth-*.key
准备就绪
到此为止,您应该能够访问主页。
例如,如果您已设置域名:http://someline-starter.sl/
。
只需访问:http://someline-starter.sl/
它将提示您登录,请使用
libern@someline.com
Abc12345
您可以从文件database/seeds/UsersTableSeeder.php
更改种子账户信息
完成了!是的!
探索并开始构建。
开发过程和流程
必备知识
在开始构建之前,您需要了解、阅读和理解以下内容。
我们建议使用PHPStorm IDE来构建和开发您的项目。
命名空间
app/
文件夹的默认命名空间是Someline
。
如果您不熟悉Someline Starter的命名空间,不建议更改命名空间,因为Someline
命名空间在整个项目中使用频率很高。
但是,如果您知道自己在做什么,仍然可以更改它,因为某些命名空间需要手动更改。
要将命名空间更改为您喜欢的
php artisan app:namespace YourApp
基类
为了充分利用Someline Starter提供的功能,您应该从基类扩展类(如果有),例如BasePresenter
、BaseController
等。
模型
所有模型都位于app/Models/
文件夹下。
app/Models/Foundation/
文件夹下的User
模型默认创建,主键为user_id
,您不应该大量更改此类,因为它在整个项目中几乎无处不在。您可以使用全局函数auth_user()
来访问当前登录用户。
每个模型都应该扩展Someline/Models/BaseModel
,它有一个观察者Someline/Observers/BaseModelObserver
,您可以利用模型中的所有模型事件,例如onCreating
、onCreated
、onUpdating
、onDeleting
等。
创建新模型时,您应该使用命令来自动生成相关的仓库类。
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/
资源
Angular样式和脚本:resources/assets/angulr/
Angular与Blade视图:resources/views/angulr/
Vuejs:resources/assets/js/
Less样式:resources/assets/less/app.less
Sass样式:resources/assets/sass/app.scss
在脚本或样式中进行更改时,您需要运行命令。
在开发中运行
yarn run dev
在开发和监视资源更改时运行
yarn run watch
在生产中运行
yarn run production
更改主题文件后运行
yarn run theme
API和单元测试
注意
您可能需要从dev
环境中的config/rest-client.php
更改local
服务配置,以适应您的本地开发配置。
同时更改.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.sl/console/oauth
Web日志查看器
日志查看器HTTP URL:http://someline-starter.sl/console/logs
数据库
我们建议使用迁移来创建数据库结构和填充。
直接更改数据库或未遵循迁移是强烈不建议的。
创建数据库迁移的流程
-
在文件夹
database/migrations/
下创建迁移文件(使用php artisan starter:entity
时自动生成) -
在迁移文件中添加必要的列(使用
php artisan starter:entity
时自动生成)
建议您使用tablename_id
格式作为主递增键,例如,对于posts
表,您需要使用post_id
,当它成为外键时,应在其他表post_id
中保持相同的名称。
$table->increments('post_id');
还建议您在所有表中使用user_id
字段,例如,在company_staffs
表中使用user_id
作为员工ID,而不是staff_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();
-
添加工厂支持,在文件
database/factories/ModelFactory.php
下 -
创建种子支持,在文件夹
database/seeds/
下
刷新数据库迁移和种子
当您添加或更改迁移或种子文件时,或者您只是简单地想要刷新数据库中的所有内容时
php artisan migrate:refresh --seed
许可证
Someline Starter 框架是开源软件,受MIT许可证许可。