ThinkPHP RPC 之 JsonRPC

RPC(Remote Procedure Call Protocol)——远程过程调用协议。

服务端使 Controller 继承 JsonRpcController 即可。

客户端要先使用 vendor 加载插件后再调用。

服务端代码

namespace Test\Controller;
use Think\Controller\JsonRpcController;

class HelloJsonRPCController extends JsonRpcController {
    public function hello($name) {
        return "Hello, {$name}! (by jsonRPC)";
    }
}
ThinkPHP 延迟更新

当需要频繁更新一些统计字段的时候,为了减少数据库压力,ThinkPHP 提供了延迟更新的功能。

$coin = D('test_coin');
$coin->where(1)->setLazyInc('coin', 100, 10);
return $coin->find(1);
Thinkphp3.2 + log4php

参考文章 这篇博客 设置后,执行出错: Class 'Logger' not found

  1. 移动 log4php230 目录到 /ThinkPHP/Library/Vendor/log4php230

  2. Log4php.class.php 修改为如下内容

    namespace Org\Util;
    
    class Log4php {
        static public function init($logger){
            vendor('log4php.Logger');
    
            $path = './ThinkPHP/Library/Vendor/log4php/';
            \Logger::configure($path.'config.xml');
            if(\Logger::exists($logger)){
                return \Logger::getLogger($logger);
            }else{
                return false;
            }
        }
    }