Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Install script ran successfully
Server metrics [RAM: ▲5.52MB] [CPU: ▲29.98ms] 75% from 4 tests
Analyzing server-side resources used by WP Project Manager - Task, team, and project management plugin featuring kanban board and gantt charts
Please have a look at the following items
- Extra RAM: Try to keep extra memory usage under 5MB (currently 5.52MB on /wp-admin/admin.php?page=pm_projects#/settings)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 8.37 ▲4.91 | 64.88 ▲24.05 |
Dashboard /wp-admin | 9.06 ▲5.72 | 83.37 ▲26.81 |
Posts /wp-admin/edit.php | 9.11 ▲5.76 | 91.99 ▲41.96 |
Add New Post /wp-admin/post-new.php | 12.21 ▲6.33 | 126.04 ▲27.10 |
Media Library /wp-admin/upload.php | 8.92 ▲5.69 | 84.74 ▲49.96 |
Server storage [IO: ▲16.90MB] [DB: ▲0.09MB] Passed 3 tests
Input-output and database impact of this plugin
The plugin installed successfully
Filesystem: 1,400 new files
Database: 21 new tables, 9 new options
New tables |
---|
wp_pm_assignees |
wp_pm_activities |
wp_pm_tasks |
wp_pm_capabilities |
wp_pm_task_type_task |
wp_pm_imports |
wp_pm_boardables |
wp_pm_boards |
wp_pm_files |
wp_pm_role_user |
... |
New WordPress options |
---|
pm_version |
pm_installed |
pm_db_version |
widget_theysaidso_widget |
can_compress_scripts |
theysaidso_admin_options |
widget_recent-comments |
db_upgraded |
widget_recent-posts |
Browser metrics Passed 4 tests
This is an overview of browser requirements for WP Project Manager - Task, team, and project management plugin featuring kanban board and gantt charts
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,134 ▲388 | 13.89 ▼0.46 | 6.82 ▲4.98 | 37.05 ▼10.08 |
Dashboard /wp-admin | 2,414 ▲223 | 5.28 ▲0.42 | 113.39 ▲10.39 | 38.21 ▼3.57 |
Posts /wp-admin/edit.php | 2,303 ▲214 | 2.55 ▲0.54 | 49.87 ▲9.34 | 35.76 ▼7.92 |
Add New Post /wp-admin/post-new.php | 1,636 ▲122 | 23.42 ▲5.83 | 661.27 ▲10.37 | 36.82 ▼26.87 |
Media Library /wp-admin/upload.php | 1,606 ▲218 | 4.76 ▲0.50 | 103.80 ▼0.21 | 42.61 ▼6.12 |
Calendar /wp-admin/admin.php?page=pm_projects#/calendar | 1,928 | 10.37 | 310.22 | 49.86 |
Modules /wp-admin/admin.php?page=pm_projects#/modules | 1,545 | 10.26 | 313.38 | 34.83 |
Categories /wp-admin/admin.php?page=pm_projects#/categories | 1,451 | 10.36 | 139.61 | 38.54 |
My Tasks 0 /wp-admin/admin.php?page=pm_projects#/my-tasks | 1,559 | 10.12 | 186.93 | 40.42 |
Progress /wp-admin/admin.php?page=pm_projects#/progress | 1,338 | 9.33 | 140.19 | 37.98 |
Premium /wp-admin/admin.php?page=pm_projects#/premium | 2,249 | 9.43 | 156.91 | 86.56 |
Reports /wp-admin/admin.php?page=pm_projects#/reports | 2,042 | 9.58 | 161.45 | 50.92 |
Tools /wp-admin/admin.php?page=pm_projects#/importtools | 1,278 | 9.22 | 143.81 | 35.45 |
Projects /wp-admin/admin.php?page=pm_projects#/ | 1,990 | 11.58 | 219.63 | 52.71 |
Settings /wp-admin/admin.php?page=pm_projects#/settings | 1,634 | 9.81 | 171.42 | 34.20 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.09MB] 50% from 4 tests
🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
You still need to fix the following
- Zombie tables were found after uninstall: 21 tables
- wp_pm_capabilities
- wp_pm_task_types
- wp_pm_activities
- wp_pm_projects
- wp_pm_category_project
- wp_pm_boardables
- wp_pm_boards
- wp_pm_files
- wp_pm_role_user
- wp_pm_meta
- ...
- This plugin did not uninstall successfully, leaving 9 options in the database
- widget_recent-comments
- widget_theysaidso_widget
- widget_recent-posts
- db_upgraded
- theysaidso_admin_options
- pm_db_version
- can_compress_scripts
- pm_version
- pm_installed
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Everything seems fine, however this is by no means an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please fix the following items
- 5× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/wedevs-project-manager/vendor/illuminate/pagination/resources/views/simple-bootstrap-4.blade.php
- > /wp-content/plugins/wedevs-project-manager/vendor/symfony/translation/Resources/bin/translation-status.php
- > /wp-content/plugins/wedevs-project-manager/vendor/illuminate/pagination/resources/views/default.blade.php
- > /wp-content/plugins/wedevs-project-manager/vendor/illuminate/pagination/resources/views/bootstrap-4.blade.php
- > /wp-content/plugins/wedevs-project-manager/vendor/illuminate/pagination/resources/views/simple-default.blade.php
- 465× PHP files trigger server errors when accessed directly (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Call to undefined function plugin_dir_url() in wp-content/plugins/wedevs-project-manager/config/style.php:8
- > PHP Fatal error
Uncaught Error: Call to a member function trans() on null in wp-content/plugins/wedevs-project-manager/vendor/symfony/translation/Tests/fixtures/extractor/translation.html.php:2
- > PHP Fatal error
Uncaught Error: Class 'WeDevs\\PM\\Core\\Sanitizer\\Abstract_Sanitizer' not found in wp-content/plugins/wedevs-project-manager/src/Task_List/Validators/Task_List_Sanitizer.php:7
- > PHP Fatal error
Uncaught Error: Class 'Illuminate\\Support\\Facades\\Facade' not found in wp-content/plugins/wedevs-project-manager/vendor/illuminate/support/Facades/File.php:8
- > PHP Fatal error
Uncaught Error: Class 'Illuminate\\Database\\Eloquent\\Relations\\Pivot' not found in wp-content/plugins/wedevs-project-manager/vendor/illuminate/database/Eloquent/Relations/MorphPivot.php:7
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/wedevs-project-manager/vendor/symfony/translation/Tests/Dumper/XliffFileDumperTest.php:18
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/wedevs-project-manager/vendor/symfony/translation/Tests/DependencyInjection/TranslationExtractorPassTest.php:19
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_url() in wp-content/plugins/wedevs-project-manager/views/emails/html/complete-task.php:26
- > PHP Fatal error
Uncaught Error: Interface 'Symfony\\Component\\Translation\\Loader\\LoaderInterface' not found in wp-content/plugins/wedevs-project-manager/vendor/symfony/translation/Loader/IcuResFileLoader.php:24
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/wedevs-project-manager/views/emails/html/new-project.php:7
- > 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 93% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that need to be fixed:
- Requires at least: Invalid version format
wedevs-project-manager/cpm.php 92% from 13 tests
Analyzing the main PHP file in "WP Project Manager - Task, team, and project management plugin featuring kanban board and gantt charts" version 2.6.7
It is important to fix the following:
- Main file name: Name the main plugin file the same as the plugin slug ("wedevs-project-manager.php" instead of "cpm.php")
Code Analysis 3% 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
Almost there! Just fix the following issues
- For security reasons, never distribute binary or executable files with your plugin
- .bat - Batch File in Windows
- ☣ wp-content/plugins/wedevs-project-manager/vendor/nesbot/carbon/bin/upgrade-carbon.bat
- .bat - Batch File in Windows
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JavaScript | 51 | 11,230 | 33,303 | 90,837 |
PHP | 847 | 18,064 | 38,410 | 69,856 |
CSS | 23 | 504 | 908 | 12,544 |
PO File | 19 | 6,094 | 12,347 | 9,942 |
SVG | 130 | 36 | 91 | 5,949 |
XSD | 4 | 99 | 76 | 4,991 |
JSON | 21 | 0 | 0 | 1,741 |
HTML | 1 | 138 | 4 | 833 |
Markdown | 5 | 193 | 0 | 506 |
XML | 17 | 6 | 0 | 349 |
Sass | 1 | 5 | 0 | 243 |
Blade | 4 | 8 | 14 | 84 |
Qt Linguist | 1 | 0 | 0 | 10 |
YAML | 4 | 0 | 0 | 7 |
DOS Batch | 1 | 0 | 0 | 4 |
INI | 1 | 0 | 0 | 1 |
PHP code 50% from 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
These items need your attention
- Method cyclomatic complexity should be reduced to less than 100 (currently 157)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.33 |
Average class complexity | 10.40 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 263.00 |
Average method complexity | 2.21 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 157.00 |
Code structure | ||
---|---|---|
Namespaces | 209 | |
Interfaces | 107 | |
Traits | 28 | |
Classes | 545 | |
▷ Abstract classes | 35 | 6.42% |
▷ Concrete classes | 510 | 93.58% |
▷ Final classes | 1 | 0.20% |
Methods | 5,637 | |
▷ Static methods | 563 | 9.99% |
▷ Public methods | 4,333 | 76.87% |
▷ Protected methods | 857 | 15.20% |
▷ Private methods | 447 | 7.93% |
Functions | 650 | |
▷ Named functions | 260 | 40.00% |
▷ Anonymous functions | 390 | 60.00% |
Constants | 129 | |
▷ Global constants | 20 | 15.50% |
▷ Class constants | 109 | 84.50% |
▷ Public constants | 109 | 100.00% |
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
140 PNG files occupy 1.54MB with 0.33MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
views/assets/images/pm-logo.png | 11.60KB | 6.13KB | ▼ 47.12% |
views/assets/css/images/prettyPhoto/light_square/btnNext.png | 1.38KB | 1.14KB | ▼ 17.29% |
views/assets/css/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png | 0.15KB | 0.14KB | ▼ 6.04% |
views/assets/css/jquery-ui/images/ui-bg_diagonals-small_75_cccccc_40x40.png | 0.15KB | 0.10KB | ▼ 35.06% |
views/assets/css/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png | 0.11KB | 0.14KB | 0.00% |