「3步」发布 Laravel 插件 (二)

延续上一篇「12步」制作 Laravel 插件 (一),今天我们就来完成后续的步骤:写好的插件部署到「Packagist」上。

具体只需要以下「3」个步骤:

1. 注册 Packagist 账号

What is Packagist? Packagist is the default Composer package repository. It lets you find packages and lets Composer know where to get the code from. You can use Composer to manage your project or libraries’ dependencies. You can find the packagist.org source on GitHub. 摘录:https://packagist.org/about

由于插件代码选择托管到 Github 上,所以建议直接使用 Github 账号登录。

注册成功后,就可以拿到用户名和 API Token,用于关联 Github 插件代码。

2. 提交代码到 GitHub

新建 Github 项目,最好与插件同名:

在 Laravel 项目同级路径下 packages 放着就是我们的插件代码「fanly/msgrobot」

提交代码:

提交代码后,在 Github 项目 setting 中增加「Packagist」服务

这里就是填入「Packagist」的用户名和 API Token。

3. 发布插件

只要在 Github 项目中关联了Packagist 服务,就可以在 Packagist 后台「submit」该插件

输入插件 git 地址,就可以提交了;

此时,如果没对代码进行 tag 控制,得到插件是「dev-master」版本的。所以需要对插件进行版本设置。

在「git push」代码后,继续

这样我们就发布了0.0.1版本的插件了。

测试

有了插件,我们自然需要测试,看看运行效果了。

我们选择利用 Lumen 项目试试,安装插件

在 bootstrap/app.php 引入注册插件 ServiceProvider:

$app->register(Fanly\Msgrobot\FanlyMsgrobotServiceProvider::class);

我们写一个 test,试试效果,先创建独立跳转 ActionCard 类型消息,然后给已创建的机器人对应的「access_token」钉钉群推送此消息

        // text
        $text = new Text('hello fanly/msgrobot package');
        Msgrobot::accessToken('cb36a3c3cab1242b94516d026a02d909f1611ec048d89c93cb3e1132f08b4e')            
            ->message($text)            
            ->send();        
        
        // link
        $link = new Link([            '
            text' => 'link text',            
            'title' => 'link title',            
            'picUrl' => 'http://f.hiphotos.baidu.com/image/pic/item/503d269759ee3d6db032f61b48166d224e4ade6e.jpg',            
            'messageUrl' => 'http://f.hiphotos.baidu.com/image/pic/item/503d269759ee3d6db032f61b48166d224e4ade6e.jpg'
        ]);
            
        Msgrobot::accessToken('cb36a3c3cab1242b94516d026a02d909f1611ec048d89c93cb3e1132f08b4e')
            ->message($link)            
            ->send();        
            
        // markdown
        $md = new Markdown([            
            'title' => 'link text',            
            'text' => "#### 杭州天气 @156xxxx8827\n > 9度,西北风1级,空气良89,相对温度73%\n\n> ![screenshot](http://image.jpg)\n> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n"
        ]);

        Msgrobot::accessToken('cb36a3c3cab1242b94516d026a02d909f1611ec048d89c93cb3e1132f08b4e')            
            ->message($md)            
            ->send();        
            
        // Single ActionCard
        $sac = new SingleActionCard([            
            'title' => 'link title',            
            'text' => '![screenshot](@lADOpwk3K80C0M0FoA) 
 ### 乔布斯 20 年前想打造的苹果咖啡厅 
 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划',            
            'hideAvatar' => 0,            
            'btnOrientation' => 0,            
            'singleTitle' => '阅读原文',            
            'singleURL' => 'http://f.hiphotos.baidu.com/image/pic/item/503d269759ee3d6db032f61b48166d224e4ade6e.jpg'
        ]);

        Msgrobot::accessToken('cb36a3c3cab1242b94516d026a02d909f1611ec048d89c93cb3e1132f08b4e')            
            ->message($sac)            
            ->send();        
            
        // More ActionCard
        $btns = [            
            new ActionCardBtn([                
                'title' => '内容不错',                
                'actionURL' => 'http://f.hiphotos.baidu.com/image/pic/item/503d269759ee3d6db032f61b48166d224e4ade6e.jpg'
            ]),            
            new ActionCardBtn([                
                'title' => '不感兴趣',                
                'actionURL' => 'http://f.hiphotos.baidu.com/image/pic/item/503d269759ee3d6db032f61b48166d224e4ade6e.jpg'
            ])
        ];        
        $mac = new MoreActionCard([            
        'title' => 'link title',            
        'text' => '![screenshot](@lADOpwk3K80C0M0FoA) 
 ### 乔布斯 20 年前想打造的苹果咖啡厅 
 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划',            
        'hideAvatar' => 0,            
        'btnOrientation' => 0,            
        'btns' => $btns
        ]);

        Msgrobot::accessToken('cb36a3c3cab1242b94516d026a02d909f1611ec048d89c93cb3e1132f08b4e')            
        ->message($mac)            
        ->send();        
        
        // FeedCard
        $links = [            
            new FeedCardLink([                
                'title' => "时代的火车向前开",                
                "messageURL" => "https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI",                "picURL" => "http://f.hiphotos.baidu.com/image/pic/item/503d269759ee3d6db032f61b48166d224e4ade6e.jpg"
            ]),            
            new FeedCardLink([                
                'title' => "时代的火车向前开",                
                "messageURL" => "https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI",                "picURL" => "http://f.hiphotos.baidu.com/image/pic/item/503d269759ee3d6db032f61b48166d224e4ade6e.jpg"
            ])
        ];        
                
        $fc = new FeedCard($links);

        Msgrobot::accessToken('cb36a3c3cab1242b94516d026a02d909f1611ec048d89c93cb3e1132f08b4e')            
            ->message($fc)            
            ->send();

总结

通过对这两篇文章的梳理和学习,相信我们自己对如何制作 Laravel 插件有了比较直观的了解了,至于插件代码的质量和 Laravel 技术的理解的深度,有赖于继续专研。

—此插件—更多作为学习使用

最后,今天是大年初六,祝大家今年六六六!!!

参考

1. 微信 SDK for Laravel, 基于 overtrue/wechat:https://github.com/overtrue/laravel-wechat

2. 本文章插件地址:https://packagist.org/packages/fanly/msgrobot

3. 本文章插件源代码:https://github.com/fanly/msgrobot

4. 「12步」制作 Laravel 插件 (一)

5. svn + 钉钉机器人制作简单的代码跟踪系统

「未完待续」


原文发布于微信公众号 - coding01(coding01)

原文发表时间:2018-02-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师进阶

成为一名Java高级架构师到底需要学习哪些技术?

工作1-5年,当我们向老板提出加薪的时候,或者跳槽去“捡”offer的时候,我们底气够吗?

8820
来自专栏张戈的专栏

妹子你真萌:一次心惊肉跳的服务器误删文件的恢复过程

刚在我的订阅里面看到这篇文章,在爆笑之余也让跟我一样的运维农民工们发人深省,所以转过来分享一下。妹子啊妹子,网上找的东西也不能直接照搬啊,太萌了~~哈哈! 作者...

663110
来自专栏FreeBuf

Pegasus间谍套件内部原理及流程剖析

事件介绍 这篇报道是关于最近发生的在全球范围内活跃的APT间谍软件的深度研究,Lookup团队已经捕获了样本,并且在一台全新的iOS设备上进行了深度研究。 NS...

40690
来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–项目装配(240)-24期末结算

为进行获利分析结算生产订单及项目 在此活动中,为物料S240-1和项目执行工厂的期末财务会计核算。 成本和收入只是暂时地收集在订单和项目中,在期末处理的时候这些...

44480
来自专栏BIT泽清

这些年iOS AppStore 套壳开发上架从棋牌类到彩票类在到如今的金融原油期货类App过程

下面给大家讲讲作者我“ios开发子”这些年iOS AppStore 套壳开发上架过程-从棋牌类到彩票类在到如今的金融原油期货类App-过程中所遇到的一些开发问题...

1.4K30
来自专栏Albert陈凯

2018-11-23 graph图数据库概览,经过一个星期的Demo终于看懂了这篇文章20180818图数据库概览

Knowledge Base of Relational and NoSQL Database Management Systems​db-engines.co...

71030
来自专栏Web 开发

纸上谈兵之高性能Web开发

今天一连两次被问到简历中提到的高性能Web开发方面的事,看来这种大标题很有诱惑力。

12600
来自专栏纯洁的微笑

港股上市!小米开源项目盘点

13430
来自专栏码匠的流水账

2017年终总结

又到了写年终总结的时候了。每当这个时候思绪总是翻江倒海,因为太久没有反思和总结的缘故,一年才总结一次,确实是有点久,欠的账的太多,梳理起来有点费劲。这里依旧还是...

30610
来自专栏Debian社区

Greg Kroah-Hartman批评Ubuntu发行版

Ubuntu根本就是个祸害开源社区发行版。资本家是“无利不起早”的。“新人用Ubuntu系列是最不明智的选择,因为很难利用到别人的经验。Ubuntu修改了太多东...

21850

扫码关注云+社区

领取腾讯云代金券