nklatt / debugout
DebugOut for PHP,用于以传统方式跟踪代码执行:使用printlines。
Requires
- php: ^5.3 || ^7.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-21 07:17:11 UTC
README
DebugOut for PHP,用于以传统方式跟踪代码执行:使用printlines。
历史
我最初在90年代中期为C++创建了这对类,DebugOut和DynamicDebug。后来它被移植到Ada 95,现在PHP;我没有将其移植到Java,因为DebugOut类依赖于在实例化后立即调用其析构函数,而Java的垃圾收集不会这样做。(C++和Ada版本都是线程感知的;因为我还没有机会在PHP中使用线程,所以这个版本不包括这个功能。)
目的
它们允许您对代码进行配置,以便您可以跟踪执行路径到您希望的程度。DebugOut处理输出,而DynamicDebug根据配置文件控制要跟踪的哪些范围,该配置文件在每次(例如,页面加载)开始时读取。
安装
使用[Composer]安装包
composer require nklatt/debugout
使用方法
使用此包有两个步骤。
首先,您需要在希望跟踪/调试的函数/方法中使用DebugOut实例。在函数顶部添加$debugOut = new DebugOut(__FUNCTION__, '<flag>');
,然后在主体中添加对$debugOut->putLine
的调用,传递一个要输出的字符串。
其次,您需要为任何给定运行启用您希望看到的标志的日志记录。这是通过调用DynamicDebug::setEnabledFlags(array(<要启用的标志列表>));
来完成的。
请参阅tests/DebugOutTest.php以获取示例代码。
示例输出
默认
--> outputPage
--> outputHeader
--> outputNav(header)
Adding to nav: Home
Adding to nav: About
Excluding from nav: History
Excluding from nav: Executives
Excluding from nav: Careers
Adding to nav: Contact
Adding to nav: Help
<-- outputNav(header)
<-- outputHeader
--> outputBody
--> outputSidebar
--> outputNav(sidebar)
Excluding from nav: Home
Adding to nav: About
Adding to nav: History
Adding to nav: Executives
Adding to nav: Careers
Excluding from nav: Contact
Adding to nav: Help
<-- outputNav(sidebar)
<-- outputSidebar
<-- outputBody
--> outputFooter
<-- outputFooter
<-- outputPage
管道
--> outputPage
| --> outputHeader
| | --> outputNav(header)
| | | Adding to nav: Home
| | | Adding to nav: About
| | | Excluding from nav: History
| | | Excluding from nav: Executives
| | | Excluding from nav: Careers
| | | Adding to nav: Contact
| | | Adding to nav: Help
| | <-- outputNav(header)
| <-- outputHeader
| --> outputBody
| | --> outputSidebar
| | | --> outputNav(sidebar)
| | | | Excluding from nav: Home
| | | | Adding to nav: About
| | | | Adding to nav: History
| | | | Adding to nav: Executives
| | | | Adding to nav: Careers
| | | | Excluding from nav: Contact
| | | | Adding to nav: Help
| | | <-- outputNav(sidebar)
| | <-- outputSidebar
| <-- outputBody
| --> outputFooter
| <-- outputFooter
<-- outputPage
简短
->outputPage
->outputHeader
->outputNav(header)
Adding to nav: Home
Adding to nav: About
Excluding from nav: History
Excluding from nav: Executives
Excluding from nav: Careers
Adding to nav: Contact
Adding to nav: Help
<-outputNav(header)
<-outputHeader
->outputBody
->outputSidebar
->outputNav(sidebar)
Excluding from nav: Home
Adding to nav: About
Adding to nav: History
Adding to nav: Executives
Adding to nav: Careers
Excluding from nav: Contact
Adding to nav: Help
<-outputNav(sidebar)
<-outputSidebar
<-outputBody
->outputFooter
<-outputFooter
<-outputPage
遵循的标准
此项目遵循PSR 1、2和4。它还通过Packagist设置为与Composer一起使用。它使用PHPUnit进行一些基本的自动化测试。
缺点/未来计划
它不遵循PSR-3,尽管我预计它应该或至少可以。它也可能是一个Monolog扩展。
可能最明显的是,它目前使用error_log调用进行日志记录,这似乎是错误的。不确定最好的解决方案是什么——也许重构为Monolog扩展可以解决这个问题。