<?php

namespace Api\PhpServices\XhProfiler;


use Xhgui\Profiler\Profiler;

class XhProfilerService
{
    private $profiler;

    public function __construct($domain)
    {
       // 根据域名读取 配置

        $this->profiler =  new Profiler([]);
    }

    /**
     * 开启 xhprofiler 分析
     * @param $domain
     */
    public function start($domain): void
    {
        //根据域名选择开不开启 分析
        if ($this->judgeSwitch($domain) === false)
        {
            return ;
        }
        //开启 分析器，并且初始化 mongodb 实例
        $this->profiler->start();
    }

    /**
     * 结束分析 并且 根据域名存储到不同的 mongodb collection 中
     * @param $domain
     */
    public function end($domain): void
    {
        // 结束分析器，生产性能检测数据
        $profiler_data = $this->profiler->disable();

        //将数据存储到 指定mongodb中

        $mongo = new XhMongo('test');
        $mongo->insertOne($profiler_data);

//        $this->profiler->save($profiler_data);
    }


    /**
     * 开关决策器
     * @param $domain
     * @return bool
     */
    private function judgeSwitch($domain)
    {
        // 从 yaconf 获取配置 ，判断当前域名是否要开启
        return true;
    }
}