56% isolation-flow-manager

Code Review | Isolation Flow Manager

WordPress plugin Isolation Flow Manager scored56%from 54 tests.

About plugin

  • Plugin page: isolation-flow-ma...
  • Plugin version: 1.0
  • PHP compatiblity: 7.3.7+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.2.1-5.5.1
  • WordPress version: 6.3.1
  • First release: Nov 3, 2020
  • Latest release: Nov 3, 2020
  • Number of updates: 10
  • Update frequency: N/A
  • Top authors: nanajuly (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /341 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
Installer ran successfully

Server metrics [RAM: ▼0.49MB] [CPU: ▼28.26ms] Passed 4 tests

A check of server-side resources used by Isolation Flow Manager
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /3.48 ▲0.0237.42 ▲0.21
Dashboard /wp-admin3.52 ▲0.2229.76 ▼23.36
Posts /wp-admin/edit.php3.52 ▲0.1628.29 ▼16.62
Add New Post /wp-admin/post-new.php3.52 ▼2.3724.96 ▼64.42
Media Library /wp-admin/upload.php3.52 ▲0.2925.28 ▼8.62
切り分け実行履歴 /wp-admin/admin.php?page=isolation-flow-manager-user-23.5225.05
設定 /wp-admin/admin.php?page=isolation-flow-manager-13.5226.04
フロー実行 /wp-admin/admin.php?page=isolation-flow-manager-user-13.5223.59
フロー編集 /wp-admin/admin.php?page=isolation-flow-manager-23.5221.64

Server storage [IO: ▲8.65MB] [DB: ▲0.01MB] Passed 3 tests

Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 138 new files
Database: 5 new tables, 9 new options
New tables
wp_isfl_flow
wp_isfl_input
wp_isfl_group
wp_isfl_choices
wp_isfl_result
New WordPress options
widget_recent-comments
widget_theysaidso_widget
can_compress_scripts
isolation-flow-manager-db-version
widget_recent-posts
isolation-flow-manager
theysaidso_admin_options
db_upgraded
isolation-flow-manager_settings

Browser metrics Passed 4 tests

Isolation Flow Manager: an overview of browser usage
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,824 ▲6314.35 ▲0.001.70 ▼0.0543.36 ▲5.01
Dashboard /wp-admin2,230 ▲535.63 ▲0.0590.53 ▲4.0753.10 ▲10.97
Posts /wp-admin/edit.php2,135 ▲351.97 ▲0.0238.16 ▲2.0146.96 ▲12.39
Add New Post /wp-admin/post-new.php1,554 ▲1923.15 ▲5.01654.34 ▲29.2654.43 ▼12.11
Media Library /wp-admin/upload.php1,435 ▲354.17 ▼0.02102.00 ▲8.8852.41 ▲8.19
切り分け実行履歴 /wp-admin/admin.php?page=isolation-flow-manager-user-21,0402.2528.91100.98
設定 /wp-admin/admin.php?page=isolation-flow-manager-11,3322.5339.6986.88
フロー実行 /wp-admin/admin.php?page=isolation-flow-manager-user-11,0212.1625.1069.66
フロー編集 /wp-admin/admin.php?page=isolation-flow-manager-21,1442.6561.7657.71

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
  • This plugin did not uninstall without warnings or errors
    • > Notice in wp-content/plugins/isolation-flow-manager/isolation_flow_manager.php+258
    Undefined index: HTTP_ACCEPT_LANGUAGE
  • This plugin does not fully uninstall, leaving 6 options in the database
    • widget_recent-posts
    • can_compress_scripts
    • db_upgraded
    • theysaidso_admin_options
    • widget_recent-comments
    • widget_theysaidso_widget

Smoke tests 0% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
These server-side errors were triggered
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=isolation-flow-manager-2
    • > Notice in wp-content/plugins/isolation-flow-manager/isolation_flow_manager.php+258
    Undefined index: HTTP_ACCEPT_LANGUAGE
    • > GET request to /wp-admin/admin.php?page=isolation-flow-manager-1
    • > Notice in wp-content/plugins/isolation-flow-manager/isolation_flow_manager.php+833
    Undefined index: type
    • > GET request to /wp-admin/admin.php?page=isolation-flow-manager-1
    • > Notice in wp-content/plugins/isolation-flow-manager/template/admin_menu_main_page.php+65
    Undefined variable: result_message
  • 7 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=isolation-flow-manager-1
    • > Notice in wp-content/plugins/isolation-flow-manager/template/admin_menu_main_page.php+157
    Undefined variable: errors
  • 14 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=isolation-flow-manager-1
    • > Notice in wp-content/plugins/isolation-flow-manager/template/admin_menu_main_page.php+157
    Trying to access array offset on value of type null

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
Please fix the following items
  • 2× GET requests to PHP files return non-empty strings:
    • > /wp-content/plugins/isolation-flow-manager/template/inc_tmpl_dialog_common.php
    • > /wp-content/plugins/isolation-flow-manager/trunk/template/inc_tmpl_dialog_common.php
  • 38× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'ISFL_IsolationFlowManager' not found in wp-content/plugins/isolation-flow-manager/trunk/template/admin_menu_exec_page.php:3
    • > PHP Notice
      Undefined variable: msg in wp-content/plugins/isolation-flow-manager/template/inc_tmpl_dialog_select_flow_group.php on line 4
    • > PHP Fatal error
      Uncaught Error: Class 'ISFL_IsolationFlowManager' not found in wp-content/plugins/isolation-flow-manager/trunk/template/admin_menu_edit_page.php:3
    • > PHP Fatal error
      Uncaught Error: Function name must be a string in wp-content/plugins/isolation-flow-manager/trunk/template/inc_tmpl_dialog_select_flow_results.php:5
    • > PHP Fatal error
      Uncaught Error: Call to undefined function register_activation_hook() in wp-content/plugins/isolation-flow-manager/isolation-flow-manager-plugin.php:60
    • > PHP Fatal error
      Uncaught Error: Class 'ISFL_IsolationFlowManager' not found in wp-content/plugins/isolation-flow-manager/trunk/langs/messages_en.php:9
    • > PHP Fatal error
      Uncaught Error: Class 'ISFL_IsolationFlowManager' not found in wp-content/plugins/isolation-flow-manager/template/admin_menu_edit_page.php:3
    • > PHP Fatal error
      Uncaught Error: Class 'Valitron\\Validator' not found in wp-content/plugins/isolation-flow-manager/trunk/Valitron/inc_valitron_my_extention.php:24
    • > PHP Notice
      Undefined variable: msg in wp-content/plugins/isolation-flow-manager/trunk/template/inc_tmpl_dialog_count_flow_results.php on line 5
    • > PHP Notice
      Undefined variable: msg in wp-content/plugins/isolation-flow-manager/trunk/template/inc_tmpl_dialog_select_img.php on line 4

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)
Please fix the following browser errors
    • > GET request to /wp-admin/admin.php?page=isolation-flow-manager-user-1
    • > Network (severe)
    wp-json/isolation-flow-manager/api/flow_results?status=created - Failed to load resource: the server responded with a status of 404 (Not Found)
    • > GET request to /wp-admin/admin.php?page=isolation-flow-manager-user-1
    • > Javascript (severe) in unknown
    /wp-admin/admin.php?page=isolation-flow-manager-user-1 543:15 Uncaught TypeError: Cannot read properties of undefined (reading 'transactJsonErrByAlert')

Optimizations

Plugin configuration 93% from 29 tests

readme.txt 94% from 16 tests

Perhaps the most important file in your plugin readme.txt gets parsed in order to generate the public listing of your plugin
Attributes that need to be fixed:
  • Screenshots: Add images for these screenshots: #1 (Settings screen), #2 (EditFlows screen), #3 (EditFlows-Property screen), #4 (ExecFlows screen), #5 (History screen), #6 (History-Statistics-ByTime screen), #7 (History-Statistics-ByFlows screen), #8 (History-Statistics-ByUser screen), #9 (日本語: EditFlows screen), #10 (日本語: EditFlows-Property screen), #11 (日本語: ExecFlows screen)
The official readme.txt might help

isolation-flow-manager/isolation-flow-manager-plugin.php 92% from 13 tests

The main file in "Isolation Flow Manager" v. 1.0 serves as a complement to information provided in readme.txt and as the entry point to the plugin
It is important to fix the following:
  • Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("isolation-flow-manager.php" instead of "isolation-flow-manager-plugin.php")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Everything looks great! No dangerous files found in this plugin22,652 lines of code in 44 files:
LanguageFilesBlank linesComment linesLines of code
SVG30128,954
JavaScript131,4362,6477,210
PHP226281,6845,175
CSS394921,086
JSON200198
Markdown111029

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
Everything seems fine, there were no complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.38
Average class complexity97.33
▷ Minimum class complexity1.00
▷ Maximum class complexity206.00
Average method complexity4.32
▷ Minimum method complexity1.00
▷ Maximum method complexity31.00
Code structure
Namespaces1
Interfaces0
Traits0
Classes12
▷ Abstract classes00.00%
▷ Concrete classes12100.00%
▷ Final classes00.00%
Methods334
▷ Static methods267.78%
▷ Public methods17452.10%
▷ Protected methods15446.11%
▷ Private methods61.80%
Functions34
▷ Named functions25.88%
▷ Anonymous functions3294.12%
Constants30
▷ Global constants00.00%
▷ Class constants30100.00%
▷ Public constants30100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

PNG files should be compressed to save space and minimize bandwidth usage
There are no PNG files in this plugin