调试 Debug

实验功能

我们已经努力使事情正常工作,但是可能会出现错误,导致和/或收取此功能所需的资产。如果您在使用过程中发生过事故,请通知我们。

内容 Contents

  1. 介绍 Introduction
  2. 激活 Activation
  3. 调试消息 Debug messages
  4. 添加您自己的数据收集器 Add your own data collectors

介绍 Introduction

由于将Luthier CI与这个出色的工具集成在一起,您可以将PHP Debug Bar 添加到您的应用程序中。

激活 Activation

要激活此功能(默认情况下已禁用),请转到您的 application/config/hooks.php 文件并替换:

<?php
# application/config/hooks.php

defined('BASEPATH') OR exit('No direct script access allowed');

// (...)

$hook = Luthier\Hook::getHooks();

附:

<?php
# application/config/hooks.php

defined('BASEPATH') OR exit('No direct script access allowed');

// (...)

$hook = Luthier\Hook::getHooks(
    [
        'modules' => ['debug']
    ]
);

您应该在窗口底部看到调试栏:

图片描述

调试消息 Debug messages

要添加调试消息,请使用该类的 log() 静态方法 Luthier\Debug:

# use Luthier\Debug;
Debug::log($variable, $type, $dataCollector);

$variable 要调试的变量在哪里,并且 $type 是消息的类型,可以是 'info', 'warning''error'.

例:

<?php
# application/controllers/TestController.php

use Luthier\Debug;

defined('BASEPATH') OR exit('No direct script access allowed');

class TestController extends CI_Controller
{
    public function index()
    {
        Debug::log('Welcome to Luthier-CI ' . LUTHIER_CI_VERSION . '!');
        Debug::log('Hello world!','info');
        Debug::log('This is a warning, watch out!','warning');
        Debug::log('Oh snap! an error was occurred!','error');
        $this->load->view('welcome_message');
    }
}

结果如下:

图片描述

可选 $dataCollector 参数是将存储消息的 data collector 的名称

Debug::log('Custom data collector','error','my_custom_data_collector');

如果需要存储要在下一个请求中显示的消息(例如,在提交表单后),请使用该logFlash() 方法,其语法与 log() 静态方法相同:

Debug::logFlash('Hey! this will be available in the next request','info');

在生产环境中取消激活

如果将应用程序的环境设置production 为此功能将自动禁用,并且将忽略任何调试代码

要求输出缓冲区中有数据

Luthier CI 在输出缓冲区中添加PHP Debug Bar代码,然后由 output CodeIgniter库处理并发送到浏览器。因此,必须至少使用一次函数$this->load-> view() 或明确定义输出缓冲区才能工作。该echo 语句不产生任何内部输出缓冲器。此外,使用函数停止执行脚本 dieexit 将阻止显示PHP调试栏。

添加您自己的数据收集器 ( Add your own data collectors )

可以添加自己的数据收集器并在其中存储消息。要将数据收集器添加到PHP Debug Bar实例,请使用addCollector() static方法:

# use Luthier\Debug;
Debug::addCollector(new MyCollector());

wuxiumu
121 声望10 粉丝

喜欢黑幽默