84% plain-event-calendar

Code Review | Plain Event Calendar

WordPress plugin Plain Event Calendar scored84%from 54 tests.

About plugin

  • Plugin page: plain-event-calendar
  • Plugin version: 1.0.2
  • PHP compatiblity: 5.6+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.1-6.3
  • WordPress version: 6.3.1
  • First release: Sep 6, 2022
  • Latest release: Aug 10, 2023
  • Number of updates: 5
  • Update frequency: every 67.6 days
  • Top authors: plainware (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /213 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
This plugin's installer ran successfully

Server metrics [RAM: ▲0.56MB] [CPU: ▲3.98ms] Passed 4 tests

Analyzing server-side resources used by Plain Event Calendar
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /3.96 ▲0.4944.71 ▲3.44
Dashboard /wp-admin3.89 ▲0.5856.78 ▲9.69
Posts /wp-admin/edit.php3.94 ▲0.5852.74 ▲4.14
Add New Post /wp-admin/post-new.php6.47 ▲0.5899.92 ▲0.16
Media Library /wp-admin/upload.php3.81 ▲0.5843.21 ▲8.19

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

A short overview of filesystem and database impact
There were no storage issued detected upon installing this plugin
Filesystem: 48 new files
Database: no new tables, 6 new options
New WordPress options
theysaidso_admin_options
widget_theysaidso_widget
db_upgraded
widget_recent-posts
widget_recent-comments
can_compress_scripts

Browser metrics Passed 4 tests

An overview of browser requirements for Plain Event Calendar
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,824 ▲7813.59 ▼0.631.97 ▲0.1845.66 ▲0.04
Dashboard /wp-admin2,227 ▲424.89 ▼0.96110.06 ▲4.9839.65 ▼1.89
Posts /wp-admin/edit.php2,113 ▲452.17 ▲0.1739.55 ▲4.7334.55 ▲0.46
Add New Post /wp-admin/post-new.php6,379 ▲4,86522.54 ▲4.96881.82 ▲175.5363.59 ▲3.92
Media Library /wp-admin/upload.php1,412 ▲244.22 ▲0.0494.66 ▼14.2043.29 ▼5.83

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

🔸 Tests weight: 35 | All plugins must uninstall correctly, removing their source code and extra database tables they might have created
You still need to fix the following
  • This plugin does not fully uninstall, leaving 6 options in the database
    • widget_recent-posts
    • widget_recent-comments
    • can_compress_scripts
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • db_upgraded

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Even though no errors were found, this is by no means an exhaustive test

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
  • 10× GET requests to PHP files trigger server-side errors or Error 500 responses:
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\Model' not found in wp-content/plugins/plain-event-calendar/_/WpModelCustomPost.php:5
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\WpModelCustomPost' not found in wp-content/plugins/plain-event-calendar/app/WpModelCustomPost.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\PlainEventCalendar\\ModelSqlTable' not found in wp-content/plugins/plain-event-calendar/event/ModelEvent.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\WpDb' not found in wp-content/plugins/plain-event-calendar/app/Db.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\PlainEventCalendar\\ModelSqlTable' not found in wp-content/plugins/plain-event-calendar/install/ModelInstall.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\WpApp' not found in wp-content/plugins/plain-event-calendar/app/App.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\ModelSqlTable' not found in wp-content/plugins/plain-event-calendar/app/ModelSqlTable.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\Model' not found in wp-content/plugins/plain-event-calendar/_/ModelSqlTable.php:6
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\WpModelSettingOption' not found in wp-content/plugins/plain-event-calendar/setting/ModelSetting.php:4
    • > PHP Fatal error
      Uncaught Error: Class 'Plainware\\App' not found in wp-content/plugins/plain-event-calendar/_/WpApp.php:4

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
There were no browser issues found

Optimizations

Plugin configuration 96% from 29 tests

readme.txt Passed 16 tests

The readme.txt file uses markdown syntax to describe your plugin to the world
7 plugin tags: church, university, event calendar, event manager, school...

plain-event-calendar/plain-event-calendar.php 92% from 13 tests

The main file in "Plain Event Calendar" v. 1.0.2 serves as a complement to information provided in readme.txt and as the entry point to the plugin
Please make the necessary changes and fix the following:
  • Domain Path: The domain path folder does not exist ("/languages/")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
Good job! No executable or dangerous file extensions detected5,414 lines of code in 46 files:
LanguageFilesBlank linesComment linesLines of code
PHP431,3062935,163
CSS26147223
JavaScript11728

PHP code Passed 2 tests

A short review of cyclomatic complexity and code structure
No complexity issues detected
Cyclomatic complexity
Average complexity per logical line of code0.31
Average class complexity17.77
▷ Minimum class complexity1.00
▷ Maximum class complexity134.00
Average method complexity3.30
▷ Minimum method complexity1.00
▷ Maximum method complexity40.00
Code structure
Namespaces2
Interfaces0
Traits0
Classes44
▷ Abstract classes1022.73%
▷ Concrete classes3477.27%
▷ Final classes00.00%
Methods325
▷ Static methods14745.23%
▷ Public methods32299.08%
▷ Protected methods30.92%
▷ Private methods00.00%
Functions10
▷ Named functions550.00%
▷ Anonymous functions550.00%
Constants0
▷ Global constants00.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
No PNG images were found in this plugin