当使用laravel的日志类记录信息的时候

Log::info("xxxx")

发现Log类里并没有定义info 静态方法,但是仍然可以调通

原因就是__callStatic魔术方法,当静态方法不存在的时候,会调用这个魔术方法

[PHP] laravel 中__callStatic的使用_安装过程

 

 

简单的测试用例

<?php

/**
 * Class Log
 * @method static void info()
 * @see Test
 */
class Log{
    public static function __callStatic($method, $args){
        $test=new Test();
        $test->$method($args);
    }
}

class Test{
    public  function info($args){
        var_dump($args);
    }
}


Log::info("hello","world");

 

开源作品

GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
github地址:go-fly