Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲1.06MB] [CPU: ▲0.78ms] Passed 4 tests
Analyzing server-side resources used by XPoster - Share to Twitter/X from WordPress
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.56 ▲1.10 | 47.69 ▲6.97 |
Dashboard /wp-admin | 4.40 ▲1.09 | 52.19 ▲8.82 |
Posts /wp-admin/edit.php | 4.45 ▲1.09 | 58.29 ▼1.33 |
Add New Post /wp-admin/post-new.php | 6.94 ▲1.05 | 91.04 ▼11.35 |
Media Library /wp-admin/upload.php | 4.25 ▲1.02 | 43.50 ▲9.68 |
Server storage [IO: ▲2.64MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
There were no storage issued detected upon installing this plugin
Filesystem: 381 new files
Database: no new tables, 27 new options
New WordPress options |
---|
db_upgraded |
jd_twit_custom_url |
newlink-published-text |
wp_to_twitter_version |
jd_twit_blogroll |
jd_post_excerpt |
use_dynamic_analytics |
jd_shortener |
jd_max_characters |
widget_recent-posts |
... |
Browser metrics Passed 4 tests
This is an overview of browser requirements for XPoster - Share to Twitter/X from WordPress
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,805 ▲43 | 14.25 ▼0.10 | 1.76 ▲0.11 | 43.93 ▲3.84 |
Dashboard /wp-admin | 2,198 ▲18 | 5.58 ▼0.10 | 93.83 ▲7.16 | 79.45 ▲35.32 |
Posts /wp-admin/edit.php | 2,115 ▲12 | 1.96 ▲0.02 | 35.08 ▼7.35 | 29.99 ▼10.79 |
Add New Post /wp-admin/post-new.php | 6,359 ▲4,833 | 26.11 ▲2.82 | 1,015.62 ▲434.83 | 66.79 ▲16.17 |
Media Library /wp-admin/upload.php | 1,418 ▲18 | 4.23 ▲0.03 | 97.80 ▲4.17 | 63.73 ▲22.03 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
- Zombie WordPress options were found after uninstall: 7 options
- widget_theysaidso_widget
- can_compress_scripts
- db_upgraded
- theysaidso_admin_options
- widget_recent-posts
- no-analytics
- widget_recent-comments
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
The smoke test was a success, however most plugin functionality was not tested
SRP 50% 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 fix the following items
- 129× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Promise\\TaskQueueInterface' not found in wp-content/plugins/wp-to-twitter/vendor/guzzlehttp/promises/src/TaskQueue.php:18
- > PHP Fatal error
Uncaught Error: Class 'WpToTwitter_Vendor\oweh\\TwitterApi\\AbstractController' not found in wp-content/plugins/wp-to-twitter/vendor_prefixed/vendor/noweh/twitter-api-v2-php/src/TweetBookmarks.php:11
- > PHP Fatal error
Uncaught Error: Class 'Abraham\\TwitterOAuth\\Config' not found in wp-content/plugins/wp-to-twitter/vendor/abraham/twitteroauth/src/TwitterOAuth.php:27
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wp-to-twitter/vendor/guzzlehttp/psr7/src/InflateStream.php:20
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\MessageInterface' not found in wp-content/plugins/wp-to-twitter/vendor/psr/http-message/src/ResponseInterface.php:20
- > PHP Fatal error
Uncaught Error: Interface 'WpToTwitter_Vendor\\Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wp-to-twitter/vendor_prefixed/vendor/guzzlehttp/psr7/src/LimitStream.php:10
- > PHP Fatal error
Uncaught Error: Class 'WpToTwitter_Vendor\oweh\\TwitterApi\\AbstractController' not found in wp-content/plugins/wp-to-twitter/vendor_prefixed/vendor/noweh/twitter-api-v2-php/src/Timeline.php:10
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\RequestFactoryInterface' not found in wp-content/plugins/wp-to-twitter/vendor/guzzlehttp/psr7/src/HttpFactory.php:26
- > PHP Fatal error
Uncaught Error: Class 'Noweh\\TwitterApi\\Test\\BaseTestCase' not found in wp-content/plugins/wp-to-twitter/vendor/noweh/twitter-api-v2-php/test/TweetsTest.php:9
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Http\\Message\\StreamInterface' not found in wp-content/plugins/wp-to-twitter/vendor/guzzlehttp/psr7/src/PumpStream.php:19
- > 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 86% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
Attributes that require attention:
- Tags: Too many tags (12 tag instead of maximum 10); only the first 5 tags are used in your directory listing
wp-to-twitter/wp-to-twitter.php 77% from 13 tests
"XPoster - Share to Twitter/X from WordPress" version 4.1.2's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
It is important to fix the following:
- Description: Please don't use more than 140 characters for the plugin description (currently 142 characters long)
- Domain Path: You should use only dashes and lowercase characters for the domain path ("lang")
- Domain Path: Prefix the domain path with a forward slash character ("/lang")
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
No dangerous file extensions were detected34,948 lines of code in 350 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 299 | 3,645 | 15,722 | 27,386 |
Markdown | 22 | 1,561 | 0 | 4,392 |
JSON | 16 | 0 | 0 | 2,264 |
CSS | 2 | 126 | 0 | 587 |
JavaScript | 4 | 10 | 18 | 163 |
XML | 4 | 16 | 4 | 78 |
YAML | 1 | 10 | 0 | 42 |
reStructuredText | 2 | 64 | 120 | 36 |
PHP code Passed 2 tests
A short review of cyclomatic complexity and code structure
There were no cyclomatic complexity issued detected
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.45 |
Average class complexity | 12.57 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 98.00 |
Average method complexity | 2.66 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 27.00 |
Code structure | ||
---|---|---|
Namespaces | 30 | |
Interfaces | 52 | |
Traits | 6 | |
Classes | 220 | |
▷ Abstract classes | 6 | 2.73% |
▷ Concrete classes | 214 | 97.27% |
▷ Final classes | 70 | 32.71% |
Methods | 1,923 | |
▷ Static methods | 325 | 16.90% |
▷ Public methods | 1,578 | 82.06% |
▷ Protected methods | 42 | 2.18% |
▷ Private methods | 303 | 15.76% |
Functions | 331 | |
▷ Named functions | 144 | 43.50% |
▷ Anonymous functions | 187 | 56.50% |
Constants | 163 | |
▷ Global constants | 10 | 6.13% |
▷ Class constants | 153 | 93.87% |
▷ Public constants | 124 | 81.05% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
7 compressed PNG files occupy 0.01MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
images/logo.png | 4.69KB | 2.54KB | ▼ 45.79% |
images/logo-black.png | 0.34KB | 0.53KB | 0.00% |
images/Error.png | 0.61KB | 0.50KB | ▼ 17.07% |
images/image.png | 0.92KB | 1.05KB | 0.00% |
images/logo-white.png | 0.38KB | 0.53KB | 0.00% |