hostnet / dead-tool
死代码识别工具箱
1.3.2
2020-04-08 13:03 UTC
Requires
- php: >=7.1
- pear/console_commandline: *@dev
- pear/pear_exception: *@dev
Requires (Dev)
- hostnet/phpcs-tool: ^8.3.9
- phpunit/phpunit: ^7.0.3
README
欢迎来到死代码识别工具集,这个工具集可以与Eclipse的dead文件插件和treemap可视化工具一起使用。
配置
请在根目录中添加一个config.yml文件,内容如下
options: dsn: mysql:host=servernamehere;dbname=databasenamehere username: usernamehere password: passwordhere
您也可以将此信息放入~/.deadrc进行基于用户的配置,或者放入/etc/dead.conf进行系统级配置。
运行make来构建dead.phar。通过运行make install,可以安装dead.phar。然后系统级命令dead将可用。
您必须将一个包含表添加到数据库databasenamehere。这些名称不是必需的,但如果您不配置它们或将其作为命令行参数传递,则必须配置它们。如果您想监控多个应用程序,请使用应用程序名称而不是包含。
创建查询是
CREATE TABLE `includes` ( `function` varchar(700) NOT NULL, `count` bigint(20) NOT NULL, `first_hit` timestamp NULL default NULL, `last_hit` timestamp NULL default NULL on update CURRENT_TIMESTAMP, `added_at` timestamp NULL default NULL, `deleted_at` timestamp NULL default NULL, `changed_at` timestamp NULL default NULL, PRIMARY KEY (`function`) )
为了让PHP向测量添加数据,必须将一个文件添加到服务器(注意:这是服务器级别的,不要将此文件污染您的应用程序)。
append.php(或您的自定义名称)
<?php // push all data to the browser @ob_flush(); @flush(); /* DYNAMIC LIVE FILE ANALYSIS */ $db = mysql_connect('servernamehere','usernamehere','passwordhere'); mysql_select_db('databasenamehere',$db); $files = implode('\',\'',get_included_files()); $query = "UPDATE aurora SET count = count + 1, first_hit = if( first_hit IS NULL, NOW(), first_hit) WHERE file IN ('$files')"; mysql_query($query,$db); mysql_close($db);
然后必须更改服务器的php.ini,以便PHP在每次请求后始终执行此代码。如果您有单独的php.ini用于CLI,也请更改该文件,如果您想在测量中使用CLI版本的您的应用程序。
php.ini
[php] ... lots of directives ... ; Automatically add files after PHP document. ; https://php.ac.cn/auto-append-file auto_append_file="/your/path/to/append.php"
如果您有任何问题或需要使用工具集的指导,请随时通过hidde@hostnet.nl与我联系。