Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲0.43MB] [CPU: ▼9.04ms] Passed 4 tests
An overview of server-side resources used by Quizess
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.61 ▲1.14 | 47.14 ▲4.90 |
Dashboard /wp-admin | 4.43 ▲1.12 | 56.81 ▲4.85 |
Posts /wp-admin/edit.php | 4.48 ▲1.12 | 60.44 ▲9.29 |
Add New Post /wp-admin/post-new.php | 4.24 ▼1.65 | 47.64 ▼53.25 |
Media Library /wp-admin/upload.php | 4.35 ▲1.12 | 46.59 ▲7.36 |
All Questions /wp-admin/edit.php?post_type=question | 4.39 | 44.80 |
Add New Question /wp-admin/post-new.php?post_type=question | 4.24 | 42.26 |
Quiz Topics /wp-admin/edit-tags.php?taxonomy=quiz-topic&post_type=quiz | 4.34 | 43.62 |
Add New Quiz /wp-admin/post-new.php?post_type=quiz | 4.24 | 42.74 |
Dashboard /wp-admin/admin.php?page=quizess_dashboard | 4.37 | 51.98 |
Question Topics /wp-admin/edit-tags.php?taxonomy=question-topic&post_type=question | 4.34 | 41.26 |
All Quizess /wp-admin/edit.php?post_type=quiz | 4.39 | 44.08 |
Server storage [IO: ▲10.55MB] [DB: ▲0.00MB] 67% from 3 tests
Analyzing filesystem and database footprints of this plugin
It is recommended to fix the following issues
- Illegal file modification found: 3 files (0.00KB) outside of "wp-content/plugins/quizess/" and "wp-content/uploads/"
- (new file) "wp-content/plugins/quizess/assets/banner-772\303\227250.png"
- (new file) "wp-content/plugins/quizess/assets/banner-1544\303\227500.png"
- (new file) "wp-content/plugins/quizess/assets/icon-128\303\227128.png"
Filesystem: 569 new files
Database: no new tables, 6 new options
New WordPress options |
---|
can_compress_scripts |
theysaidso_admin_options |
widget_recent-posts |
db_upgraded |
widget_recent-comments |
widget_theysaidso_widget |
Browser metrics Passed 4 tests
An overview of browser requirements for Quizess
This plugin renders optimally with no browser resource issues detected
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,832 ▲71 | 14.24 ▼0.11 | 1.69 ▼0.06 | 41.39 ▼2.35 |
Dashboard /wp-admin | 2,241 ▲64 | 5.67 ▲0.10 | 91.32 ▼4.23 | 43.25 ▼0.11 |
Posts /wp-admin/edit.php | 2,143 ▲43 | 1.96 ▼0.03 | 40.87 ▲3.67 | 39.57 ▲2.37 |
Add New Post /wp-admin/post-new.php | 1,569 ▲43 | 23.35 ▲0.12 | 666.11 ▼1.21 | 59.77 ▲6.60 |
Media Library /wp-admin/upload.php | 1,440 ▲46 | 4.17 ▲0.05 | 99.92 ▼2.51 | 45.15 ▲1.77 |
All Questions /wp-admin/edit.php?post_type=question | 1,107 | 1.93 | 31.82 | 32.95 |
Add New Question /wp-admin/post-new.php?post_type=question | 6,231 | 22.34 | 974.90 | 52.23 |
Quiz Topics /wp-admin/edit-tags.php?taxonomy=quiz-topic&post_type=quiz | 1,317 | 2.12 | 26.52 | 33.34 |
Add New Quiz /wp-admin/post-new.php?post_type=quiz | 6,272 | 20.75 | 867.71 | 68.36 |
Dashboard /wp-admin/admin.php?page=quizess_dashboard | 1,217 | 19.87 | 271.29 | 63.17 |
Question Topics /wp-admin/edit-tags.php?taxonomy=question-topic&post_type=question | 1,314 | 2.12 | 27.20 | 30.61 |
All Quizess /wp-admin/edit.php?post_type=quiz | 1,107 | 1.94 | 30.67 | 31.22 |
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
- can_compress_scripts
- widget_recent-comments
- widget_recent-posts
- theysaidso_admin_options
- widget_theysaidso_widget
- db_upgraded
Smoke tests 0% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
These errors were triggered by the plugin
- 2 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=quiz
- > User notice in wp-includes/functions.php+5905
Function register_rest_route was called incorrectly. The REST API route definition for quizess/v1/dashboard-options is missing the required permission_callback argument. For REST API routes that are intended to be public, use __return_true as the permission callback. Please see Debugging in WordPress for more information. (This message was added in version 5.5.0.)
- 2 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=quiz
- > User notice in wp-includes/functions.php+5905
Function register_rest_route was called incorrectly. The REST API route definition for quizess/v1/menus is missing the required permission_callback argument. For REST API routes that are intended to be public, use __return_true as the permission callback. Please see Debugging in WordPress for more information. (This message was added in version 5.5.0.)
- 2 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=quiz
- > User notice in wp-includes/functions.php+5905
Function register_rest_route was called incorrectly. The REST API route definition for quizess/v1/quizes/(?P\d+) is missing the required permission_callback argument. For REST API routes that are intended to be public, use __return_true as the permission callback. Please see Debugging in WordPress for more information. (This message was added in version 5.5.0.)
- 4 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=quiz
- > User deprecated in wp-includes/functions.php+5828
Hook block_categories is deprecated since version 5.8.0! Use block_categories_all instead.
- 2 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=quiz
- > User deprecated in wp-includes/functions.php+5828
Hook allowed_block_types is deprecated since version 5.8.0! Use allowed_block_types_all instead.
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
The following issues need your attention
- 7× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/quizess/vendor/infinum/coding-standards-wp/autoload.php
- > /wp-content/plugins/quizess/src/languages/index.php
- > /wp-content/plugins/quizess/views/svg/menu-icon.php
- > /wp-content/plugins/quizess/views/admin/dashboard.php
- > /wp-content/plugins/quizess/src/front/index.php
- > /wp-content/plugins/quizess/src/rest/index.php
- > /wp-content/plugins/quizess/src/admin/index.php
- 144× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function language_attributes() in wp-content/plugins/quizess/views/header/header.php:10
- > PHP Fatal error
Uncaught Error: Interface 'DI\\Definition\\Resolver\\DefinitionResolver' not found in wp-content/plugins/quizess/vendor/php-di/php-di/src/Definition/Resolver/FactoryResolver.php:26
- > PHP Fatal error
Uncaught Error: Interface 'Eightshift_Libs\\Core\\Service' not found in wp-content/plugins/quizess/vendor/infinum/eightshift-libs/src/custom-post-type/class-base-post-type.php:16
- > PHP Fatal error
Uncaught Error: Class 'DI\\Definition\\Exception\\InvalidDefinition' not found in wp-content/plugins/quizess/vendor/php-di/php-di/src/Definition/Exception/InvalidAnnotation.php:12
- > PHP Fatal error
Uncaught Error: Class 'Quizess\\Blocks\\Abstracts\\Base_Block' not found in wp-content/plugins/quizess/src/blocks/class-section.php:16
- > PHP Fatal error
Uncaught Error: Interface 'Psr\\Container\\ContainerExceptionInterface' not found in wp-content/plugins/quizess/vendor/psr/container/src/NotFoundExceptionInterface.php:11
- > PHP Fatal error
Uncaught Error: Class 'DI\\Container' not found in wp-content/plugins/quizess/vendor/php-di/php-di/src/CompiledContainer.php:25
- > PHP Fatal error
Uncaught Error: Call to undefined function apply_filters() in wp-content/plugins/quizess/views/category/menu.php:12
- > PHP Fatal error
Uncaught Error: Interface 'DI\\Definition\\Source\\DefinitionSource' not found in wp-content/plugins/quizess/vendor/php-di/php-di/src/Definition/Source/SourceCache.php:14
- > PHP Fatal error
Uncaught Error: Interface 'SuperClosure\\Exception\\SuperClosureException' not found in wp-content/plugins/quizess/vendor/jeremeamia/superclosure/src/Exception/ClosureSerializationException.php:6
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
These are user-side errors you should fix
- 2 occurences, only the last one shown
- > GET request to /wp-admin/post-new.php?post_type=quiz
- > Javascript (severe) in unknown
//wp-content/plugins/quizess/skin/public/scripts/blocksQuizess-6b64236891eb88c8622f.js?ver=1.0.0 0:1445518 Uncaught TypeError: $ is not a function
- > GET request to /wp-admin/post-new.php?post_type=question
- > Console-api (warning) in unknown
/wp-includes/js/dist/block-editor.min.js?ver=0cd49e3f951fc97cabb7 25:219944 "quizess-editor--style-css was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe." link#quizess-editor--style-css
- > GET request to /wp-admin/admin.php?page=quizess_dashboard
- > Console-api (warning) in wp-includes/js/dist/deprecated.min.js?ver=73ad3591e7bc95f4777a+1:627
wp.editor.MediaPlaceholder is deprecated since version 5.3 and will be removed in version 6.2. Please use wp.blockEditor.MediaPlaceholder instead.
- > GET request to /wp-admin/admin.php?page=quizess_dashboard
- > Console-api (warning) in wp-includes/js/dist/deprecated.min.js?ver=73ad3591e7bc95f4777a+1:627
`wp.data.select( 'core/editor' ).getSelectedBlockClientId` is deprecated since version 5.3 and will be removed in version 6.2. Please use `wp.data.select( 'core/block-editor' ).getSelectedBlockClientId` instead.
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 81% from 16 tests
The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
Attributes that need to be fixed:
- Donate link: Please fix this invalid url: "PayPal.Me/tihi321"
- Screenshots: Please describe screenshot #0 in quizess/assets to your readme.txt
- Screenshots: Screenshot #8 (Archive page) image required
quizess/quizess.php Passed 13 tests
The primary PHP file in "Quizess" version 2.0.3 is used by WordPress to initiate all plugin functionality
60 characters long description:
Quizess plugin provides all functionality for making quizes.
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 detected30,893 lines of code in 498 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 215 | 2,424 | 5,622 | 9,572 |
CSS | 25 | 0 | 229 | 7,885 |
JavaScript | 144 | 840 | 156 | 7,036 |
Sass | 67 | 464 | 77 | 2,680 |
JSON | 14 | 0 | 0 | 1,751 |
Markdown | 21 | 463 | 0 | 1,042 |
PO File | 1 | 213 | 96 | 458 |
YAML | 6 | 24 | 7 | 249 |
XML | 3 | 44 | 36 | 167 |
Bourne Shell | 1 | 6 | 5 | 38 |
SVG | 1 | 0 | 0 | 15 |
PHP code Passed 2 tests
This is a very shot review of cyclomatic complexity and code structure
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.38 |
Average class complexity | 6.19 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 44.00 |
Average method complexity | 2.51 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 24.00 |
Code structure | ||
---|---|---|
Namespaces | 54 | |
Interfaces | 29 | |
Traits | 0 | |
Classes | 138 | |
▷ Abstract classes | 9 | 6.52% |
▷ Concrete classes | 129 | 93.48% |
▷ Final classes | 10 | 7.75% |
Methods | 613 | |
▷ Static methods | 44 | 7.18% |
▷ Public methods | 490 | 79.93% |
▷ Protected methods | 44 | 7.18% |
▷ Private methods | 79 | 12.89% |
Functions | 42 | |
▷ Named functions | 18 | 42.86% |
▷ Anonymous functions | 24 | 57.14% |
Constants | 74 | |
▷ Global constants | 3 | 4.05% |
▷ Class constants | 71 | 95.95% |
▷ Public constants | 71 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
14 PNG files occupy 5.72MB with 3.08MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
skin/public/images/meta-google.png | 7.58KB | 4.31KB | ▼ 43.19% |
assets/icon-128×128.png | 12.88KB | 7.04KB | ▼ 45.37% |
assets/banner-1544×500.png | 327.31KB | 111.90KB | ▼ 65.81% |
assets/screenshot-06.png | 808.99KB | 227.44KB | ▼ 71.89% |
skin/assets/images/meta-google.png | 7.58KB | 4.31KB | ▼ 43.19% |