向开源大佬学习造轮子,抛砖引玉撸一个用来美团联盟等CPS淘客的PHP SDK。

背景#

笔者是兼职独立开发的,做过一些小程序,最近接触到之前类似淘宝客 CPS 的另一领域本地化生活的非之前电商的 CPS,比如外卖,酒店,社区团购等相关的 CPS,美团联盟这块官方只有接口文档,并没有 SDK,所以就想自己开发一个的同时再熟练下 PHP 扩展包开发。

然后基于扩展包仅支持美团联盟过于单调,就想能不能做一个像 easywechat 哪有既方便易用文档又完善的淘客 SDK 呢,查找 github 都是零零散散的,要么 CPS 种类不全,要么文档糟糕,更新赶不上去,显然是这个轮子有一定的价值去造。

所以想弥补这方面的不足,众人拾柴火焰高,搞一个 easyTaoke 的仓库,率先整上一个新的相对稀缺的美团的 SDK 到 github,进行抛砖引玉。

撸了两个小时已 online, github.com/CoderOpen/EasyTaoKe

实操过程#

制作 composer 包其实整体上并不是很难,可以参考大佬的文章。
简单地说,先按照一定规范,使用脚手架生成包目录

  1. 填充好 composer.json 中的 namespace 等自动加载,已经依赖的其他 composer 包,比如本 SDK 使用了 guzzle
  2. 开发相关包功能逻辑
  3. 单元测试以及包功能测试
  4. 提交代码到 github,然后同步到 php 官方 packagist.org/about 上去
    这样使用者就能直接 composer require XXXX 就可以安装到他的项目中了,想象一下,自己开发的东西能让很多人使用,肯定是一件特别有意义的事儿
功能逻辑#

核心是先创建一个工厂类,使用门面的方式来自动加载相应目录下的各种 CPS 功能。

class Factory
{
    /**
     * @param string $name
     * @param array  $config
     */
    public static function make($name, array $config)
    {
        $namespace   = ucwords($name);
        $application = "\\OneCoder\\EasyTaoKe\\{$namespace}\\Application";

        return new $application($config);
    }

    /**
     * Dynamically pass methods to the application.
     *
     * @param string $name
     * @param array  $arguments
     *
     * @return mixed
     */
    public static function __callStatic($name, $arguments)
    {
        return self::make($name, ...$arguments);
    }
}

Base 目录放置公共的接口类,比如建一个基础的应用类 /Base/Application 类方便扩展。
各个应用文件下一个 MeiTuanUnion \Application 类实现继承基础应用类


<?php
/**
 * 2021年01月02日 23:32
 */

namespace OneCoder\EasyTaoKe\MeiTuanUnion;

use Mockery\Exception;
use OneCoder\EasyTaoKe\Base\Application as BaseApplication;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Stream;

/***
 * 美团联盟应用
 * Class Application
 *
 * @package OneCoder\EasyTaoKe\MeiTuanUnion
 */
class Application extends BaseApplication
{
    const SIGNATURE_PARAM_NAME = 'sign';  //美团回调参数签名字段名称
    ——
    ——
}

先是构造函数进行初始化配置 SDK 传参,其次定义好各种枚举常量,然后就是功能性各个接口。

开源源码一定要格式化好,注释详细,文档齐全,我就想做这么一件事儿.

题外话#

上面有个链接是之前发的 CPS 小程序原理讲解的链接(提到过相关应用)。可能某些老哥觉得某些字眼和推广有关,就死盯着然后也举报了。

至于文章有没有用,我觉得大家眼睛是雪亮的,原理结合应用,能帮助到人才有价值,我想开源的意义也是如此吧,利他利己。换句话说单从价值上意义上来说,即便大谈阔论分布式架构,PHP 底层实现原理,没人看没人能从中学到东西,我觉得也是浪费大家的时间。

向开源大佬学习造轮子,抛砖引玉撸一个用来CPS淘客联盟PHP SDK。

附原文如下:

传送门 github.com/CoderOpen/EasyTaoKe

想撸一个比较完善,文档齐全的 CPS PHP 开源 SDK,像 easywechat 大佬学习,于是命名为 easyTaoke,感兴趣的可以加我微信 phpcoder666 一起搞事情!
SDK 本身意在开源哈,比较规范,比现有的 sdk 文档齐全易用
原链接:博客:昨晚发了两小时学习了 PHP composer 包制作,然后撸了一个用来 CPS 赚钱...

本作品采用《CC 协议》,转载必须注明作者和本文链接
PHP 是世界上最好的编程语言,它能快速的进行技术变现,让代码多一份价值。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8

要让别人使用,还需要有详细的文档,以及测试用例

4年前 评论

@tu6ge-php 是的,其他的都有了的,要想让别人用,必须得从其他方面突出优势,所以老哥这有啥好的 开源项目文档管理 web 网站开源项目

4年前 评论
tu6ge-php 4年前
PHP之父一只码 (作者) (楼主) 4年前
tu6ge-php 4年前
PHP之父一只码 (作者) (楼主) 4年前

UFO @ 一只码科技
文章
9
粉丝
40
喜欢
82
收藏
183
排名:459
访问:2.0 万
私信
所有博文
社区赞助商