snoopyebo/test_signature

第一个测试包

1.0.0 2024-02-01 06:54 UTC

This package is not auto-updated.

Last update: 2024-09-27 08:23:47 UTC


README

创建 composer 包

0x01 初始化 composer.json

composer init

填写包的各种信息,包括名称、描述、关键词、类型、版本、自动加载、作者、许可证、依赖等。

composer.json 架构可参考 点击这里

0x02 编写代码文件

以本项目为例,在 src 目录下,创建子目录 Decrypt/Lib,放置核心功能类库代码。

src/Decrypt/Signature.php 为例,代码如下:

<?php

namespace Snoopy\TestSignature\Decrypt\Lib;

class Signature
{
    public static function getSignature($params, $secret)
    {
        $signature = '';
        ksort($params);
        foreach ($params as $k => $v) {
            if ($v instanceof \SplFileInfo) {
                $v = md5_file($v->getPathname());
            } else if ($v instanceof \CURLFile) {
                $v = md5_file($v->name);
            }
            $signature .= sprintf('%s=%s&', $k, $v);
        }
        $signature .= $secret;

        return md5($signature);
    }

    public static function getToken($app, $ticket, $time)
    {
        return md5(sprintf("%s%d%s", $app, $time, $ticket));
    }
}

注意到 namespaceSnoopy\TestSignature\Decrypt\Lib,这是因为 composer.json 中的 autoload.psr-4 设置了命名空间对应的代码路径映射关系:"Snoopy\\TestSignature\\": "src/"

0x03 推送到github仓库

git init
git remote add origin git@github.com:snoopyGIT/testcomposer.git
git commit -am "first commit"
git push -u origin main

0x04 提交到packagist.org

首先需要注册一个账号,邮箱激活后,登录账号,在地址 https://packagist.org.cn/packages/submit 复制github仓库地址,点击提交。如果没有意外,比如名称与已有的包重复等,就能成功提交。如果有意外,比如名字和已有的包重复类似的情况,那就改一下,更新到github,再提交到packagist。

0x05 使用

在你的项目中: composer require snoopyebo/test_signature,然后在你的代码中这样引用:(注意使用https://packagist.org.cn源

use Snoopy\TestSignature\Decrypt\Lib\Signature;

$params = [
    'id' => 1,
];
$secret = '123456';
$signature = Signature::getSignature($params, $secret);

echo $signature;