94% qodeblock

Code Review | Gutenberg Blocks Collection - qodeblock

WordPress plugin Gutenberg Blocks Collection - qodeblock scored 94% from 53 tests.

About plugin

  • Plugin page: qodeblock
  • Plugin version: 1.0.1
  • PHP compatiblity: 5.2.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.8.3-5.7.0
  • WordPress version: 5.8.1
  • First release: Jun 14, 2019
  • Latest release: Sep 14, 2021
  • Number of updates: 34
  • Update frequency: every 24.4 days
  • Top authors: qodeblock (100%)

Code review

53 tests

User reviews

1 review

Install metrics

9,000+ active / 41,820 total downloads

Benchmarks

Plugin footprint Passed 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Install script ran successfully

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

This is a short check of server-side resources used by Gutenberg Blocks Collection - qodeblock
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.15 ▲0.4331.84 ▲13.63
Dashboard /wp-admin3.44 ▲0.3847.53 ▲5.91
Posts /wp-admin/edit.php3.48 ▲0.3838.83 ▼2.63
Add New Post /wp-admin/post-new.php4.97 ▼0.4663.81 ▼1,059.45
Media Library /wp-admin/upload.php3.31 ▲0.3133.01 ▼9.37
Settings /wp-admin/admin.php?page=qodeblock-plugin-settings3.2829.11
Getting Started /wp-admin/admin.php?page=qodeblock3.2930.39

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

Analyzing filesystem and database footprints of this plugin
No storage issues were detected
Filesystem: 212 new files
Database: no new tables, no new options

Browser metrics Passed 4 tests

An overview of browser requirements for Gutenberg Blocks Collection - qodeblock
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,884 ▲30216.22 ▲0.7811.38 ▲3.8646.63 ▼3.05
Dashboard /wp-admin3,014 ▲1645.96 ▲0.09131.17 ▼14.62118.46 ▲13.90
Posts /wp-admin/edit.php2,786 ▲832.71 ▲0.0165.55 ▲0.8686.41 ▼5.99
Add New Post /wp-admin/post-new.php2,303 ▲65026.41 ▲7.60406.93 ▲48.18125.07 ▲14.47
Media Library /wp-admin/upload.php1,778 ▲34.96 ▼0.05129.76 ▼21.20137.25 ▲24.82
Settings /wp-admin/admin.php?page=qodeblock-plugin-settings1,0952.0650.4670.46
Getting Started /wp-admin/admin.php?page=qodeblock1,5352.3468.18107.37

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] Passed 4 tests

🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Uninstaller ran successfully

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not an exhaustive test

SRP 50% 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
Almost there! Just fix the following items
  • 9× GET requests to PHP files have triggered server-side errors or warnings:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function Qodeblock\ewsletter\\add_action() in wp-content/plugins/qodeblock/includes/newsletter/newsletter-functions.php:12
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/qodeblock/dist/getting-started/getting-started.php:40
    • > PHP Fatal error
      Uncaught Error: Class 'Qodeblock\\Exception\\API_Error_Exception' not found in wp-content/plugins/qodeblock/includes/exceptions/class-mailchimp-api-error-exception.php:19
    • > PHP Fatal error
      Uncaught Error: Call to undefined function get_option() in wp-content/plugins/qodeblock/dist/getting-started/pages/settings-general.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/qodeblock/src/qodeblocks/qodeblock-newsletter/index.php:8
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/qodeblock/src/qodeblocks/qodeblock-post-grid/index.php:410
    • > PHP Fatal error
      Uncaught Error: Interface 'Qodeblock\ewsletter\\Provider_Interface' not found in wp-content/plugins/qodeblock/includes/classes/class-mailchimp.php:18
    • > PHP Fatal error
      Uncaught Error: Call to undefined function esc_html() in wp-content/plugins/qodeblock/dist/getting-started/pages/settings-main.php:10
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/qodeblock/src/qodeblocks/qodeblock-sharing/index.php:75

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 97% from 29 tests

readme.txt 94% from 16 tests

You should put a lot of thought into formatting readme.txt as it is used by WordPress.org to prepare the public listing of your plugin
Attributes that require attention:
  • Screenshots: Screenshot #7 (Insert Google API key) image required
The official readme.txt might help

qodeblock/qodeblock.php Passed 13 tests

"Gutenberg Blocks Collection - qodeblock" version 1.0.1's main PHP file describes plugin functionality and also serves as the entry point to any WordPress functionality
103 characters long description:
A beautiful collection of handy Gutenberg blocks to help you get started with the new WordPress editor.

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | This is an overview of file extensions present in this plugin and a short test that no dangerous files are bundled with this plugin
Good job! No executable or dangerous file extensions detected23,747 lines of code in 167 files:
LanguageFilesBlank linesComment linesLines of code
JavaScript951,1801,0659,612
CSS222,049915,941
SVG4013,941
Sass2954502,508
PHP153516201,675
XML214670

PHP code Passed 2 tests

A brief analysis of cyclomatic complexity and code structure for this plugin
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.40
Average class complexity10.00
▷ Minimum class complexity1.00
▷ Maximum class complexity32.00
Average method complexity2.73
▷ Minimum method complexity1.00
▷ Maximum method complexity11.00
Code structure
Namespaces3
Interfaces1
Traits0
Classes4
▷ Abstract classes00.00%
▷ Concrete classes4100.00%
▷ Final classes125.00%
Methods28
▷ Static methods00.00%
▷ Public methods1864.29%
▷ Protected methods00.00%
▷ Private methods1035.71%
Functions34
▷ Named functions34100.00%
▷ Anonymous functions00.00%
Constants1
▷ Global constants00.00%
▷ Class constants1100.00%
▷ Public constants1100.00%

Plugin size 0% from 1 test

Image compression 0% from 1 test

PNG files should be compressed to save space and minimize bandwidth usage
18 PNG files occupy 2.28MB with 1.72MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
dist/getting-started/geo.png619.70KB72.38KB▼ 88.32%
dist/getting-started/images/reminder_note_1-4.png66.99KB18.59KB▼ 72.24%
dist/getting-started/images/image_post.png59.58KB15.06KB▼ 74.73%
dist/getting-started/images/content_digital.png69.28KB19.10KB▼ 72.43%
dist/getting-started/images/social_media_2-1.png48.48KB14.73KB▼ 69.61%