Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Installer ran successfully
Server metrics [RAM: ▲0.01MB] [CPU: ▼2.94ms] Passed 4 tests
Server-side resources used by IC Importer - Import posts and pages from google spreadsheet
No issues were detected with server-side resource usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.47 ▲0.01 | 40.18 ▲1.05 |
Dashboard /wp-admin | 3.32 ▲0.02 | 43.77 ▼3.43 |
Posts /wp-admin/edit.php | 3.37 ▲0.01 | 43.82 ▼0.86 |
Add New Post /wp-admin/post-new.php | 5.90 ▲0.01 | 84.32 ▼6.12 |
Media Library /wp-admin/upload.php | 3.24 ▲0.01 | 33.26 ▼1.35 |
Server storage [IO: ▲6.42MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
The plugin installed successfully
Filesystem: 1,011 new files
Database: no new tables, 6 new options
New WordPress options |
---|
widget_recent-posts |
can_compress_scripts |
widget_recent-comments |
db_upgraded |
theysaidso_admin_options |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
IC Importer - Import posts and pages from google spreadsheet: an overview of browser usage
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,812 ▲66 | 13.31 ▼1.44 | 1.64 ▼0.19 | 43.97 ▼0.77 |
Dashboard /wp-admin | 2,218 ▲30 | 5.77 ▲0.88 | 99.05 ▼17.11 | 38.52 ▼6.33 |
Posts /wp-admin/edit.php | 2,101 ▲9 | 2.00 ▼0.05 | 33.89 ▼3.90 | 34.39 ▲2.01 |
Add New Post /wp-admin/post-new.php | 1,538 ▲24 | 18.08 ▲0.42 | 637.04 ▼50.97 | 56.28 ▲6.45 |
Media Library /wp-admin/upload.php | 1,400 ▲9 | 4.18 ▼0.01 | 94.81 ▼3.40 | 41.25 ▼4.83 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
- Zombie WordPress options detected upon uninstall: 6 options
- widget_theysaidso_widget
- theysaidso_admin_options
- db_upgraded
- can_compress_scripts
- widget_recent-comments
- widget_recent-posts
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please fix the following items
- 1× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/ic-importer/inc/lib/vendor/markbaker/matrix/buildPhar.php
- 337× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'HTMLPurifier_HTMLModule' not found in wp-content/plugins/ic-importer/inc/lib/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Scripting.php:16
- > PHP Fatal error
Uncaught Error: Class 'ZipStream\\Stream' not found in wp-content/plugins/ic-importer/inc/lib/vendor/maennchen/zipstream-php/src/DeflateStream.php:6
- > PHP Fatal error
Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical\\Distributions\\GammaBase' not found in wp-content/plugins/ic-importer/inc/lib/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Statistical/Distributions/Gamma.php:8
- > PHP Warning
include(wp-content/plugins/ic-importer/inc/lib/vendor/markbaker/complex/examples/../vendor/autoload.php): failed to open stream: No such file or directory in wp-content/plugins/ic-importer/inc/lib/vendor/markbaker/complex/examples/testFunctions.php on line 5
- > PHP Fatal error
Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\DefinedName' not found in wp-content/plugins/ic-importer/inc/lib/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/NamedFormula.php:7
- > PHP Fatal error
Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Writer\\Ods\\WriterPart' not found in wp-content/plugins/ic-importer/inc/lib/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Settings.php:8
- > PHP Fatal error
Uncaught Error: Class 'HTMLPurifier_AttrTransform' not found in wp-content/plugins/ic-importer/inc/lib/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php:6
- > PHP Fatal error
Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Cell\\DefaultValueBinder' not found in wp-content/plugins/ic-importer/inc/lib/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php:11
- > PHP Fatal error
Uncaught Error: Class 'HTMLPurifier_Strategy' not found in wp-content/plugins/ic-importer/inc/lib/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Strategy/FixNesting.php:32
- > PHP Fatal error
Uncaught Error: Class 'PhpOffice\\PhpSpreadsheet\\Shared\\Trend\\BestFit' not found in wp-content/plugins/ic-importer/inc/lib/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/LinearBestFit.php:5
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
No browser errors were detected
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
Attributes that need to be fixed:
- Tags: You are using too many tags: 14 tag instead of maximum 10
ic-importer/ic-importer.php Passed 13 tests
"IC Importer - Import posts and pages from google spreadsheet" version 1.0.0's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
70 characters long description:
The most powerful solution for import posts and pages from spreadsheet
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
Success! There were no dangerous files found in this plugin96,278 lines of code in 816 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 765 | 19,096 | 50,402 | 93,095 |
Markdown | 22 | 506 | 0 | 1,375 |
JSON | 13 | 0 | 0 | 1,171 |
YAML | 5 | 51 | 0 | 237 |
CSS | 3 | 37 | 17 | 165 |
JavaScript | 3 | 16 | 11 | 129 |
XML | 4 | 20 | 4 | 105 |
INI | 1 | 1 | 1 | 1 |
PHP code 0% from 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
The following items need your attention
- Class cyclomatic complexity has to be reduced to less than 1000 (currently 1,011)
- Cyclomatic complexity of methods has to be reduced to less than 100 (currently 333)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.36 |
Average class complexity | 19.29 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 1,011.00 |
Average method complexity | 3.65 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 333.00 |
Code structure | ||
---|---|---|
Namespaces | 85 | |
Interfaces | 27 | |
Traits | 0 | |
Classes | 711 | |
▷ Abstract classes | 42 | 5.91% |
▷ Concrete classes | 669 | 94.09% |
▷ Final classes | 4 | 0.60% |
Methods | 5,241 | |
▷ Static methods | 1,596 | 30.45% |
▷ Public methods | 3,940 | 75.18% |
▷ Protected methods | 258 | 4.92% |
▷ Private methods | 1,043 | 19.90% |
Functions | 82 | |
▷ Named functions | 46 | 56.10% |
▷ Anonymous functions | 36 | 43.90% |
Constants | 1,152 | |
▷ Global constants | 15 | 1.30% |
▷ Class constants | 1,137 | 98.70% |
▷ Public constants | 1,062 | 93.40% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
3 PNG files occupy 0.07MB with 0.03MB in potential savings
Potential savings
Compression of 3 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/images/mouse-drag.png | 1.34KB | 1.47KB | 0.00% |
admin/images/missing-feature.png | 30.18KB | 11.12KB | ▼ 63.15% |
admin/images/support.png | 35.72KB | 15.16KB | ▼ 57.55% |