Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Install script ran successfully
Server metrics [RAM: ▲0.04MB] [CPU: ▼18.34ms] Passed 4 tests
Server-side resources used by QR code MeCard/vCard generator
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.49 ▲0.03 | 34.99 ▼6.92 |
Dashboard /wp-admin | 3.36 ▲0.01 | 49.28 ▼8.22 |
Posts /wp-admin/edit.php | 3.47 ▲0.12 | 48.33 ▲4.52 |
Add New Post /wp-admin/post-new.php | 5.96 ▲0.07 | 95.87 ▼62.75 |
Media Library /wp-admin/upload.php | 3.28 ▲0.05 | 54.91 ▲22.77 |
All QR codes /wp-admin/edit.php?post_type=qrcode-card | 3.33 | 32.94 |
Add New /wp-admin/post-new.php?post_type=qrcode-card | 3.60 | 45.48 |
Server storage [IO: ▲1.91MB] [DB: ▲0.07MB] Passed 3 tests
A short overview of filesystem and database impact
This plugin installed successfully
Filesystem: 378 new files
Database: no new tables, 7 new options
New WordPress options |
---|
widget_recent-comments |
widget_recent-posts |
widget_theysaidso_widget |
db_upgraded |
can_compress_scripts |
widget_widget_wp-qrcode-me-v-card |
theysaidso_admin_options |
Browser metrics Passed 4 tests
QR code MeCard/vCard generator: an overview of browser usage
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,871 ▲124 | 13.68 ▼0.60 | 1.74 ▲0.10 | 36.90 ▼6.44 |
Dashboard /wp-admin | 2,236 ▲58 | 6.05 ▲0.35 | 96.63 ▼18.38 | 80.07 ▲36.05 |
Posts /wp-admin/edit.php | 2,164 ▲64 | 2.46 ▲0.50 | 45.64 ▲7.71 | 39.03 ▲7.81 |
Add New Post /wp-admin/post-new.php | 1,574 ▲39 | 23.40 ▼1.69 | 712.15 ▲14.34 | 32.76 ▼36.79 |
Media Library /wp-admin/upload.php | 1,453 ▲56 | 4.68 ▲0.52 | 106.28 ▲7.71 | 71.47 ▲28.16 |
All QR codes /wp-admin/edit.php?post_type=qrcode-card | 1,146 | 2.41 | 37.39 | 30.47 |
Add New /wp-admin/post-new.php?post_type=qrcode-card | 3,128 | 4.94 | 103.67 | 79.10 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.07MB] 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
- The uninstall procedure has failed, leaving 7 options in the database
- widget_widget_wp-qrcode-me-v-card
- widget_theysaidso_widget
- theysaidso_admin_options
- widget_recent-comments
- can_compress_scripts
- widget_recent-posts
- db_upgraded
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check 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 | 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
Almost there! Just fix the following items
- 136× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\String\\AbstractUnicodeString' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/symfony/string/CodePointString.php:25
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\OptionsResolver\\Exception\\ExceptionInterface' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/symfony/options-resolver/Exception/NoSuchOptionException.php:24
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\PropertyInfo\\PropertyTypeExtractorInterface' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/symfony/property-info/Extractor/PhpStanExtractor.php:33
- > PHP Fatal error
Uncaught Error: Interface 'BaconQrCode\\Renderer\\Module\\ModuleInterface' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/bacon/bacon-qr-code/src/Renderer/Module/SquareModule.php:13
- > PHP Fatal error
Uncaught Error: Class 'Zxing\\Common\\GridSampler' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/khanamiryan/qrcode-detector-decoder/lib/Common/DefaultGridSampler.php:25
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\OptionsResolver\\Exception\\InvalidArgumentException' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/symfony/options-resolver/Exception/InvalidOptionsException.php:21
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/dasprid/enum/test/AbstractEnumTest.php:15
- > PHP Fatal error
Uncaught Error: Class 'DASPRiD\\Enum\\AbstractEnum' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/dasprid/enum/test/WeekDay.php:17
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/symfony/property-info/DependencyInjection/PropertyInfoConstructorPass.php:24
- > PHP Fatal error
Uncaught Error: Interface 'BaconQrCode\\Renderer\\Image\\ImageBackEndInterface' not found in wp-content/plugins/wp-qrcode-me-v-card/vendor/bacon/bacon-qr-code/src/Renderer/Image/EpsImageBackEnd.php:21
- > 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 90% from 29 tests
readme.txt 94% from 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
Attributes that require attention:
- Donate link: Please fix this invalid url: "Ethereum 0x1b7722bd9899fD10D145D773F5373460E11f97A6"
wp-qrcode-me-v-card/bootstrap.php 85% from 13 tests
"QR code MeCard/vCard generator" version 1.6.4's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
The following require your attention:
- Main file name: The principal plugin file should be the same as the plugin slug ("wp-qrcode-me-v-card.php" instead of "bootstrap.php")
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 147 characters long)
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
Success! There were no dangerous files found in this plugin41,025 lines of code in 345 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 296 | 5,726 | 8,946 | 37,819 |
JSON | 17 | 0 | 0 | 1,831 |
Markdown | 23 | 248 | 0 | 737 |
PO File | 1 | 135 | 163 | 338 |
CSS | 1 | 36 | 0 | 166 |
XML | 4 | 5 | 2 | 75 |
YAML | 2 | 11 | 0 | 58 |
JavaScript | 1 | 0 | 10 | 1 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
All good! No complexity issues found
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.41 |
Average class complexity | 14.11 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 166.00 |
Average method complexity | 3.19 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 45.00 |
Code structure | ||
---|---|---|
Namespaces | 54 | |
Interfaces | 32 | |
Traits | 0 | |
Classes | 237 | |
▷ Abstract classes | 11 | 4.64% |
▷ Concrete classes | 226 | 95.36% |
▷ Final classes | 129 | 57.08% |
Methods | 1,642 | |
▷ Static methods | 302 | 18.39% |
▷ Public methods | 1,383 | 84.23% |
▷ Protected methods | 20 | 1.22% |
▷ Private methods | 239 | 14.56% |
Functions | 190 | |
▷ Named functions | 148 | 77.89% |
▷ Anonymous functions | 42 | 22.11% |
Constants | 275 | |
▷ Global constants | 17 | 6.18% |
▷ Class constants | 258 | 93.82% |
▷ Public constants | 145 | 56.20% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
All PNG images should be compressed to minimize bandwidth usage for end users
3 PNG files occupy 0.02MB with 0.01MB in potential savings
Potential savings
Compression of 3 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
vendor/endroid/qr-code/assets/images/symfony.png | 15.90KB | 16.60KB | 0.00% |
vendor/khanamiryan/qrcode-detector-decoder/tests/qrcodes/hello_world.png | 3.05KB | 0.24KB | ▼ 92.25% |
static/images/qr-code-16-icon.png | 2.26KB | 0.46KB | ▼ 79.88% |