向开源大佬学习造轮子,抛砖引玉撸一个用来美团联盟等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 协议》,转载必须注明作者和本文链接
推荐文章: