Benchmarks
Plugin footprint 83% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
Install script ran successfully
Server metrics [RAM: ▲0.53MB] [CPU: ▼5.42ms] Passed 4 tests
An overview of server-side resources used by My Movie Database
Normal server usage
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.03 ▲0.53 | 40.87 ▼1.88 |
Dashboard /wp-admin | 3.87 ▲0.48 | 51.24 ▼15.17 |
Posts /wp-admin/edit.php | 3.99 ▲0.60 | 57.25 ▲4.74 |
Add New Post /wp-admin/post-new.php | 6.92 ▲0.99 | 121.88 ▼9.36 |
Media Library /wp-admin/upload.php | 3.79 ▲0.52 | 47.86 ▲11.97 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=person | 3.78 | 40.53 |
Add New /wp-admin/post-new.php?post_type=tvshow | 6.92 | 101.89 |
Movies /wp-admin/edit.php?post_type=movie | 3.86 | 43.95 |
Add New /wp-admin/post-new.php?post_type=person | 6.92 | 90.32 |
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=movie | 3.79 | 41.48 |
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=person | 3.79 | 40.55 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=movie | 3.80 | 39.86 |
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=tvshow | 3.79 | 38.49 |
Add New /wp-admin/post-new.php?post_type=movie | 6.92 | 95.44 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=tvshow | 3.80 | 42.28 |
Server storage [IO: ▲0.82MB] [DB: ▲0.01MB] Passed 3 tests
Input-output and database impact of this plugin
No storage issues were detected
Filesystem: 84 new files
Database: no new tables, 7 new options
New WordPress options |
---|
db_upgraded |
widget_theysaidso_widget |
can_compress_scripts |
theysaidso_admin_options |
category_children |
widget_recent-comments |
widget_recent-posts |
Browser metrics Passed 4 tests
A check of browser resources used by My Movie Database
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,923 ▲162 | 14.74 ▲0.46 | 1.71 ▼0.42 | 42.40 ▼0.73 |
Dashboard /wp-admin | 2,323 ▲154 | 5.66 ▲0.08 | 91.37 ▼10.92 | 42.04 ▼1.09 |
Posts /wp-admin/edit.php | 2,225 ▲125 | 2.04 ▲0.07 | 39.70 ▼2.85 | 36.86 ▲3.07 |
Add New Post /wp-admin/post-new.php | 1,630 ▲102 | 23.10 ▼0.08 | 667.18 ▲1.32 | 62.27 ▲12.53 |
Media Library /wp-admin/upload.php | 1,525 ▲125 | 4.27 ▲0.07 | 96.37 ▼13.60 | 43.66 ▼2.34 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=person | 1,583 | 2.19 | 29.90 | 36.07 |
Add New /wp-admin/post-new.php?post_type=tvshow | 6,365 | 22.53 | 1,166.13 | 46.20 |
Movies /wp-admin/edit.php?post_type=movie | 1,294 | 1.99 | 34.20 | 33.86 |
Add New /wp-admin/post-new.php?post_type=person | 6,366 | 22.11 | 971.93 | 38.13 |
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=movie | 1,444 | 2.17 | 26.95 | 31.41 |
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=person | 1,441 | 2.16 | 29.05 | 30.29 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=movie | 1,583 | 2.20 | 29.07 | 30.90 |
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=tvshow | 1,447 | 2.19 | 27.83 | 31.22 |
Add New /wp-admin/post-new.php?post_type=movie | 1,699 | 19.17 | 907.65 | 41.42 |
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=tvshow | 1,583 | 2.20 | 28.98 | 34.83 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 75% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
It is recommended to fix the following
- This plugin did not uninstall successfully, leaving 7 options in the database
- db_upgraded
- theysaidso_admin_options
- can_compress_scripts
- widget_recent-posts
- widget_theysaidso_widget
- widget_recent-comments
- category_children
Smoke tests 75% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
Even though everything seems fine, this is not an exhaustive test
SRP 50% 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
Almost there! Just fix the following items
- 20× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Interface 'MyMovieDatabase\\ActionHookSubscriberInterface' not found in wp-content/plugins/my-movie-database/core/admin/Settings.php:24
- > PHP Fatal error
Uncaught Error: Interface 'MyMovieDatabase\\ActionHookSubscriberInterface' not found in wp-content/plugins/my-movie-database/core/controllers/PublicController.php:26
- > PHP Fatal error
Uncaught Error: Class 'MyMovieDatabase\\Lib\\PostTypes\\PostTypeEntityAbstract' not found in wp-content/plugins/my-movie-database/core/lib/wpPostTypes/PostType.php:15
- > PHP Fatal error
Uncaught Error: Class 'MyMovieDatabase\\Lib\\ResourceTypes\\AbstractResourceType' not found in wp-content/plugins/my-movie-database/core/lib/resourceTypes/TvshowResourceType.php:14
- > PHP Fatal error
Uncaught Error: Interface 'MyMovieDatabase\\ActionHookSubscriberInterface' not found in wp-content/plugins/my-movie-database/core/admin/SettingsCacheController.php:18
- > PHP Fatal error
Uncaught Error: Interface 'MyMovieDatabase\\ActionHookSubscriberInterface' not found in wp-content/plugins/my-movie-database/core/lib/LanguageManager.php:66
- > PHP Fatal error
Uncaught Error: Class 'MyMovieDatabase\\Lib\\WpContentTypes\\WpAbstractContentType' not found in wp-content/plugins/my-movie-database/core/lib/wpContentTypes/WpShortcodeContentType.php:18
- > PHP Fatal error
Uncaught Error: Interface 'MyMovieDatabase\\ActionHookSubscriberInterface' not found in wp-content/plugins/my-movie-database/core/lib/resourceAPI/AbstractEndpoint.php:18
- > PHP Fatal error
Uncaught Error: Class 'MyMovieDatabase\\Lib\\ResourceAPI\\AbstractEndpoint' not found in wp-content/plugins/my-movie-database/core/lib/resourceAPI/GetResourcesEndpoint.php:22
- > PHP Fatal error
Trait 'MyMovieDatabase\\Lib\\WpContentTypes\\TemplateVueTrait' not found in wp-content/plugins/my-movie-database/core/lib/wpContentTypes/WpAbstractContentType.php on line 18
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine on the user side
Optimizations
Plugin configuration 93% from 29 tests
readme.txt Passed 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
10 plugin tags: tv show, movie, tmdb, tv, television...
my-movie-database/my_movie_database.php 85% from 13 tests
The main PHP script in "My Movie Database" version 3.0.3 is automatically included on every request by WordPress
You should first fix the following items:
- Main file name: The principal plugin file should be the same as the plugin slug ("my-movie-database.php" instead of "my_movie_database.php")
- Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 364 characters long)
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Success! There were no dangerous files found in this plugin6,771 lines of code in 60 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 38 | 783 | 2,647 | 2,876 |
PO File | 8 | 1,080 | 1,360 | 2,285 |
JSON | 8 | 0 | 0 | 1,009 |
CSS | 2 | 79 | 40 | 445 |
JavaScript | 4 | 5 | 22 | 156 |
PHP code Passed 2 tests
An overview 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.25 |
Average class complexity | 6.84 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 68.00 |
Average method complexity | 1.85 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 10.00 |
Code structure | ||
---|---|---|
Namespaces | 7 | |
Interfaces | 4 | |
Traits | 2 | |
Classes | 32 | |
▷ Abstract classes | 4 | 12.50% |
▷ Concrete classes | 28 | 87.50% |
▷ Final classes | 0 | 0.00% |
Methods | 254 | |
▷ Static methods | 22 | 8.66% |
▷ Public methods | 173 | 68.11% |
▷ Protected methods | 45 | 17.72% |
▷ Private methods | 36 | 14.17% |
Functions | 1 | |
▷ Named functions | 0 | 0.00% |
▷ Anonymous functions | 1 | 100.00% |
Constants | 92 | |
▷ Global constants | 3 | 3.26% |
▷ Class constants | 89 | 96.74% |
▷ Public constants | 89 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
9 PNG files occupy 0.12MB with 0.08MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/js/app/img/mmdb-placeholder-342.png | 16.60KB | 4.23KB | ▼ 74.52% |
assets/js/app/img/mmdb-placeholder-154.png | 11.13KB | 2.54KB | ▼ 77.18% |
assets/js/app/img/mmdb-placeholder-132.png | 11.03KB | 1.88KB | ▼ 82.93% |
assets/js/app/img/mmdb-placeholder-300.png | 11.72KB | 4.06KB | ▼ 65.33% |
assets/img/icon-256x256.png | 24.89KB | 9.71KB | ▼ 61.01% |