Benchmarks
Plugin footprint 40% from 16 tests
Installer 0% from 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
It is recommended to fix the following installer errors
- The plugin cannot be installed
- > Warning in wp-admin/includes/plugin.php+294
opendir(wp-content/plugins/woocommerce): failed to open dir: No such file or directory
Server metrics [RAM: ▲1.56MB] [CPU: ▼1.14ms] Passed 4 tests
A check of server-side resources used by Kiwiz for WooCommerce
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.05 ▲1.58 | 44.42 ▲4.48 |
Dashboard /wp-admin | 4.87 ▲1.56 | 55.02 ▲4.10 |
Posts /wp-admin/edit.php | 4.92 ▲1.56 | 54.40 ▲2.18 |
Add New Post /wp-admin/post-new.php | 7.45 ▲1.56 | 90.58 ▼15.31 |
Media Library /wp-admin/upload.php | 4.79 ▲1.56 | 48.25 ▲14.94 |
KIWIZ Certification /wp-admin/admin.php?page=kiwiz-certification | 4.76 | 42.63 |
Server storage [IO: ▲6.60MB] [DB: ▲0.00MB] Passed 3 tests
A short overview of filesystem and database impact
The plugin installed successfully
Filesystem: 710 new files
Database: no new tables, 9 new options
New WordPress options |
---|
widget_recent-comments |
theysaidso_admin_options |
can_compress_scripts |
kiwiz_document_invoice_increment_id |
widget_recent-posts |
kiwiz_document_refund_increment_id |
kiwiz_update_increment_id |
widget_theysaidso_widget |
db_upgraded |
Browser metrics Passed 4 tests
Kiwiz for WooCommerce: an overview of browser usage
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,916 ▲155 | 13.75 ▼0.61 | 7.84 ▲6.34 | 38.06 ▼1.73 |
Dashboard /wp-admin | 2,236 ▲59 | 5.11 ▼0.56 | 86.64 ▲2.64 | 39.99 ▼1.26 |
Posts /wp-admin/edit.php | 2,143 ▲43 | 2.37 ▲0.36 | 37.51 ▼2.76 | 34.44 ▼2.51 |
Add New Post /wp-admin/post-new.php | 1,567 ▲41 | 22.91 ▼0.11 | 676.57 ▼19.06 | 40.17 ▼18.43 |
Media Library /wp-admin/upload.php | 1,444 ▲44 | 4.68 ▲0.48 | 100.88 ▼5.49 | 46.68 ▼0.09 |
KIWIZ Certification /wp-admin/admin.php?page=kiwiz-certification | 1,156 | 2.29 | 28.91 | 25.24 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
Please fix the following items
- This plugin cannot be uninstalled
- > Warning in wp-content/plugins/kiwiz-invoices-certification-pdf-file/uninstall.php+55
rmdir(wp-content/uploads/kiwiz-document/): No such file or directory
- The uninstall procedure has failed, leaving 6 options in the database
- db_upgraded
- can_compress_scripts
- widget_theysaidso_widget
- widget_recent-posts
- theysaidso_admin_options
- widget_recent-comments
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
Even though no errors were found, this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please fix the following
- 3× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/tecnickcom/tcpdf/tools/tcpdf_addfont.php
- > /wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/dompdf/vendor/masterminds/html5/bin/entities.php
- > /wp-content/plugins/kiwiz-invoices-certification-pdf-file/templates/refund/main.php
- 218× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'DeepCopy\\TypeFilter\\TypeFilter' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php:13
- > PHP Fatal error
Uncaught Error: Class 'setasign\\Fpdi\\PdfParser\\Filter\\FilterException' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/src/PdfParser/Filter/Ascii85Exception.php:16
- > PHP Warning
require(vendor/autoload.php): failed to open stream: No such file or directory in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/setasign/tfpdf/ex.php on line 7
- > PHP Fatal error
Uncaught Error: Interface 'Sabberworm\\CSS\\Renderable' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSList.php:32
- > PHP Fatal error
require(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php') in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/setasign/tfpdf/ex.php on line 7
- > PHP Fatal error
Uncaught Error: Class 'FontLib\\TrueType\\File' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php:16
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/symfony/yaml/Exception/RuntimeException.php:19
- > PHP Fatal error
Uncaught Error: Class 'Dompdf\\FrameReflower\\AbstractFrameReflower' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Inline.php:18
- > PHP Fatal error
Uncaught Error: Interface 'Sabberworm\\CSS\\Renderable' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/RuleSet.php:18
- > PHP Fatal error
Uncaught Error: Interface 'Sabberworm\\CSS\\Property\\AtRule' not found in wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/dompdf/vendor/sabberworm/php-css-parser/src/Property/CSSNamespace.php:11
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser issues were found
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 16 tests
The readme.txt file uses markdown syntax to describe your plugin to the world
8 plugin tags: credimemo, refund, certification, certification facture, facture...
kiwiz-invoices-certification-pdf-file/woocommerce-gateway-certification-de-facture-et-gestion-de-pdf-kiwiz.php 85% from 13 tests
Analyzing the main PHP file in "Kiwiz for WooCommerce" version 2.1.7
You should first fix the following items:
- Main file name: It is recommended to name the main PHP file as the plugin slug ("kiwiz-invoices-certification-pdf-file.php" instead of "woocommerce-gateway-certification-de-facture-et-gestion-de-pdf-kiwiz.php")
- Requires at least: Required version does not match the one declared in readme.txt ("4.6" instead of "3.0.0")
Code Analysis 0% from 3 tests
File types 0% from 1 test
🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
Please make sure to remedy the following
- Do not include executable or dangerous files in your plugin
- .bat - Batch File in Windows
- ☣ wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/bin/phpcbf.bat
- ☣ wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/bin/phpcs.bat
- ☣ wp-content/plugins/kiwiz-invoices-certification-pdf-file/lib/fpdi/vendor/bin/phpunit.bat
- .bat - Batch File in Windows
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 449 | 14,095 | 39,502 | 109,676 |
JSON | 31 | 3 | 0 | 4,420 |
Markdown | 36 | 1,006 | 0 | 2,753 |
CSS | 6 | 159 | 108 | 908 |
HTML | 4 | 28 | 0 | 475 |
PO File | 1 | 172 | 280 | 357 |
YAML | 11 | 78 | 1 | 262 |
Ant | 9 | 33 | 0 | 205 |
JavaScript | 3 | 26 | 46 | 187 |
XML | 10 | 11 | 0 | 179 |
reStructuredText | 2 | 23 | 18 | 31 |
DOS Batch | 3 | 0 | 0 | 15 |
SVG | 1 | 0 | 0 | 8 |
PHP code 0% from 2 tests
A short review of cyclomatic complexity and code structure
It is recommended to fix the following
- Class cyclomatic complexity has to be reduced to less than 1000 (currently 4,415)
- Method cyclomatic complexity has to be reduced to less than 100 (currently 500)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.43 |
Average class complexity | 44.83 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 4,415.00 |
Average method complexity | 4.95 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 500.00 |
Code structure | ||
---|---|---|
Namespaces | 76 | |
Interfaces | 21 | |
Traits | 3 | |
Classes | 349 | |
▷ Abstract classes | 15 | 4.30% |
▷ Concrete classes | 334 | 95.70% |
▷ Final classes | 6 | 1.80% |
Methods | 4,252 | |
▷ Static methods | 772 | 18.16% |
▷ Public methods | 3,232 | 76.01% |
▷ Protected methods | 823 | 19.36% |
▷ Private methods | 197 | 4.63% |
Functions | 85 | |
▷ Named functions | 40 | 47.06% |
▷ Anonymous functions | 45 | 52.94% |
Constants | 413 | |
▷ Global constants | 119 | 28.81% |
▷ Class constants | 294 | 71.19% |
▷ Public constants | 287 | 97.62% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
2 PNG files occupy 0.01MB with 0.00MB in potential savings
Potential savings
Compression of 2 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
(invalid) admin/assets/img/kiwiz-logo.png | 6.05KB | 0.00KB | ▼ 100.00% |
lib/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.png | 0.60KB | 0.47KB | ▼ 22.33% |