Git Product home page Git Product logo

think-awesome's People

Contributors

9007967 avatar big-dream avatar china-wangyu avatar edenleung avatar guanguans avatar hbh112233abc avatar ichynul avatar lazyhuman avatar liliuwei avatar liu21st avatar nhzex avatar yuanzhihai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

think-awesome's Issues

ULID,一种比UUID更好的分布式ID生成方案

ULID - 一种比UUID更好的方案

仓库地址: efarsoft/ulid-php

为什么不选择UUID UUID 目前有 5 个版本:

版本1:在许多环境中是不切实际的,因为它需要访问唯一的,稳定的MAC地址,容易被攻击;
版本2:将版本 1 的时间戳前四位换为 POSIX 的 UID 或 GID,问题同上;
版本3:基于 MD5 哈希算法生成,生成随机分布的ID需要唯一的种子,这可能导致许多数据结构碎片化;
版本4:基于随机数或伪随机数生成,除了随机性外没有提供其他信息;
版本5:通过 SHA-1 哈希算法生成,生成随机分布的ID需要唯一的种子,这可能导致许多数据结构碎片化;
这里面常用的就是 UUID4 了,但是,即使是随机的,但是也是存在冲突的风险。

和 UUID 要么基于随机数,要么基于时间戳不同,ULID 是既基于时间戳又基于随机数,时间戳精确到毫秒,毫秒内有1.21e + 24个随机数,不存在冲突的风险,而且转换成字符串比 UUID 更加友好。

ULID特性:

ulid() # 01ARZ3NDEKTSV4RRFFQ69G5FAV
与UUID的128位兼容性
每毫秒1.21e + 24个唯一ULID
按字典顺序(也就是字母顺序)排序!
规范地编码为26个字符串,而不是UUID的36个字符
使用Crockford的base32获得更好的效率和可读性(每个字符5位)
不区分大小写
没有特殊字符(URL安全)
单调排序顺序(正确检测并处理相同的毫秒)

提交一个工具箱

https://github.com/XY-JX/utils
1.生成二维码
2.xml与数组转换
3.生成范围经纬度
4.经纬度换算距离
5.人民币转大写
6.MurmurHash
7.GoogleAuth
8.对称加密和证书加密
9.延迟队列
10.访问限制
11.redis
12.生成证书
13.验证码
14.其他

ThinkPHP ORM 分页驱动库

ThinkPHP ORM 分页驱动库

内含几个前端UI框架的分页驱动,能收录不(嘻嘻)
不知道用法是不是最佳的,欢迎流年老大指导
地址:https://github.com/big-dream/think-paginator-driver

使用示例

// 设置服务注入
\think\Paginator::maker(function (...$args) {
    // 使用Bootstrap4分页驱动(更多驱动看下面示例)
    return $this->app->make(\bigDream\thinkPaginatorDriver\Bootstrap4::class, $args, true);
});

\think\facade\Db::table('users')->paginate();

扩展推荐:Swagger接口文档查看工具apidoc

uniadmin-apidoc是无侵入的Swagger3/OpenApi3.0接口文档查看工具UI。引用即可生效,无需自己配置路由,无需自己部署swagger-ui到public目录。 插件为你做好了一切,基于ThinkPHP6的无侵入OpenApi UI界面,基于swagger-bootstrap-ui制作。

软件架构
基于ThinPHP6的ServiceProvider与Swagger-Bootstrap-UI,适合所有thinkphp6.0项目。

安装教程

composer require-dev zircote/swagger-php
composer require-dev uniadmin/uniadmin-apidoc dev-master

写一个文档
在一个控制器比如app/controller/User.php里写一个标准的接开文档如下

/**
 * 用户登录
 * 
 * @OA\POST(
 *     tags={"核心模块"},
 *     summary="用户登录",
 *     description="支持账号密码、手机号、邮箱登录",
 *     path="/core/user/login",
 *     @OA\Response(response="200",description="获取成功"),
 *     @OA\Parameter(
 *       name="account",in="query",required=true,description="用户名",
 *       @OA\Schema(type="string")
 *     ),
 *     @OA\Parameter(
 *       name="password",in="query",required=true,description="用户密码",
 *       @OA\Schema(type="string")
 *     )
 * )
 *
 * @param  \think\Request  $request
 * @return \think\Response
 * @author jry <[email protected]>
 */
public function login(Request $request)
{
}

使用说明
访问 {域名:端口}/doc

thinkphp6图片验证码,支持base64输出

composer

composer require phpu/think-captcha

git

https://github.com/liujiawm/think-captcha

只是要一个验证码功能,很简单!

可生成base64码输出,有利于api使用

验证码单独SESSION保存,不相互影响,在创建验证码时给一个key参数就可以

可以单独指定验证后是否清除,可以指定验证成功清除或是只要验证就清除,也可以设置不清除

可定义图片大小

实用而不繁琐,简洁而不简单

更多功能参看https://github.com/liujiawm/think-captcha

Think6 image Library

原think-image的打开gif文件会报不合法文件,保存png的质量参数和jpg的质量参数意义不统一,保存gif文件异常,不支持ThinkPHP6.0以版本,基于此修复了不支持PHP8的语法,移除了gif文件支持,统一了png和jpg的质量参数的意义,下步准备接入intervention/image和intervention/gif。

Github:github.com/woxiaoyao81/think-image
composer:think-image

适配市面上所有短信服务商短信SDK

市面上短信服务商分为两类:
1、模板类
2、内容直接发送类

业务场景:
1、发短信验证码
2、验证短信验证码
3、通知类内容短信

SDK内容服务商类:https://github.com/cinaofdai/think-sms
SDK模板服务商类:https://github.com/cinaofdai/think-sms-temp
理论上能适配市面上所有的短信服务商

技术特点:
1、发送短信使用单列模式
2、发送短信内容使用了适配器设计模式**,思路。
3、短信服务商的适配,使用适配器设计模式**。

推荐一个非常好用的时间助手类库

推荐一个非常好用的时间日期的类库, 支持composer, 开箱即用.可以填补TP5之后, 官方没有时间助手类的空白
[b]无须下载, 直接使用composer加载即可[/b]
说明文档也非常详细
[url]https://github.com/zjkal/time-helper[/url]
主要有如下几个功能:

  1. 获取需要的秒数
  2. 返回友好的日期格式,比如N秒前,N分钟前,N小时前等等
  3. 判断时间范围
  4. 计算两个时间相差值
  5. 返回N小时/天/星期/月/年前或者后的时间戳
    6.获取当前秒级/毫秒级/微秒级/纳秒级的时间戳
    7.其他方法

详细功能清打开Github地址查看即可
https://github.com/zjkal/time-helper

Migration 文件生成包

migration-generator

目的

如果你还未使用或者正想使用数据库迁移功能,但又不并不想自己写迁移文件的话,这个工具可以很好的帮助实现文件迁移 目前提供了 Laravel5.5+ 和 Thinkphp6+ 的迁移文件的生成。

如何使用

composer require jaguarjack/migration-generator 1.0

php think migration:generate

migration-generator

申请收录 Static7基础管理系统

Static7基础管理系统

GitHub地址:https://github.com/static7/past.git

基于thinkphp6.0框架,前端采用layui框架.

特点

1.使用仓储(Repository)模式
2.使用trait,提高代码复用、减少复杂性
3.封装使用率高的方法到trait类中
4.命令一键生成仓储模式 类名 php think depot [应用名/]类名
5.模板生成器,生成数据列表页面和表单页面 (高可扩展性和衍生性,开发效率可提升60%)
6.Request类 加入参数名映射 控制器中方法代码有示例 源码在app\Request类中查看
7.组权限控制,用户组权限控制 (展示菜单树节点)

关于文档

严格遵循官方文档进行开发

演示地址

传送门: https://demo.calm7.com 帐号密码均为:test001

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.