72% aec-kiosque

Code Review | AEC Kiosque

WordPress plugin AEC Kiosque scored72%from 54 tests.

About plugin

  • Plugin page: aec-kiosque
  • Plugin version: 1.5.9
  • PHP compatiblity: 5.4+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.7-6.0
  • WordPress version: 6.3.1
  • First release: Aug 26, 2021
  • Latest release: Nov 22, 2023
  • Number of updates: 60
  • Update frequency: every 13.8 days
  • Top authors: atlsoftware (100%)

Code review

54 tests

User reviews

1 review

Install metrics

10+ active /2,221 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
The plugin installed successfully, without throwing any errors or notices

Server metrics [RAM: ▲0.44MB] [CPU: ▲5.30ms] Passed 4 tests

An overview of server-side resources used by AEC Kiosque
Server-side resource usage in normal parameters
PageMemory (MB)CPU Time (ms)
Home /3.72 ▲0.2541.73 ▲6.06
Dashboard /wp-admin3.83 ▲0.5255.81 ▲5.26
Posts /wp-admin/edit.php3.88 ▲0.5250.13 ▲3.34
Add New Post /wp-admin/post-new.php6.47 ▲0.5799.67 ▲6.52
Media Library /wp-admin/upload.php3.69 ▲0.4544.18 ▲7.57
/wp-admin/admin.php?page=aec-setup3.6537.39
Help center /wp-admin/admin.php?page=aec-help3.6936.47
Shortcode generator /wp-admin/admin.php?page=aec-shortcode-generator3.6632.09
Settings /wp-admin/admin.php?page=aec-settings3.6636.77

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

How much does this plugin use your filesystem and database?
There were no storage issued detected upon installing this plugin
Filesystem: 51 new files
Database: no new tables, 6 new options
New WordPress options
widget_recent-posts
widget_theysaidso_widget
can_compress_scripts
widget_recent-comments
theysaidso_admin_options
db_upgraded

Browser metrics Passed 4 tests

This is an overview of browser requirements for AEC Kiosque
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /3,011 ▲24913.72 ▼0.509.17 ▲7.4617.95 ▼19.17
Dashboard /wp-admin2,274 ▲935.59 ▼0.1488.85 ▼25.4997.66 ▲48.71
Posts /wp-admin/edit.php2,200 ▲1001.95 ▼0.0736.53 ▼5.9154.64 ▲17.09
Add New Post /wp-admin/post-new.php1,769 ▲24322.30 ▼1.18653.68 ▲7.8642.93 ▼11.74
Media Library /wp-admin/upload.php1,488 ▲884.13 ▼0.06104.26 ▲3.6080.52 ▲37.55
/wp-admin/admin.php?page=aec-setup9791.9926.9556.98
Help center /wp-admin/admin.php?page=aec-help1,6362.0426.7254.28
Shortcode generator /wp-admin/admin.php?page=aec-shortcode-generator9322.5458.8837.68
Settings /wp-admin/admin.php?page=aec-settings1,0292.0524.5150.79

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

🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
It is recommended to fix the following
  • Zombie WordPress options detected upon uninstall: 6 options
    • widget_theysaidso_widget
    • widget_recent-comments
    • can_compress_scripts
    • db_upgraded
    • widget_recent-posts
    • theysaidso_admin_options

Smoke tests 25% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a shallow check for server-side errors
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
  • 2× PHP files perform the action of outputting non-empty strings when accessed directly:
    • > /wp-content/plugins/aec-kiosque/admin/partials/aec-admin-custom-logo.php
    • > /wp-content/plugins/aec-kiosque/public/partials/aec-public-display.php
  • 8× PHP files trigger errors when accessed directly with GET requests:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function wp_enqueue_style() in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-shortcode-generator.php:17
    • > PHP Notice
      Undefined variable: title in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-settings-header.php on line 23
    • > PHP Warning
      Use of undefined constant AEC_URL - assumed 'AEC_URL' (this will throw an Error in a future version of PHP) in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-custom-logo.php on line 3
    • > PHP Fatal error
      Uncaught Error: Class 'Aec_Admin_Settings' not found in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-settings.php:19
    • > PHP Fatal error
      Uncaught Error: Class 'Aec_Admin_Settings' not found in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-help.php:3
    • > PHP Fatal error
      Uncaught Error: Call to undefined function AEC() in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-settings-header.php:24
    • > PHP Warning
      Use of undefined constant AEC_URL - assumed 'AEC_URL' (this will throw an Error in a future version of PHP) in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-settings-header.php on line 22
    • > PHP Fatal error
      Uncaught Error: Class 'Aec_Admin_Settings' not found in wp-content/plugins/aec-kiosque/admin/partials/aec-admin-setup.php:17

User-side errors 0% from 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
There are user-side issues you should fix
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=aec-settings
    • > Network (severe)
    https://.aec-app.com/arc-en-ciel/dist/extranet_custom_css.php?ver=6.3.1 - Failed to load resource: net::ERR_NAME_NOT_RESOLVED
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=aec-settings
    • > Network (severe)
    https://.extranet-aec.com/css/webapp-.css - Failed to load resource: net::ERR_NAME_NOT_RESOLVED
  • 4 occurences, only the last one shown
    • > GET request to /wp-admin/admin.php?page=aec-settings
    • > Network (severe)
    https://.extranet-aec.com/css/jqueryui.css - Failed to load resource: net::ERR_NAME_NOT_RESOLVED
    • > GET request to /wp-admin/admin.php?page=aec-shortcode-generator
    • > Network (severe)
    https://.extranet-aec.com/js/aec-webapp.js?ver=6.3.1 - Failed to load resource: net::ERR_NAME_NOT_RESOLVED
    • > GET request to /wp-admin/admin.php?page=aec-shortcode-generator
    • > Javascript (severe) in unknown
    /wp-content/plugins/aec-kiosque/includes/components/build/static/js/kiosque-builder-apps.js?ver=6.3.1 1:306865 Uncaught TypeError: Cannot read properties of null (reading '0')

Optimizations

Plugin configuration 90% from 29 tests

readme.txt Passed 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
4 plugin tags: atl, atl-software, webapps, aec

aec-kiosque/aec.php 77% from 13 tests

The principal PHP file in "AEC Kiosque" v. 1.5.9 is loaded by WordPress automatically on each request
It is important to fix the following:
  • Description: Please don't use more than 140 characters for the plugin description (currently 303 characters long)
  • Text Domain: You no longer need to specify the text domain since WordPress 4.6; it must be the same as the plugin slug
  • Main file name: Name the main plugin file the same as the plugin slug ("aec-kiosque.php" instead of "aec.php")

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | Executable files are considered dangerous and should not be included with any WordPress plugin
No dangerous file extensions were detected1,826 lines of code in 38 files:
LanguageFilesBlank linesComment linesLines of code
PHP213921,1941,562
CSS3259150
SVG80366
JSON20040
JavaScript34567
HTML1001

PHP code Passed 2 tests

A short review of cyclomatic complexity and code structure
All good! No complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.22
Average class complexity7.91
▷ Minimum class complexity1.00
▷ Maximum class complexity29.00
Average method complexity1.72
▷ Minimum method complexity1.00
▷ Maximum method complexity11.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes11
▷ Abstract classes19.09%
▷ Concrete classes1090.91%
▷ Final classes00.00%
Methods107
▷ Static methods54.67%
▷ Public methods9487.85%
▷ Protected methods00.00%
▷ Private methods1312.15%
Functions5
▷ Named functions360.00%
▷ Anonymous functions240.00%
Constants12
▷ Global constants1191.67%
▷ Class constants18.33%
▷ Public constants1100.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
6 PNG files occupy 1.09MB with 0.34MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
includes/components/build/static/media/dashboard.5a6cb281.png398.40KB117.15KB▼ 70.59%
admin/img/logo.png0.43KB0.41KB▼ 3.42%
admin/img/icon_aec.png0.44KB0.39KB▼ 10.04%
admin/img/bg-aec.png700.50KB200.19KB▼ 71.42%
includes/components/build/logo192.png5.22KB5.57KB0.00%