背景
筆者是兼職獨立開發的,做過一些小程式,最近接觸到之前類似淘寶客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 協議》,轉載必須註明作者和本文連結