Download the PHP package lmz/thefair-skeleton without Composer

On this page you can find all versions of the php package lmz/thefair-skeleton. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package thefair-skeleton

Rpc Service 搭建说明文档

[TOC]

安装

仅可运行于 Linux 和 Mac 环境下,Windows 下也可以通过 Docker for Windows 来作为运行环境或虚拟机,通常来说 Mac 环境下,推荐本地环境部署

composer create-project lmz/thefair-skeleton test_service

本地配置文件 .env

安装包 composer up

启动服务开发 php dev_start.php -c

项目文件结构

配置文件结构

开发必读

不能通过全局变量获取属性参数

PHP-FPM 下可以通过全局变量获取到请求的参数,服务器的参数等,在 HyperfSwoole 内,都 无法 通过 $_GET/$_POST/$_REQUEST/$_SESSION/$_COOKIE/$_SERVER$_开头的变量获取到任何属性参数。

通过容器获取的类都是单例

通过依赖注入容器获取的都是进程内持久化的,是多个协程共享的,所以不能包含任何的请求唯一的数据或协程唯一的数据,这类型的数据都通过协程上下文去处理,具体请仔细阅读 依赖注入协程 章节。

框架生命周期

Hyperf 是运行于 Swoole 之上的,想要理解透彻 Hyperf 的生命周期,那么理解 Swoole 的生命周期也至关重要。 Hyperf 的命令管理默认由 symfony/console 提供支持(如果您希望更换该组件您也可以通过改变 skeleton 的入口文件更换成您希望使用的组件),在执行 php bin/hyperf.php start 后,将由 Hyperf\Server\Command\StartServer 命令类接管,并根据配置文件 config/autoload/server.php 内定义的 Server 逐个启动。 关于依赖注入容器的初始化工作,我们并没有由组件来实现,因为一旦交由组件来实现,这个耦合就会非常的明显,所以在默认的情况下,是由入口文件来加载 config/container.php 来实现的。

禁止注入 model,实现单例方法

可以使用 UserInfoModel::xxxx 方法,或makenew

请求与协程生命周期

Swoole 在处理每个连接时,会默认创建一个协程去处理,主要体现在 onRequest、onReceive、onConnect 事件,所以可以理解为每个请求都是一个协程,由于创建协程也是个常规操作,所以一个请求协程里面可能会包含很多个协程,同一个进程内协程之间是内存共享的,但调度顺序是非顺序的,且协程间本质上是相互独立的没有父子关系,所以对每个协程的状态处理都需要通过 协程上下文 来管理。

路由

路由必须是三级,/m/c/a

http 服务使用 @AutoController Rpc 服务使用 @RpcService

* @RpcService(name="v2/test", protocol="jsonrpc-tcp-length-check", server="json-rpc")

参数过滤

路由 /v2/test/get_test 对应 \App\Controller\V2\Test::getTest 方法

必须新建一个对应的 app/Request/V2/Test/GetTest.php 文件

生成命令:php bin/hyperf.php gen:request V2/Test/GetTest

input 可以获得GET|POST参数,相当于$_REQUEST

app/Request/V2/Test/GetTest.php 源码

新增验证规则

mobile 国内手机号验证

'phone' => 'required|mobile'

str 对字符串进行编码 'phone' => 'required|str'

Model 模型

约束:只做数据库、缓存操作,不写业务逻辑,业务推荐写在 service 里面

分表自动创建模型

-w790

shardingId 方法

model 类中重写表名,原方法$this->db()->table($this->_getTableName($uid))

全局使用方式

sql 注入

demo 用例

上面这条 sql 可以使用参数过滤做来,如强转 int

上面这条 sql 传入的是一个字符串,如果用参数过滤很容易误杀,必须使用预处理查询

系统底层会监控 sql 语句,发现原生 sql 语法,自动报警

异常

普通异常

code 异常

empty 异常

新 api 访问 rpc 服务

hyperf service 服务之间的访问

配置文件 config/autoload/services.php

新建 RpcClient

访问

线上服务启动

systemd 管理

用于 centos 7

新建:/etc/systemd/system/user.service

sudo systemctl --system daemon-reload

supervisorctl 管理项目

编辑新复制出来的配置文件 /etc/supervisord.d/supervisord.conf,并在文件结尾处添加以下内容后保存文件:

启动 Supervisor

使用 supervisorctl 管理项目

单元测试


All versions of thefair-skeleton with dependencies

PHP Build Version
Package Version
Requires php Version >=7.4
ext-swoole Version >=4.6
thefair/thefairlib Version ~4.4.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package lmz/thefair-skeleton contains the following files

Loading the files please wait ....