Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Install script ran successfully
Server metrics [RAM: ▲0.09MB] [CPU: ▼2.33ms] Passed 4 tests
Analyzing server-side resources used by WP Documenter
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.47 ▲0.01 | 34.26 ▼1.15 |
Dashboard /wp-admin | 3.42 ▲0.12 | 46.13 ▲0.42 |
Posts /wp-admin/edit.php | 3.54 ▲0.18 | 49.86 ▲4.66 |
Add New Post /wp-admin/post-new.php | 6.00 ▲0.12 | 83.47 ▼8.94 |
Media Library /wp-admin/upload.php | 3.35 ▲0.12 | 33.66 ▲0.36 |
Page Template Descriptions /wp-admin/admin.php?page=wp-documenter-page-templates | 3.34 | 33.30 |
Custom Post Type Descriptions /wp-admin/admin.php?page=wp-documenter-cpts | 3.31 | 37.22 |
Plugin Descriptions /wp-admin/admin.php?page=wp-documenter-plugins | 3.32 | 30.48 |
Print Settings /wp-admin/admin.php?page=wp-documenter-pdf-settings | 3.31 | 35.26 |
Server storage [IO: ▲19.89MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
This plugin installed successfully
Filesystem: 663 new files
Database: no new tables, 6 new options
New WordPress options |
---|
theysaidso_admin_options |
widget_theysaidso_widget |
widget_recent-comments |
can_compress_scripts |
db_upgraded |
widget_recent-posts |
Browser metrics Passed 4 tests
Checking browser requirements for WP Documenter
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,821 ▲34 | 14.67 ▲0.03 | 1.63 ▼0.29 | 35.94 ▼2.09 |
Dashboard /wp-admin | 2,226 ▲49 | 5.70 ▲0.02 | 93.83 ▼2.91 | 43.40 ▲0.39 |
Posts /wp-admin/edit.php | 2,128 ▲28 | 2.03 ▲0.08 | 39.77 ▼0.78 | 35.31 ▼2.58 |
Add New Post /wp-admin/post-new.php | 1,551 ▲25 | 22.82 ▼0.36 | 695.06 ▲73.55 | 48.23 ▼4.12 |
Media Library /wp-admin/upload.php | 1,428 ▲31 | 4.25 ▲0.03 | 99.61 ▼0.33 | 42.75 ▲0.62 |
Page Template Descriptions /wp-admin/admin.php?page=wp-documenter-page-templates | 821 | 2.00 | 25.16 | 30.17 |
Custom Post Type Descriptions /wp-admin/admin.php?page=wp-documenter-cpts | 866 | 1.99 | 23.69 | 33.11 |
Plugin Descriptions /wp-admin/admin.php?page=wp-documenter-plugins | 864 | 1.97 | 22.75 | 28.09 |
Print Settings /wp-admin/admin.php?page=wp-documenter-pdf-settings | 862 | 2.00 | 28.42 | 31.79 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
- This plugin does not fully uninstall, leaving 6 options in the database
- db_upgraded
- widget_theysaidso_widget
- theysaidso_admin_options
- widget_recent-posts
- widget_recent-comments
- can_compress_scripts
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
The smoke test was a success, however most plugin functionality was not tested
SRP 0% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please take a closer look at the following
- 2× GET requests to PHP files return non-empty strings:
- > /wp-content/plugins/wp-documentor/includes/dompdf-pre7/dompdf/lib/php-css-parser/tests/quickdump.php
- > /wp-content/plugins/wp-documentor/includes/dompdf/lib/php-css-parser/tests/quickdump.php
- 269× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'Sabberworm\\CSS\\Renderable' not found in wp-content/plugins/wp-documentor/includes/dompdf/lib/php-css-parser/lib/Sabberworm/CSS/Comment/Comment.php:7
- > PHP Fatal error
Uncaught Error: Interface 'Svg\\Surface\\SurfaceInterface' not found in wp-content/plugins/wp-documentor/includes/dompdf/lib/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php:14
- > PHP Fatal error
Uncaught Error: Class 'FontLib\\Table\\Table' not found in wp-content/plugins/wp-documentor/includes/dompdf-pre7/dompdf/lib/php-font-lib/src/FontLib/Table/Type/name.php:19
- > PHP Fatal error
Uncaught Error: Class 'FontLib\\Table\\Table' not found in wp-content/plugins/wp-documentor/includes/dompdf/lib/php-font-lib/src/FontLib/Table/Type/maxp.php:17
- > PHP Fatal error
Uncaught Error: Class 'Dompdf\\FrameDecorator\\AbstractFrameDecorator' not found in wp-content/plugins/wp-documentor/includes/dompdf-pre7/dompdf/src/FrameDecorator/Table.php:21
- > PHP Fatal error
Uncaught Error: Interface 'Sabberworm\\CSS\\Renderable' not found in wp-content/plugins/wp-documentor/includes/dompdf-pre7/dompdf/lib/php-css-parser/lib/Sabberworm/CSS/CSSList/CSSList.php:15
- > PHP Fatal error
Uncaught Error: Class 'FontLib\\Table\\Table' not found in wp-content/plugins/wp-documentor/includes/dompdf-pre7/dompdf/lib/php-font-lib/src/FontLib/Table/Type/cmap.php:17
- > PHP Fatal error
Uncaught Error: Class 'Dompdf\\Renderer\\AbstractRenderer' not found in wp-content/plugins/wp-documentor/includes/dompdf-pre7/dompdf/src/Renderer/Inline.php:19
- > PHP Fatal error
Uncaught Error: Class 'FontLib\\BinaryStream' not found in wp-content/plugins/wp-documentor/includes/dompdf/lib/php-font-lib/src/FontLib/TrueType/Collection.php:21
- > PHP Fatal error
Uncaught Error: Class 'Sabberworm\\CSS\\RuleSet\\RuleSet' not found in wp-content/plugins/wp-documentor/includes/dompdf-pre7/dompdf/lib/php-css-parser/lib/Sabberworm/CSS/RuleSet/DeclarationBlock.php:18
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine on the user side
Optimizations
Plugin configuration 86% from 29 tests
readme.txt Passed 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
4 plugin tags: wordpress documenter, website documenter, document, documenter
wp-documentor/wpdoc-main.php 69% from 13 tests
The primary PHP file in "WP Documenter" version 1.1.0 is used by WordPress to initiate all plugin functionality
It is important to fix the following:
- Main file name: The principal plugin file should be the same as the plugin slug ("wp-documentor.php" instead of "wpdoc-main.php")
- Domain Path: Please prefix the domain path with a forward slash character ("/languages")
- Domain Path: Note that the domain path follows the same naming rules as the domain name, using only dashes and lowercase characters ("languages")
- Text Domain: If you choose to specify the text domain, it must be the same as the plugin slug; optional since WordPress version 4.6
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Everything looks great! No dangerous files found in this plugin66,543 lines of code in 369 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 287 | 14,527 | 28,131 | 63,004 |
Markdown | 9 | 493 | 0 | 1,775 |
CSS | 46 | 232 | 106 | 1,105 |
JSON | 9 | 0 | 0 | 270 |
XML | 8 | 4 | 2 | 227 |
YAML | 7 | 28 | 5 | 129 |
HTML | 1 | 0 | 0 | 17 |
SVG | 2 | 0 | 0 | 16 |
PHP code 50% from 2 tests
This is a very shot review of cyclomatic complexity and code structure
These items need your attention
- Method cyclomatic complexity has to be reduced to less than 100 (currently 652)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.42 |
Average class complexity | 35.44 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 797.00 |
Average method complexity | 4.30 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 652.00 |
Code structure | ||
---|---|---|
Namespaces | 34 | |
Interfaces | 11 | |
Traits | 0 | |
Classes | 364 | |
▷ Abstract classes | 24 | 6.59% |
▷ Concrete classes | 340 | 93.41% |
▷ Final classes | 0 | 0.00% |
Methods | 4,049 | |
▷ Static methods | 182 | 4.49% |
▷ Public methods | 3,471 | 85.72% |
▷ Protected methods | 402 | 9.93% |
▷ Private methods | 176 | 4.35% |
Functions | 34 | |
▷ Named functions | 4 | 11.76% |
▷ Anonymous functions | 30 | 88.24% |
Constants | 335 | |
▷ Global constants | 6 | 1.79% |
▷ Class constants | 329 | 98.21% |
▷ Public constants | 329 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
2 PNG files occupy 0.00MB with 0.00MB in potential savings
Potential savings
Compression of 2 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
includes/dompdf-pre7/dompdf/lib/res/broken_image.png | 0.60KB | 0.47KB | ▼ 22.33% |
includes/dompdf/lib/res/broken_image.png | 0.60KB | 0.47KB | ▼ 22.33% |