發(fā)布一個(gè)簡(jiǎn)單Composer項(xiàng)目停蕉,微信加密解密工具包

簡(jiǎn)介

  • 為了管理和今后使用愕鼓,我們需要將一些常用的類(lèi)庫(kù)打包到composer 上,這樣之后就比較方便了慧起,本文介紹如何建立一個(gè)composer 的類(lèi)庫(kù)菇晃。
  • 代碼包,我們使用 https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Message_Encryption/Technical_Plan.html 中的事例代碼蚓挤。
  • 下載地址: https://wximg.gtimg.com/shake_tv/mpwiki/cryptoDemo.zip
  • 下載后截取php 文件中的代碼:


    image.png

如果你只是想使用類(lèi)庫(kù)

  • composer require klib/wxtools 安裝工具包磺送,到你的項(xiàng)目。
  • 參考:

初始化composer

  • 首先進(jìn)入剛才下載的php目錄中灿意,ls -lh 看一下目錄中的文件和結(jié)構(gòu)估灿。

    image.png

  • 如果你使用的是PHP7,需要注意的情況缤剧,mcrypt_module_open馅袁、mcrypt_generic_init、mdecrypt_generic荒辕、mcrypt_generic_deinit汗销、mcrypt_module_close 函數(shù)已經(jīng)不建議使用犹褒,為了避免警告信息前面可以加上@ 符號(hào)進(jìn)行屏蔽,比如 @mdecrypt_generic弛针。

  • 如果你使用的是PHP7叠骑,還需要注意這個(gè)類(lèi)庫(kù)寫(xiě)的比較早,需要里面PHP的類(lèi)的構(gòu)造方法為 __construct 因?yàn)镻HP7語(yǔ)法上已經(jīng)不支持同名構(gòu)造方法了钦奋,如果是PHP5版本則不存在這個(gè)問(wèn)題座云。

  • 輸入 composer init 初始化composer 項(xiàng)目,我輸入的包名稱(chēng):klib/wxtools 付材,隨便輸入一個(gè)描述朦拖,type 輸入library ,建立后端 composer.json 大致如下

{
    "name": "klib/wxtools",
    "description": "Make wxchar msg srypto lib.",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "LinHai",
            "email": "mail@mail.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}

添加composer 的 autoload

  • 為了結(jié)構(gòu)化代碼厌衔,我先創(chuàng)建了一個(gè)新的目錄結(jié)構(gòu)璧帝,對(duì)于發(fā)布composer來(lái)書(shū)這個(gè)是可選的mkdir -p src/WxTools/Crypto ,然后把除了 demo.php composer.json 以外的文件全部拖動(dòng)到 src/WxTools/Crypto 中富寿,結(jié)構(gòu)如下:

    image.png

  • 修改 vim composer.json 主要是添加了 php >=7.0 的require睬隶,和autoload 的配置部分。

{
    "name": "klib/wxtools",
    "description": "Make wxchar msg srypto lib.",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "LinHai",
            "email": "kami@cancanyou.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=7.0"
    },
    "autoload": {
        "psr-4": {
            "KLib\\WxTools\\": "src/WxTools"
        }
    }
}

  • 之后執(zhí)行 composer install 生成vendor 目錄页徐。
    image.png
image.png

測(cè)試composer - autoload 工作情況

  • 首先把這個(gè)類(lèi)庫(kù)規(guī)范化一下苏潜,首先就是改文件名,一個(gè)文件放一個(gè)class变勇,文件名用class命名恤左,這個(gè)很好修改,改完后大致這樣:


    image.png
  • 之后給每個(gè)類(lèi)新增 namespace KLib\WxTools\Crypto ; 命名空間搀绣,并且注釋掉類(lèi)中原來(lái)的 include_once飞袋、require_once 這種引用,比如 WXBizMsgCrypt
    image.png

修改demo.php

  • 這個(gè)文件解壓縮后就有链患,之前一直沒(méi)有動(dòng)過(guò)巧鸭,放在和composer.json 同一個(gè)目錄里,我們就通過(guò)這個(gè)文件進(jìn)行功能的測(cè)試麻捻。
  • 修改方法很簡(jiǎn)單纲仍,第一、引入KLib\WxTools\Crypto命名空間贸毕。第二巷折、引入/vendor/autoload.php。第三崖咨,注釋掉原來(lái)的include_once,效果如下:


    image.png

頁(yè)面運(yùn)行demo.php

  • 簡(jiǎn)直不要太順利油吭,成功了击蹲。


    image.png

發(fā)布這個(gè)類(lèi)庫(kù)到composer公網(wǎng)

  • 為了能更方便安裝到其他項(xiàng)目中署拟,也方便其他有需要人的使用,還需要發(fā)布這個(gè)類(lèi)庫(kù)到composer倉(cāng)庫(kù)中歌豺。

  • 需要一個(gè)公網(wǎng)上可以訪(fǎng)問(wèn)的git倉(cāng)庫(kù)推穷,推薦使用https://github.com/ 在這里創(chuàng)建賬號(hào)倉(cāng)庫(kù),把這個(gè)項(xiàng)目傳上去类咧,如果不太明白什么意思請(qǐng)先百度git使用相關(guān)內(nèi)容馒铃。

  • 我們還是在php目錄,也就是composer.json 文件所在的目錄下面輸入 git init 進(jìn)行g(shù)it 初始化痕惋,它提示初始化了一個(gè)空倉(cāng)庫(kù)区宇。

    image.png

  • COPY 你github 網(wǎng)站的源地址,比如我的是:git@github.com:kami1983/klib-wxtools.git

    image.png

  • 新增一個(gè)遠(yuǎn)程源輸入命令git remote add origin git@github.com:kami1983/klib-wxtools.git (注意相對(duì)應(yīng)的git地址需要替換成你自己的不可完全照抄值戳。)

    image.png

  • 推送文件到github 上 议谷,輸入命令:

# 建立 .gitignore 文件,忽略掉vendor 這個(gè)目錄堕虹,這個(gè)目錄不需要上傳卧晓。
echo "**/vendor" >> .gitignore
# 這個(gè)文件也不需要上傳
echo "composer.lock" >> .gitignore
# 將當(dāng)前目錄及子目錄全部添加并提交到本地代碼倉(cāng)庫(kù)
git add --all;git commit -m "WxTools - v1.0" 
# 將代碼直接推送到遠(yuǎn)程倉(cāng)庫(kù)
git push origin master:master
  • 去git hub 上看看有沒(méi)有文件,文件全部存在赴捞。


    image.png
  • 給當(dāng)前軟件版本打標(biāo)簽并上傳到github

git tag -a "v1.0.1" -m "Wxtool initial version."
git push origin v1.0.1
image.png
  • 上推后github 上也有體現(xiàn)逼裆,如果沒(méi)有說(shuō)明上推失敗。


    image.png

登錄packagist

  • 登錄https://packagist.org/ 如果沒(méi)有賬號(hào)就先創(chuàng)建一個(gè)赦政。
  • 點(diǎn)擊導(dǎo)航欄上面的 Submit 按鈕準(zhǔn)備提交倉(cāng)庫(kù):


    image.png
  • 提交倉(cāng)庫(kù) git@github.com:kami1983/klib-wxtools.git (這里請(qǐng)對(duì)應(yīng)替換)
  • image.png
  • 提交完成后大致變成這個(gè)傻樣子胜宇,下面紅色的提示說(shuō)這個(gè)包不會(huì)自動(dòng)更新需要配置自動(dòng)更新,這個(gè)和需要使用GitHook的鉤子來(lái)實(shí)現(xiàn)昼钻。


    image.png

配置包文件的自動(dòng)更新

  • 首選閱讀the doc 這個(gè)很重要掸屡,提取出重要的 https://packagist.org/api/github?username=XXXX 地址信息。

    image.png

  • the docs 的內(nèi)容大致如下

    image.png

  • 先獲取Packagist網(wǎng)站上的Api Token 點(diǎn)擊 用戶(hù)名->Profile然评,COPY到剪切板仅财,然后切換回github 。

image.png
  • github 上點(diǎn)擊 settings -> webhook
    image.png
  • 如實(shí)填寫(xiě)碗淌,這些信息盏求,Packagist 上都有,最后點(diǎn)擊 Add webhook
    image.png

上推一個(gè)新版本測(cè)試一下

git tag -a "v1.0.2" -m "New  version."
git push origin v1.0.2
  • 自動(dòng)同步完成WebHook亿眠,工作正常碎罚,此時(shí)瀏覽 packagist.org 大致如下:


    image.png

結(jié)束

  • 感謝閱讀。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纳像,一起剝皮案震驚了整個(gè)濱河市荆烈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖憔购,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宫峦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡玫鸟,警方通過(guò)查閱死者的電腦和手機(jī)导绷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)屎飘,“玉大人妥曲,你說(shuō)我怎么就攤上這事∏展海” “怎么了檐盟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)肮雨。 經(jīng)常有香客問(wèn)我遵堵,道長(zhǎng),這世上最難降的妖魔是什么怨规? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任陌宿,我火速辦了婚禮,結(jié)果婚禮上波丰,老公的妹妹穿的比我還像新娘壳坪。我一直安慰自己,他們只是感情好掰烟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布爽蝴。 她就那樣靜靜地躺著,像睡著了一般纫骑。 火紅的嫁衣襯著肌膚如雪蝎亚。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天先馆,我揣著相機(jī)與錄音发框,去河邊找鬼。 笑死煤墙,一個(gè)胖子當(dāng)著我的面吹牛梅惯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仿野,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼铣减,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了脚作?” 一聲冷哼從身側(cè)響起葫哗,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后劣针,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體桨螺,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年酿秸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魏烫。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辣苏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哄褒,到底是詐尸還是另有隱情稀蟋,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布呐赡,位于F島的核電站退客,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏链嘀。R本人自食惡果不足惜萌狂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怀泊。 院中可真熱鬧茫藏,春花似錦、人聲如沸霹琼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)枣申。三九已至售葡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忠藤,已是汗流浹背挟伙。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熄驼,地道東北人像寒。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瓜贾,于是被迫代替她去往敵國(guó)和親诺祸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容