PHPackages                             haojohnny/formid - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. haojohnny/formid

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

haojohnny/formid
================

It is used manage form-id for wechat mini program.

0.0.1(6y ago)481MITPHP

Since May 24Pushed 6y ago1 watchersCompare

[ Source](https://github.com/haojohnny/formid)[ Packagist](https://packagist.org/packages/haojohnny/formid)[ RSS](/packages/haojohnny-formid/feed)WikiDiscussions master Synced today

READMEChangelog (1)DependenciesVersions (2)Used By (0)

 haojohnny/formid
==================

[](#-haojohnnyformid-)

基于Redis的微信小程序form-id的收集管理工具

安装
--

[](#安装)

```
$ composer require haojohnny/formid -vvv
```

form-id的生命周期
------------

[](#form-id的生命周期)

微信form-id从小程序中产生后有7天的有效期，因此form-id有效期的值应设置小于7天，具体看业务场景，把有效期提前一定时间，以确保form-id在业务中平滑使用。

```
  save                                                       get
 ------> { [form-value2, 7day], [form-value1, 1day], ... } -------> form-value1
                                                      |
                                                      | auto remove
                                                      v
                                                [form-value0, -1day]

```

配置
--

[](#配置)

在Redis.php文件中配置Redis连接

```
protected $options = [
    'host'       => 'redis',
    'port'       => 6379,
    'password'   => '',
    'select'     => 0,
    'timeout'    => 0,
    'expire'     => 0,
    'persistent' => false,
];
```

在FormId.php文件中设置form-id缓存配置

```
protected $config = [
    'prefix' => 'form_id_',  // form-id缓存前缀
    'count'  => 50,          // form-id最大保存数量
    'expire' => '7 days'     // form-id有效期（必须是strtotime函数能识别的语义字符串，有效期必须小于等于7天）
];
```

使用方法
----

[](#使用方法)

```
require './vendor/autoload.php';

use Haojohnny\Formid\FormId;

// 方法一：数据存储默认使用Redis.php的连接实例
$form = new FormId();

// 方法二：手动注入redis实例
$redis = new \Redis;
$redis->connect('127.0.0.1', 6379, 0);
$form = new FormId($redis);

// 在实例化时传入form-id配置
$options = [
    'prefix' => 'form_id_',
    'count'  => 50,
    'expire' => '7 days'
];

$redis = new \Redis;
$redis->connect('127.0.0.1', 6379, 0);

$form = new FormId($redis, $options);
```

保存form-id

每次调用save时，对应的form-id容器将刷新有效期为7day，当7day之后没有新的form-id进行save时，该form-id容器将被redis释放

```
$form->save('user_id:1001', 'form-value');
```

获取form-id，不存在时返回null

```
echo $form->get('user_id:1001'); // form-value
echo $form->get('user_id:1002'); // null
```

Contributing
------------

[](#contributing)

You can contribute in one of three ways:

1. File bug reports using the [issue tracker](https://github.com/miniprogram/formID/issues).
2. Answer questions or fix bugs on the [issue tracker](https://github.com/miniprogram/formID/issues).
3. Contribute new features or update the wiki.

*The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.*

License
-------

[](#license)

MIT

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community5

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2544d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d4152a0f1afd86d8d9e83bd3b81162c3ae199a973b06c1a8cbfc679d8e8243b6?d=identicon)[haojohnny](/maintainers/haojohnny)

### Embed Badge

![Health badge](/badges/haojohnny-formid/health.svg)

```
[![Health](https://phpackages.com/badges/haojohnny-formid/health.svg)](https://phpackages.com/packages/haojohnny-formid)
```

###  Alternatives

[mgallegos/laravel-jqgrid

Laravel jqGrid package allows you to easily integrate the popular jQuery Grid Plugin (jqGrid) into your Laravel application.

7115.5k1](/packages/mgallegos-laravel-jqgrid)[lifeonscreen/nova-sort-relations

This package improves support for sorting relations in Laravel Nova.

2081.9k](/packages/lifeonscreen-nova-sort-relations)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
