当你想要的接口 Easywechat 没有时?

菜鸡发问:

最近做企业微信,发现 Easywechat 5.x 的 OA 部分接口缺很多。

那么问题来了:当大家想用的接口他没有时,大家一般会怎么做(除了高手直接PR等合并)

自己增加接口的话,流程应该是怎样的,有没有代码片段可以参考。

讨论数量: 1

先写实现接口的逻辑 Client,代码参考 EasyWeChat\Work\OA\Client。 先写一个 ServiceProvider,把上面Client挂到Container上去, 代码参考 EasyWeChat\Work\OA\ServiceProvider

最后在工厂注册的时候调用registerProviders,把自己写的ServiceProvider 挂上去就好了。


缺点:没有办法得到代码提示 如果想要代码提示 要自己写个Application类 继承他原先的 EasyWeChat\Work\Application,然后在类上面写phpdoc,phpstorm才能有代码提示。

想要学习,可以从 EasyWeChat\Work\Application 这个类开始看。

use Pimple\Container;
use Pimple\ServiceProviderInterface;

class ServiceProvider implements ServiceProviderInterface
{
    public function register(Container $app)
    {
        //这里key值随便写 只要别和原本的重名,会根据顶层Container挂到属性里面通过 offsetGet调用
        $app['oa_test'] = function ($app) {
            return new Client($app);
        };
    }
}
use EasyWeChat\Kernel\BaseClient;

class Client extends BaseClient
{
    public function test()
    {
        return 1;
    }
}

最终调用代码

$work = Factory::work([]);
$work->registerProviders([ServiceProvider::class]);
$work->oa_test->test();
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!