向开源大佬学习造轮子,抛砖引玉撸一个用来美团联盟等CPS淘客的PHP SDK。
背景
笔者是兼职独立开发的,做过一些小程序,最近接触到之前类似淘宝客CPS的另一领域本地化生活的非之前电商的CPS,比如外卖,酒店,社区团购等相关的CPS,美团联盟这块官方只有接口文档,并没有SDK,所以就想自己开发一个的同时再熟练下PHP扩展包开发。
然后基于扩展包仅支持美团联盟过于单调,就想能不能做一个像easywechat哪有既方便易用文档又完善的淘客SDK呢,查找github都是零零散散的,要么CPS种类不全,要么文档糟糕,更新赶不上去,显然是这个轮子有一定的价值去造。
所以想弥补这方面的不足,众人拾柴火焰高,搞一个easyTaoke的仓库,率先整上一个新的相对稀缺的美团的SDK到github,进行抛砖引玉。
撸了两个小时已online, github.com/CoderOpen/EasyTaoKe
实操过程
制作composer包其实整体上并不是很难,可以参考大佬的文章。
简单地说,先按照一定规范,使用脚手架生成包目录
- 填充好composer.json中的namespace等自动加载,已经依赖的其他composer包,比如本SDK使用了
guzzle
。 - 开发相关包功能逻辑
- 单元测试以及包功能测试
- 提交代码到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底层实现原理,没人看没人能从中学到东西,我觉得也是浪费大家的时间。
附原文如下:
传送门 github.com/CoderOpen/EasyTaoKe
想撸一个比较完善,文档齐全的CPS PHP开源SDK,像easywechat大佬学习,于是命名为easyTaoke,感兴趣的可以加我微信phpcoder666一起搞事情!
SDK本身意在开源哈,比较规范,比现有的sdk文档齐全易用
原链接:博客:昨晚发了两小时学习了PHP composer包制作,然后撸了一个用来CPS赚钱...
本作品采用《CC 协议》,转载必须注明作者和本文链接
要让别人使用,还需要有详细的文档,以及测试用例
@tu6ge-php 是的,其他的都有了的,要想让别人用,必须得从其他方面突出优势,所以老哥这有啥好的 开源项目文档管理web网站开源项目
:+1:
谢谢分享