Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
You still need to fix the following installer errors
- Install procedure had errors
- > Deprecated in wp-content/plugins/poolparty-thesaurus/classes/PPThesaurus.class.php+175
Non-static method PPThesaurus::installARC2() should not be called statically
Server metrics [RAM: ▲0.94MB] [CPU: ▼1.48ms] Passed 4 tests
An overview of server-side resources used by PoolParty Thesaurus
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.60 ▲2.13 | 58.54 ▲13.20 |
Dashboard /wp-admin | 4.36 ▲1.05 | 67.69 ▲16.94 |
Posts /wp-admin/edit.php | 4.40 ▲1.04 | 64.10 ▲7.90 |
Add New Post /wp-admin/post-new.php | 6.57 ▲0.68 | 68.89 ▼41.08 |
Media Library /wp-admin/upload.php | 4.22 ▲0.99 | 52.17 ▲14.06 |
PoolParty Thesaurus /wp-admin/options-general.php?page=pp-thesaurus | 5.33 | 56.67 |
Server storage [IO: ▲1.40MB] [DB: ▲0.00MB] Passed 3 tests
How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 351 new files
Database: no new tables, 9 new options
New WordPress options |
---|
PPThesaurus |
theysaidso_admin_options |
db_upgraded |
widget_theysaidso_widget |
recovery_mode_email_last_sent |
can_compress_scripts |
widget_pp_thesaurus_sidebar_search |
widget_recent-posts |
widget_recent-comments |
Browser metrics Passed 4 tests
Checking browser requirements for PoolParty Thesaurus
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,782 ▲21 | 13.45 ▼0.48 | 9.89 ▲8.17 | 22.29 ▼20.01 |
Dashboard /wp-admin | 2,202 ▲25 | 5.62 ▼0.04 | 93.93 ▲4.88 | 47.16 ▲2.89 |
Posts /wp-admin/edit.php | 2,107 ▲7 | 1.94 ▼0.01 | 37.54 ▼5.45 | 36.85 ▼1.97 |
Add New Post /wp-admin/post-new.php | 45 ▼1,483 | 0.42 ▼22.55 | 0.08 ▼691.16 | 11.47 ▼43.74 |
Media Library /wp-admin/upload.php | 1,401 ▲1 | 4.27 ▲0.04 | 107.83 ▲0.00 | 68.59 ▲21.57 |
PoolParty Thesaurus /wp-admin/options-general.php?page=pp-thesaurus | 708 | 1.12 | 7.94 | 24.84 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
It is recommended to fix the following
- This plugin cannot be uninstalled
- > Notice in wp-content/plugins/poolparty-thesaurus/uninstall.php+8
Constant PP_THESAURUS_PLUGIN_DIR already defined
- Zombie WordPress options detected upon uninstall: 8 options
- widget_theysaidso_widget
- db_upgraded
- widget_pp_thesaurus_sidebar_search
- recovery_mode_email_last_sent
- can_compress_scripts
- widget_recent-comments
- theysaidso_admin_options
- widget_recent-posts
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
Almost there, just fix the following server-side errors
- > GET request to /wp-admin/options-general.php?page=pp-thesaurus
- > Error in wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_Store.php+771
Uncaught Error: Call to a member function escape() on null in wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_Store.php:771
Stack trace:
#0 wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_StoreQueryHandler.php(39): ARC2_Store->getTermID()
#1 wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_StoreSelectQueryHandler.php(1099): ARC2_StoreQueryHandler->getTermID()
#2 wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_StoreSelectQueryHandler.php(1071): ARC2_StoreSelectQueryHandler->getTriplePatternSQL()
#3 wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_StoreSelectQueryHandler.php(1081): ARC2_StoreSelectQueryHandler->getPatternSQL()
#4 wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_StoreSelectQueryHandler.php(1072): ARC2_StoreSelectQueryHandler->getDefaultPatternSQL()
#5 wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_StoreSelectQueryHandler.php(
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Almost there! Just fix the following items
- 1× PHP files output text when accessed directly:
- > /wp-content/plugins/poolparty-thesaurus/pp-thesaurus.php
- 102× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'ARC2' not found in wp-content/plugins/poolparty-thesaurus/arc/store/ARC2_StoreSPOGLoader.php:11
- > PHP Fatal error
Uncaught Error: Class 'Tests\\ARC2_TestCase' not found in wp-content/plugins/poolparty-thesaurus/arc/tests/unit/ARC2_getFormatTest.php:9
- > PHP Warning
require_once(wp-content/plugins/poolparty-thesaurus/arc/tests/../vendor/autoload.php): failed to open stream: No such file or directory in wp-content/plugins/poolparty-thesaurus/arc/tests/bootstrap.php on line 3
- > PHP Fatal error
Uncaught Error: Class 'ARC2' not found in wp-content/plugins/poolparty-thesaurus/arc/tests/ARC2_TestHandler.php:11
- > PHP Fatal error
Uncaught Error: Class 'ARC2' not found in wp-content/plugins/poolparty-thesaurus/arc/parsers/ARC2_TurtleParser.php:12
- > PHP Fatal error
Uncaught Error: Class 'ARC2' not found in wp-content/plugins/poolparty-thesaurus/arc/serializers/ARC2_RDFJSONSerializer.php:10
- > PHP Fatal error
Uncaught Error: Class 'ARC2' not found in wp-content/plugins/poolparty-thesaurus/arc/parsers/ARC2_CBJSONParser.php:12
- > PHP Fatal error
Uncaught Error: Class 'ARC2' not found in wp-content/plugins/poolparty-thesaurus/arc/serializers/ARC2_TurtleSerializer.php:12
- > PHP Fatal error
Uncaught Error: Class 'ARC2' not found in wp-content/plugins/poolparty-thesaurus/arc/extractors/ARC2_MicroformatsExtractor.php:11
- > PHP Fatal error
require_once(): Failed opening required 'wp-content/plugins/poolparty-thesaurus/arc/tests/../vendor/autoload.php' (include_path='.:/usr/share/php') in wp-content/plugins/poolparty-thesaurus/arc/tests/bootstrap.php on line 3
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine, but this is not an exhaustive test
Optimizations
Plugin configuration 90% from 29 tests
readme.txt Passed 16 tests
You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
5 plugin tags: rdf, thesaurus, glossary, poolparty, skos
poolparty-thesaurus/pp-thesaurus.php 77% from 13 tests
The primary PHP file in "PoolParty Thesaurus" version 2.8 is used by WordPress to initiate all plugin functionality
The following require your attention:
- Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("poolparty-thesaurus.php" instead of "pp-thesaurus.php")
- Description: Keep the plugin description shorter than 140 characters (currently 197 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Good job! No executable or dangerous file extensions detected26,996 lines of code in 253 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 116 | 3,667 | 3,804 | 22,791 |
XML | 25 | 84 | 6 | 1,895 |
JavaScript | 4 | 55 | 24 | 622 |
YAML | 11 | 97 | 10 | 447 |
PO File | 2 | 120 | 136 | 375 |
Ruby | 81 | 28 | 22 | 353 |
Markdown | 4 | 83 | 0 | 180 |
CSS | 3 | 31 | 12 | 146 |
JSON | 2 | 9 | 0 | 132 |
Ant | 1 | 5 | 0 | 17 |
Dockerfile | 1 | 8 | 5 | 15 |
make | 1 | 3 | 0 | 13 |
INI | 1 | 2 | 21 | 8 |
SQL | 1 | 0 | 0 | 2 |
PHP code Passed 2 tests
This is a very shot review of cyclomatic complexity and code structure
There are no cyclomatic complexity problems detected for this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.46 |
Average class complexity | 38.27 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 476.00 |
Average method complexity | 3.78 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 73.00 |
Code structure | ||
---|---|---|
Namespaces | 8 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 109 | |
▷ Abstract classes | 3 | 2.75% |
▷ Concrete classes | 106 | 97.25% |
▷ Final classes | 0 | 0.00% |
Methods | 1,480 | |
▷ Static methods | 66 | 4.46% |
▷ Public methods | 1,367 | 92.36% |
▷ Protected methods | 111 | 7.50% |
▷ Private methods | 2 | 0.14% |
Functions | 17 | |
▷ Named functions | 9 | 52.94% |
▷ Anonymous functions | 8 | 47.06% |
Constants | 50 | |
▷ Global constants | 39 | 78.00% |
▷ Class constants | 11 | 22.00% |
▷ Public constants | 11 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
4 PNG files occupy 0.05MB with 0.03MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
css/thesaurus.png | 50.73KB | 0.12KB | ▼ 99.77% |
js/unitip/TipPoint.png | 1.11KB | 0.60KB | ▼ 45.56% |
js/unitip/TipCap.png | 0.65KB | 0.41KB | ▼ 36.73% |
js/unitip/TipMid.png | 0.17KB | 0.11KB | ▼ 31.58% |