62% content-syndication-toolkit-reader

Code Review | Content Syndication Toolkit Reader

WordPress plugin Content Syndication Toolkit Reader scored62%from 54 tests.

About plugin

  • Plugin page: content-syndicati...
  • Plugin version: 1.5
  • PHP version: 7.4.16
  • WordPress compatibility: 3.0-4.8.2
  • WordPress version: 6.3.1
  • First release: Dec 4, 2014
  • Latest release: Oct 19, 2017
  • Number of updates: 60
  • Update frequency: every 17.5 days
  • Top authors: ben.moody (100%)

Code review

54 tests

User reviews

1 review

Install metrics

100+ active /3,163 total downloads

Benchmarks

Plugin footprint 65% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
The plugin installed gracefully, with no errors

Server metrics [RAM: ▼0.04MB] [CPU: ▼31.83ms] Passed 4 tests

Server-side resources used by Content Syndication Toolkit Reader
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /3.57 ▲0.1143.81 ▲0.25
Dashboard /wp-admin4.09 ▲0.7928.06 ▼27.82
Posts /wp-admin/edit.php4.09 ▲0.7426.70 ▼25.19
Add New Post /wp-admin/post-new.php4.09 ▼1.7930.86 ▼66.29
Media Library /wp-admin/upload.php4.09 ▲0.8727.82 ▼8.00
Content Syndication /wp-admin/options-general.php?page=prso_synd_toolkit_reader_options_options4.0925.71

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

Analyzing filesystem and database footprints of this plugin
This plugin installed successfully
Filesystem: 428 new files
Database: no new tables, 8 new options
New WordPress options
widget_recent-comments
theysaidso_admin_options
prso_synd_toolkit_reader_options-transients
redux-framework-tracking
can_compress_scripts
widget_recent-posts
db_upgraded
widget_theysaidso_widget

Browser metrics Passed 4 tests

Content Syndication Toolkit Reader: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,809 ▲3813.35 ▼1.021.78 ▼0.3142.45 ▼3.69
Dashboard /wp-admin2,218 ▲334.88 ▼0.04108.51 ▼9.4841.39 ▼6.22
Posts /wp-admin/edit.php2,098 ▲122.01 ▲0.0239.55 ▲1.5034.78 ▲0.71
Add New Post /wp-admin/post-new.php1,522 ▲817.57 ▲0.06681.78 ▲7.2851.26 ▼4.23
Media Library /wp-admin/upload.php1,400 ▲124.23 ▼0.0799.64 ▼2.7142.33 ▼5.50
Content Syndication /wp-admin/options-general.php?page=prso_synd_toolkit_reader_options_options1,4414.2984.9746.85

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
These items require your attention
  • This plugin did not uninstall without warnings or errors
    • > Warning in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/extensions/customizer/extension_customizer.php+358
    "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
  • Zombie WordPress options were found after uninstall: 8 options
    • widget_recent-posts
    • widget_theysaidso_widget
    • theysaidso_admin_options
    • redux-framework-tracking
    • prso_synd_toolkit_reader_options-transients
    • can_compress_scripts
    • widget_recent-comments
    • db_upgraded

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Almost there, just fix the following server-side errors
  • 6 occurences, only the last one shown
    • > GET request to /wp-admin/options-general.php?page=prso_synd_toolkit_reader_options_options
    • > Warning in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/extensions/customizer/extension_customizer.php+442
    "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

SRP 0% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
The following issues need your attention
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/inc/p.php
  • 15× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      require_once(): Failed opening required 'ABSPATHwp-admin/includes/import.php' (include_path='.:/usr/share/php') in wp-content/plugins/content-syndication-toolkit-reader/inc/class/class.importer.php on line 7
    • > PHP Warning
      Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/content-syndication-toolkit-reader/inc/class/class.importer.php on line 7
    • > PHP Warning
      "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/extensions/customizer/extension_customizer.php on line 442
    • > PHP Notice
      Undefined variable: header in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/inc/p.php on line 219
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/inc/class.p.php:7
    • > PHP Warning
      "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/extensions/customizer/extension_customizer.php on line 411
    • > PHP Warning
      "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/extensions/customizer/extension_customizer.php on line 380
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/inc/fields/select/elusive-icons.php:312
    • > PHP Fatal error
      Uncaught Error: Call to undefined function plugin_dir_path() in wp-content/plugins/content-syndication-toolkit-reader/prso-content-synd-toolkit-reader.php:25
    • > PHP Warning
      "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in wp-content/plugins/content-syndication-toolkit-reader/inc/ReduxFramework/ReduxCore/extensions/customizer/extension_customizer.php on line 358

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 Passed 16 tests

The readme.txt file is undoubtedly the most important file in your plugin, preparing it for public listing on WordPress.org
9 plugin tags: content aggregation, syndication network, content syndication, aggregator network, content aggregator...

content-syndication-toolkit-reader/prso-content-synd-toolkit-reader.php 85% from 13 tests

The principal PHP file in "Content Syndication Toolkit Reader" v. 1.5 is loaded by WordPress automatically on each request
It is important to fix the following:
  • Main file name: It is recommended to name the main PHP file as the plugin slug ("content-syndication-toolkit-reader.php" instead of "prso-content-synd-toolkit-reader.php")
  • Text Domain: Please use dashes and lowercase characters for text domains

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short glimpse at programming languages used with this plugin and a check that no dangerous files are present
There were no executable files found in this plugin35,531 lines of code in 336 files:
LanguageFilesBlank linesComment linesLines of code
PHP803,7515,59612,781
JavaScript1532,7342,16612,644
LESS313952024,116
CSS402961483,811
Sass24301,070
PO File1223293544
SVG100309
Markdown229070
HTML18060
Bourne Shell124055
JSON10036
YAML10135

PHP code Passed 2 tests

A brief analysis of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.58
Average class complexity37.31
▷ Minimum class complexity1.00
▷ Maximum class complexity794.00
Average method complexity6.68
▷ Minimum method complexity1.00
▷ Maximum method complexity91.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes77
▷ Abstract classes00.00%
▷ Concrete classes77100.00%
▷ Final classes00.00%
Methods492
▷ Static methods336.71%
▷ Public methods41784.76%
▷ Protected methods428.54%
▷ Private methods336.71%
Functions11
▷ Named functions11100.00%
▷ Anonymous functions00.00%
Constants12
▷ Global constants12100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
39 PNG files occupy 0.27MB with 0.07MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
inc/ReduxFramework/ReduxCore/inc/fields/spinner/arrow_right.png0.15KB0.12KB▼ 18.18%
inc/ReduxFramework/ReduxCore/inc/fields/spinner/arrow_left.png0.15KB0.12KB▼ 16.67%
inc/ReduxConfig/patterns/wild_flowers.png46.05KB49.23KB0.00%
inc/ReduxFramework/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_454545_256x240.png4.27KB4.11KB▼ 3.78%
inc/ReduxFramework/ReduxCore/assets/img/3cl.png3.08KB0.33KB▼ 89.13%