73% homepage-planner

Code Review | Homepage Planner

WordPress plugin Homepage Planner scored 73% from 54 tests.

About plugin

  • Plugin page: homepage-planner
  • Plugin version: 1.0.1
  • PHP compatiblity: 7.2+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.5-5.6
  • WordPress version: 6.3.1
  • First release: Jan 20, 2021
  • Latest release: Jan 23, 2021
  • Number of updates: 7
  • Update frequency: every 0.6 days
  • Top authors: arnedb (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active / 345 total downloads

Benchmarks

Plugin footprint 83% 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 successfully, without throwing any errors or notices

Server metrics [RAM: ▲0.15MB] [CPU: ▼2.79ms] Passed 4 tests

A check of server-side resources used by Homepage Planner
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /3.59 ▲0.1339.41 ▼4.36
Dashboard /wp-admin3.51 ▲0.2046.36 ▼5.06
Posts /wp-admin/edit.php3.56 ▲0.2050.45 ▲2.04
Add New Post /wp-admin/post-new.php6.02 ▲0.1493.54 ▼3.78
Media Library /wp-admin/upload.php3.37 ▲0.1439.20 ▲2.26

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

How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 119 new files
Database: no new tables, 6 new options
New WordPress options
widget_recent-posts
theysaidso_admin_options
db_upgraded
widget_recent-comments
widget_theysaidso_widget
can_compress_scripts

Browser metrics Passed 4 tests

A check of browser resources used by Homepage Planner
Normal browser usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,800 ▲6514.48 ▼0.181.79 ▼0.0643.31 ▼0.17
Dashboard /wp-admin2,206 ▲154.88 ▼0.02111.99 ▲10.8838.75 ▼0.64
Posts /wp-admin/edit.php2,089 ▼02.04 ▲0.0139.00 ▲2.5336.04 ▼0.46
Add New Post /wp-admin/post-new.php1,528 ▲818.58 ▼4.47629.00 ▼54.4550.11 ▼10.98
Media Library /wp-admin/upload.php1,385 ▼64.16 ▼0.1092.65 ▼7.3740.66 ▼2.54

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

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
It is recommended to fix the following
  • This plugin did not uninstall successfully, leaving 6 options in the database
    • widget_recent-posts
    • db_upgraded
    • widget_theysaidso_widget
    • widget_recent-comments
    • can_compress_scripts
    • theysaidso_admin_options

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
The smoke test was a success, however most plugin functionality was not tested

SRP 50% 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
Please fix the following
  • 25× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\VarDumper\\Caster\\CutStub' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Caster/CutArrayStub.php:19
    • > PHP Fatal error
      Uncaught Error: Interface 'Symfony\\Component\\VarDumper\\Command\\Descriptor\\DumpDescriptorInterface' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php:28
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Cloner/VarCloner.php:17
    • > PHP Fatal error
      Uncaught Error: Interface 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php:19
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\VarDumper\\Cloner\\Stub' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Caster/EnumStub.php:21
    • > PHP Fatal error
      Uncaught Error: Interface 'Symfony\\Component\\VarDumper\\Dumper\\DataDumperInterface' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php:20
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\VarDumper\\Caster\\ConstStub' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Caster/ClassStub.php:21
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\Console\\Command\\Command' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Command/ServerDumpCommand.php:35
    • > PHP Fatal error
      Uncaught Error: Interface 'Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php:23
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\VarDumper\\Dumper\\CliDumper' not found in wp-content/plugins/homepage-planner/vendor/symfony/var-dumper/Dumper/HtmlDumper.php:22

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 86% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file describes your plugin functionality and requirements and it is parsed to prepare the your plugin's listing
Attributes that require attention:
  • Plugin Name: "Plugin Name" should be replaced with the name of your plugin on the first line ( === homepage-planner === )
Please take inspiration from this readme.txt

homepage-planner/adb-homepage-planner.php 77% from 13 tests

The primary PHP file in "Homepage Planner" version 1.0.1 is used by WordPress to initiate all plugin functionality
It is important to fix the following:
  • Domain Path: The domain path points to a folder that does not exist ("/languages")
  • Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug
  • Main file name: Even though not officially enforced, the main plugin file should be the same as the plugin slug ("homepage-planner.php" instead of "adb-homepage-planner.php")

Code Analysis 5% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
Please make sure to remedy the following
  • Do not include executable or dangerous files in your plugin
    • .bat - Batch File in Windows
      • wp-content/plugins/homepage-planner/vendor/bin/var-dump-server.bat
11,217 lines of code in 112 files:
LanguageFilesBlank linesComment linesLines of code
PHP931,6061,58710,443
JSON600490
CSS100130
Markdown8430122
Bourne Shell13110
JavaScript10010
YAML1308
DOS Batch1004

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.53
Average class complexity17.08
▷ Minimum class complexity1.00
▷ Maximum class complexity162.00
Average method complexity4.20
▷ Minimum method complexity1.00
▷ Maximum method complexity64.00
Code structure
Namespaces15
Interfaces6
Traits1
Classes69
▷ Abstract classes22.90%
▷ Concrete classes6797.10%
▷ Final classes811.94%
Methods363
▷ Static methods20055.10%
▷ Public methods30082.64%
▷ Protected methods215.79%
▷ Private methods4211.57%
Functions63
▷ Named functions5282.54%
▷ Anonymous functions1117.46%
Constants45
▷ Global constants48.89%
▷ Class constants4191.11%
▷ Public constants4097.56%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Using a strong compression for your PNG files is a great way to speed-up your plugin
No PNG images were found in this plugin