Download the PHP package phpno1/architecture without Composer
On this page you can find all versions of the php package phpno1/architecture. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download phpno1/architecture
More information about phpno1/architecture
Files in phpno1/architecture
Package architecture
Short Description an architecture for laravel
License MIT
Homepage https://github.com/yb19890724/phpno1-architecture
Informations about the package architecture
laravel框架开发项目架构扩展包
[![Latest Stable Version](https://poser.pugx.org/phpno1/architecture/v/stable)](https://packagist.org/packages/phpno1/architecture) [![Total Downloads](https://poser.pugx.org/phpno1/architecture/downloads)](https://packagist.org/packages/phpno1/architecture) [![Build Status](https://travis-ci.org/yb19890724/phpno1-architecture.svg?branch=master)](https://travis-ci.org/yb19890724/phpno1-architecture) [![License](https://poser.pugx.org/phpno1/architecture/license)](https://packagist.org/packages/phpno1/architecture)
官方扩展qq群
qq:680531281
功能
项目架构分层,代码生成器,快速进入开发阶段,拆分职责降低耦合。
目录
- 安装
- 使用要求
- composer
- laravel
- 配置
- 命令
- 使用
- 快速使用
- 方法介绍
- 初始化加载
- 限制条件
- 排序字段
- 过滤条件
- scope
- 自定义
- 缓存
- 注意事项
安装
使用要求
- laravel >= 5.5
- php >= 7.1
composer
执行以下命令获取包的最新版本:
laravel
生成配置文件
注册到服务容器
说明:用命令生成仓储文件时(phpno1:entity || phpno1:repository),会自动生成ArchitectureServiceProvider文件。
配置
命令
说明:使用命令创建仓储文件时(phpno1:entity和phpno1:repository),会自动绑定接口与实现类关系。
生成组合配置
生成控制器
生成业务处理类
生成扩展全局限制类
生成过滤类
生成模型类
生成服务器提供者,用于接口绑定实体类
生成仓库类
生成校验类
生成响应类
生成种子文件
快速使用
1.执行以下命令:
生成文件 (注:以下命令生成文件路径可以通过配置修改architecture.php)
- app\Http\Controllers\Backend\UserController
- app\Services\UserService
- app\Repository\Eloquent\UserRepositoryEloquent
- app\Repository\Contracts\UserRepository
- app\Http\Requests\User\StoreRequest \UpdateRequest
- app\Http\Responses\User\IndexResponse \ShowResponse
- app\Models\UserModel
- database\factories\UserFactory
- database\migrations\UserTable
- database\seeds\UserSeeder
2.修改代码
1).控制器
2).响应(数据映射)
方法介绍
- Contracts : 仓储业务抽象接口。
- Criterias : 全局通用业务抽取以及准对某一类业务的Scope。
- Eloquent : 仓储业务具体实现。
- Exceptions : 仓储异常处理。
- Filters : 根据参数自动过滤和排序。
- Traits : Trait封装
Phpno1\Repository\Contracts\IRepository;
- function entity();
- function all();
- function find(int $id);
- function first();
- function count();
- function findWhere(...$condition);
- function findWhereFirst(...$condition);
- function findWhereCount(...$condition);
- function paginate(int $perPage = 10);
- function create(array $properties);
- function update(int $id, array $properties);
- function delete(int $id);
- function withCriteria(...$criteria);
- function toEntity();
- function toRepository(Builder $entity);
Phpno1\Repository\Eloquent;
初始化加载
限制条件
编写Criteria类
使用Criteria类
过滤条件
在Repository中配置要过滤和排序的映射字段
编写要过滤的业务
编写要排序的业务
注意:如果你需要字段排序,首先需要在生成的配置文件architecture.php中定义你需要的排序接收参数
在过滤类中必须实现接口 "IOrder"!!!
传递参数进行过滤操作
scope
这里仓库层中的scope方法是兼容laravel模型的scope方法调用
注意如果调用scope方法请注意,必须先调用再执行withCriteria进行过滤
自定义
缓存
使用CacheGenerate的trait特性 用途:当使用redis或memcahce做缓存时,方便做数据缓存操作。当然,您也可以使用Laravel框架提供的Cache。
注意事项
- 建议文件生成都使用命令来操作。
- 过滤必须要继承AbstractFilter (有特殊需求的可以实现IFilter接口) ,过滤必须实现IOrder接口。
- 过滤和排序都是可选的。
- 需要排序的字段必须在architecture.php中定义你需要的排序接收参数,否则参数无法接收。
- 通过重写过滤中的mappings()方法来改变数据库字段和过滤使用的参数映射关系。
- 通过重写AbstractFilter中的resolveOrderDirection()方法来改变排序方式的映射关系。