67% woning-website-uitbreiding

Code Review | Woning Website Uitbreiding

WordPress plugin Woning Website Uitbreiding scored67%from 54 tests.

About plugin

  • Plugin page: woning-website-ui...
  • Plugin version: 1.1.3
  • PHP compatiblity: 7.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.9-6.1.1
  • WordPress version: 6.3.1
  • First release: Jul 4, 2018
  • Latest release: Mar 15, 2023
  • Number of updates: 24
  • Update frequency: every 71.5 days
  • Top authors: Tussendoor (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /1,168 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
This plugin's installer ran successfully

Server metrics [RAM: ▲2.54MB] [CPU: ▲9.61ms] Passed 4 tests

A check of server-side resources used by Woning Website Uitbreiding
Normal server usage
PageMemory (MB)CPU Time (ms)
Home /5.98 ▲2.5153.74 ▲3.60
Dashboard /wp-admin5.89 ▲2.5961.56 ▲7.64
Posts /wp-admin/edit.php5.95 ▲2.5969.26 ▲17.38
Add New Post /wp-admin/post-new.php8.41 ▲2.53107.93 ▲9.80
Media Library /wp-admin/upload.php5.75 ▲2.5256.77 ▲21.93

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

Analyzing filesystem and database footprints of this plugin
No storage issues were detected
Filesystem: 1,115 new files
Database: no new tables, 6 new options
New WordPress options
widget_theysaidso_widget
widget_recent-posts
theysaidso_admin_options
widget_recent-comments
db_upgraded
can_compress_scripts

Browser metrics Passed 4 tests

Woning Website Uitbreiding: an overview of browser usage
This plugin renders optimally with no browser resource issues detected
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,806 ▲2014.10 ▼0.511.87 ▼0.0837.97 ▼5.61
Dashboard /wp-admin2,212 ▲355.63 ▼0.0594.22 ▼7.5945.43 ▲1.32
Posts /wp-admin/edit.php2,118 ▲182.02 ▲0.0141.44 ▲4.2536.96 ▲0.10
Add New Post /wp-admin/post-new.php1,543 ▲1523.23 ▲0.12650.83 ▼58.3860.59 ▲8.94
Media Library /wp-admin/upload.php1,417 ▲234.20 ▲0.02101.52 ▼0.5745.90 ▲2.14

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
Please fix the following items
  • Zombie WordPress options detected upon uninstall: 6 options
    • theysaidso_admin_options
    • widget_theysaidso_widget
    • can_compress_scripts
    • widget_recent-posts
    • widget_recent-comments
    • db_upgraded

Smoke tests 50% 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 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
Please take a closer look at the following
  • 1× PHP files output text when accessed directly:
    • > /wp-content/plugins/woning-website-uitbreiding/assets/views/admin.metabox.php
  • 149× PHP files trigger server errors when accessed directly (only 10 are shown):
    • > PHP Fatal error
      Uncaught ReflectionException: Class PHPStan\\Reflection\\Php\\BuiltinMethodReflection does not exist in wp-content/plugins/woning-website-uitbreiding/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php:20
    • > PHP Fatal error
      Uncaught Error: Interface 'Carbon\\Exceptions\\InvalidArgumentException' not found in wp-content/plugins/woning-website-uitbreiding/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php:16
    • > PHP Fatal error
      Trait 'Carbon\\Traits\\IntervalRounding' not found in wp-content/plugins/woning-website-uitbreiding/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php on line 27
    • > PHP Fatal error
      Uncaught Error: Interface 'Tussendoor\\Settings\\Providers\\SettingsProviderInterface' not found in wp-content/plugins/woning-website-uitbreiding/vendor/tussendoor/settings/src/Providers/SettingsProviderOption.php:5
    • > PHP Fatal error
      Uncaught Error: Interface 'Symfony\\Component\\Translation\\Provider\\ProviderFactoryInterface' not found in wp-content/plugins/woning-website-uitbreiding/vendor/symfony/translation/Provider/AbstractProviderFactory.php:16
    • > PHP Fatal error
      Uncaught Exception: This script must be run from the command line. in wp-content/plugins/woning-website-uitbreiding/vendor/symfony/translation/Resources/bin/translation-status.php:13
    • > PHP Fatal error
      Uncaught Error: Interface 'Carbon\\Exceptions\\InvalidArgumentException' not found in wp-content/plugins/woning-website-uitbreiding/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php:16
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\Translation\\Loader\\FileLoader' not found in wp-content/plugins/woning-website-uitbreiding/vendor/symfony/translation/Loader/CsvFileLoader.php:21
    • > PHP Fatal error
      Uncaught Error: Interface 'Symfony\\Component\\Translation\\Formatter\\IntlFormatterInterface' not found in wp-content/plugins/woning-website-uitbreiding/vendor/symfony/translation/Formatter/IntlFormatter.php:21
    • > PHP Fatal error
      Uncaught Error: Class 'Symfony\\Component\\Translation\\Dumper\\FileDumper' not found in wp-content/plugins/woning-website-uitbreiding/vendor/symfony/translation/Dumper/IcuResFileDumper.php:21

User-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for browser errors
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 83% from 29 tests

readme.txt 94% from 16 tests

The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
Attributes that require attention:
  • Tags: Please delete some tags, you are using 14 tag instead of maximum 10
The official readme.txt might help

woning-website-uitbreiding/index.php 69% from 13 tests

The principal PHP file in "Woning Website Uitbreiding" v. 1.1.3 is loaded by WordPress automatically on each request
Please make the necessary changes and fix the following:
  • Text Domain: The text domain is optional since WordPress version 4.6; if you do specify it, it must be the same as the plugin slug
  • Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 142 characters long)
  • Main file name: The principal plugin file should be the same as the plugin slug ("woning-website-uitbreiding.php" instead of "index.php")
  • Requires at least: Required version does not match the one declared in readme.txt ("4.7" instead of "5.9")

Code Analysis 3% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
It is important to fix the following items
  • Even if your plugin relies on executable files (for example a companion app), never distribute executable files with your plugin
    • .bat - Batch File in Windows
      • wp-content/plugins/woning-website-uitbreiding/vendor/nesbot/carbon/bin/carbon.bat
42,540 lines of code in 905 files:
LanguageFilesBlank linesComment linesLines of code
PHP8757,39925,69437,701
XSD392482,803
JSON9001,140
Markdown111830456
CSS1671338
JavaScript16333
PO File191431
XML12222
YAML21512
DOS Batch1004

PHP code 50% from 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
Please tend to the following items
  • Cyclomatic complexity of methods should be reduced to less than 100 (currently 140)
Cyclomatic complexity
Average complexity per logical line of code0.47
Average class complexity13.68
▷ Minimum class complexity1.00
▷ Maximum class complexity323.00
Average method complexity2.85
▷ Minimum method complexity1.00
▷ Maximum method complexity140.00
Code structure
Namespaces40
Interfaces28
Traits28
Classes165
▷ Abstract classes1710.30%
▷ Concrete classes14889.70%
▷ Final classes1510.14%
Methods1,809
▷ Static methods39421.78%
▷ Public methods1,52884.47%
▷ Protected methods1558.57%
▷ Private methods1266.97%
Functions353
▷ Named functions10429.46%
▷ Anonymous functions24970.54%
Constants110
▷ Global constants76.36%
▷ Class constants10393.64%
▷ Public constants10097.09%

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