10% wp-redmine-issues

Code Review | WP-Redmine-Issues

WordPress plugin WP-Redmine-Issues scored10%from 54 tests.

About plugin

  • Plugin page: wp-redmine-issues
  • Plugin version: 1.1
  • PHP version: 7.4.16
  • WordPress version: 6.3.1
  • First release: Aug 11, 2018
  • Latest release: Aug 17, 2018
  • Number of updates: 13
  • Update frequency: every 0.6 days
  • Top authors: arcanasoft (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /749 total downloads

Benchmarks

Plugin footprint 40% from 16 tests

Installer 0% from 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Please fix the following installer errors
  • The plugin did not install without errors
    • > Deprecated in wp-content/plugins/wp-redmine-issues/includes/wpri_start.php+108
    Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`

Server metrics [RAM: ▼1.86MB] [CPU: ▼57.48ms] Passed 4 tests

This is a short check of server-side resources used by WP-Redmine-Issues
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /2.13 ▼1.335.01 ▼38.23
Dashboard /wp-admin2.15 ▼1.156.83 ▼46.85
Posts /wp-admin/edit.php2.15 ▼1.216.92 ▼43.80
Add New Post /wp-admin/post-new.php2.15 ▼3.748.27 ▼101.02
Media Library /wp-admin/upload.php2.15 ▼1.087.28 ▼31.37
WPRI - Settings /wp-admin/options-general.php?page=wpri-settings2.157.06
New Issue /wp-admin/admin.php?page=wpri-create-ticket2.157.26
Issues /wp-admin/admin.php?page=wpri2.155.66

Server storage [IO: ▲0.88MB] [DB: ▲0.00MB] Passed 3 tests

Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 32 new files
Database: no new tables, 6 new options
New WordPress options
widget_recent-posts
widget_theysaidso_widget
db_upgraded
can_compress_scripts
theysaidso_admin_options
widget_recent-comments

Browser metrics Passed 4 tests

A check of browser resources used by WP-Redmine-Issues
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,858 ▲9714.39 ▲0.041.81 ▲0.1741.33 ▼5.00
Dashboard /wp-admin2,243 ▲635.66 ▲0.0491.86 ▲1.4141.28 ▲2.50
Posts /wp-admin/edit.php2,144 ▲442.15 ▲0.0039.44 ▼1.8634.32 ▼0.79
Add New Post /wp-admin/post-new.php1,552 ▲2423.28 ▼0.00692.84 ▲80.3150.02 ▼7.15
Media Library /wp-admin/upload.php1,444 ▲414.25 ▲0.05113.19 ▲9.3348.84 ▲6.11
WPRI - Settings /wp-admin/options-general.php?page=wpri-settings9311.6524.1128.02
New Issue /wp-admin/admin.php?page=wpri-create-ticket7031.149.3818.16
Issues /wp-admin/admin.php?page=wpri7071.357.6916.18

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 50% from 4 tests

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
The following items require your attention
  • Uninstall procedure had uncaught errors
    • > Deprecated in wp-content/plugins/wp-redmine-issues/includes/wpri_start.php+108
    Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`
  • Zombie WordPress options were found after uninstall: 6 options
    • db_upgraded
    • can_compress_scripts
    • widget_recent-posts
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • widget_recent-comments

Smoke tests 50% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Please fix the following server-side errors
  • 3 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=wpri
    • > Deprecated in wp-content/plugins/wp-redmine-issues/includes/wpri_start.php+108
    Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`
    • > GET request to /wp-admin/options-general.php?page=wpri-settings
    • > Notice in wp-content/plugins/wp-redmine-issues/includes/lib/af_wp_html.class.php+351
    Undefined variable: timestamp

SRP 50% from 2 tests

🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
  • 14× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Fatal error
      require_once(): Failed opening required 'ABSPATHwp-admin/includes/class-wp-list-table.php' (include_path='.:/usr/share/php') in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_ticket_journal_table.class.php on line 9
    • > PHP Fatal error
      Uncaught Error: Class 'arcanasoft\\wpri\\wpri_Wp_List_Table' not found in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_ticket_list_table.class.php:8
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_ticket_journal_table.class.php on line 9
    • > PHP Warning
      require_once(ABSPATHwp-admin/includes/class-wp-list-table.php): failed to open stream: No such file or directory in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_ticket_journal_table.class.php on line 9
    • > PHP Warning
      require_once(ABSPATHwp-admin/includes/class-wp-list-table.php): failed to open stream: No such file or directory in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_ticket_journal_table.class.php on line 9
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_wp_list_table.class.php on line 9
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_wp_list_table.class.php on line 9
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_ticket_journal_table.class.php on line 9
    • > PHP Fatal error
      Uncaught Error: Class 'arcanasoft\\wpri\\wpri_Wp_List_Table' not found in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_ticket_list_table.class.php:8
    • > PHP Warning
      require_once(ABSPATHwp-admin/includes/class-wp-list-table.php): failed to open stream: No such file or directory in wp-content/plugins/wp-redmine-issues/includes/lib/wpri_wp_list_table.class.php on line 9

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a smoke test targeting browser errors/issues
Everything seems fine on the user side

Optimizations

Plugin configuration 83% from 29 tests

readme.txt 88% from 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
These attributes need your attention:
  • Screenshots: These screenshots do not have images: #1 (Issues List), #2 (Issue Details), #3 (Issue Create - Project), #4 (Issue Create - Tracker and Categorie), #5 (Issue Create - Details), #6 (Issues Settings)
  • Contributors: The plugin contributors field is not present
The official readme.txt might help

wp-redmine-issues/wpri.php 77% from 13 tests

"WP-Redmine-Issues" version 1.1'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: Please rename the main PHP file in this plugin to the plugin slug ("wp-redmine-issues.php" instead of "wpri.php")
  • Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
  • Description: The description should be shorter than 140 characters (currently 158 characters long)

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
Success! There were no dangerous files found in this plugin1,425 lines of code in 14 files:
LanguageFilesBlank linesComment linesLines of code
PHP112161491,129
PO File1750179
CSS1171072
JavaScript16445

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
No cyclomatic complexity issues were detected for this plugin
Cyclomatic complexity
Average complexity per logical line of code0.54
Average class complexity25.30
▷ Minimum class complexity1.00
▷ Maximum class complexity84.00
Average method complexity4.98
▷ Minimum method complexity1.00
▷ Maximum method complexity26.00
Code structure
Namespaces2
Interfaces0
Traits0
Classes10
▷ Abstract classes110.00%
▷ Concrete classes990.00%
▷ Final classes00.00%
Methods62
▷ Static methods4674.19%
▷ Public methods62100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions0
▷ Named functions00.00%
▷ Anonymous functions00.00%
Constants4
▷ Global constants00.00%
▷ Class constants4100.00%
▷ Public constants4100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

PNG files should be compressed to save space and minimize bandwidth usage
15 PNG files occupy 0.77MB with 0.38MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
img/icon-html-code.png0.44KB0.52KB0.00%
screenshot-1.png80.84KB31.82KB▼ 60.64%
screenshots/3. Ticket Create - Project.png49.63KB19.52KB▼ 60.67%
screenshot-5.png55.70KB22.04KB▼ 60.44%
screenshot-2.png82.83KB30.65KB▼ 63.00%