67% bizuno-accounting

Code Review | Bizuno ERP/Accounting

WordPress plugin Bizuno ERP/Accounting scored67%from 54 tests.

About plugin

  • Plugin page: bizuno-accounting
  • Plugin version: 6.7.4
  • PHP version: 7.4.16
  • WordPress compatibility: 5.3-6.3.2
  • WordPress version: 6.3.1
  • First release: Mar 1, 2018
  • Latest release: Nov 5, 2023
  • Number of updates: 412
  • Update frequency: every 5.2 days
  • Top authors: davepremo (87.62%)phreesoft (12.62%)

Code review

54 tests

User reviews

4 reviews

Install metrics

30+ active /10,811 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Checking the installer triggered no errors
The plugin installed gracefully, with no errors

Server metrics [RAM: ▲0.11MB] [CPU: ▼2.32ms] Passed 4 tests

Server-side resources used by Bizuno ERP/Accounting
This plugin has minimal impact on server resources
PageMemory (MB)CPU Time (ms)
Home /3.59 ▲0.1241.46 ▲4.59
Dashboard /wp-admin3.41 ▲0.1049.09 ▲0.97
Posts /wp-admin/edit.php3.49 ▲0.1351.54 ▲2.75
Add New Post /wp-admin/post-new.php5.99 ▲0.1080.71 ▼13.95
Media Library /wp-admin/upload.php3.33 ▲0.1034.75 ▲0.94

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

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

Browser metrics Passed 4 tests

Bizuno ERP/Accounting: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,807 ▲4514.25 ▲0.111.76 ▲0.2341.93 ▲5.11
Dashboard /wp-admin2,209 ▲285.69 ▼0.0097.53 ▼15.5573.20 ▲27.23
Posts /wp-admin/edit.php2,117 ▲141.96 ▼0.0035.77 ▼7.1033.63 ▼3.46
Add New Post /wp-admin/post-new.php1,553 ▲1823.24 ▼1.88774.77 ▲154.0052.47 ▼16.25
Media Library /wp-admin/upload.php1,414 ▲144.21 ▼0.00102.22 ▼0.4672.72 ▲30.69

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

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
The following items require your attention
  • This plugin does not fully uninstall, leaving 7 options in the database
    • widget_recent-posts
    • widget_recent-comments
    • widget_theysaidso_widget
    • theysaidso_admin_options
    • db_upgraded
    • can_compress_scripts
    • bizuno_pro_key

Smoke tests 50% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | A smoke test targeting server-side errors
Good news, no errors were detected

SRP 0% from 2 tests

🔹 Tests weight: 20 | It is important to ensure that your PHP files perform no action when accessed directly, respecting the single-responsibility principle
Please fix the following
  • 88× GET requests to PHP files return non-empty strings (only 10 are shown):
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_012.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_017.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_032.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_049.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_048.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_050.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_064.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_057.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_020.php
    • > /wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/example_033.php
  • 422× PHP files trigger server-side errors or warnings when accessed directly (only 10 are shown):
    • > PHP Notice
      Undefined variable: langCore in wp-content/plugins/bizuno-accounting/locale/en_US/langByRef.php on line 72
    • > PHP Fatal error
      Uncaught Error: Interface 'setasign\\Fpdi\\PdfParser\\CrossReference\\ReaderInterface' not found in wp-content/plugins/bizuno-accounting/assets/Setasign/FPDI_PDF-Parser-2.0.7/src/PdfParser/CrossReference/CorruptedReader.php:25
    • > PHP Fatal error
      Uncaught Error: Class 'phpseclib3\\Crypt\\Common\\AsymmetricKey' not found in wp-content/plugins/bizuno-accounting/assets/phpseclib3/phpseclib/phpseclib/phpseclib/Crypt/DH.php:44
    • > PHP Fatal error
      Uncaught Error: Call to undefined function bizuno\\bizAutoLoad() in wp-content/plugins/bizuno-accounting/controllers/phreebooks/journal.php:26
    • > PHP Fatal error
      Uncaught Error: Call to undefined function bizuno\\bizAutoLoad() in wp-content/plugins/bizuno-accounting/controllers/phreebooks/journals/j12.php:26
    • > PHP Fatal error
      Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/bizuno-accounting/assets/phpseclib3/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php:9
    • > PHP Notice
      Trying to access array offset on value of type null in wp-content/plugins/bizuno-accounting/locale/en_US/langByRef.php on line 65
    • > PHP Fatal error
      Uncaught Error: Class 'phpseclib3\\Crypt\\EC\\BaseCurves\\Base' not found in wp-content/plugins/bizuno-accounting/assets/phpseclib3/phpseclib/phpseclib/phpseclib/Crypt/EC/BaseCurves/TwistedEdwards.php:42
    • > PHP Fatal error
      Uncaught Error: Class 'phpseclib3\\Crypt\\EC\\BaseCurves\\Prime' not found in wp-content/plugins/bizuno-accounting/assets/phpseclib3/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/brainpoolP160t1.php:34
    • > PHP Fatal error
      Uncaught Error: Class 'phpseclib3\\Crypt\\EC\\Curves\\secp384r1' not found in wp-content/plugins/bizuno-accounting/assets/phpseclib3/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/nistp384.php:18

User-side errors Passed 1 test

🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine on the user side

Optimizations

Plugin configuration 90% from 29 tests

readme.txt 94% from 16 tests

Don't ignore readme.txt as it is the file that instructs WordPress.org on how to present your plugin to the world
Attributes that require attention:
  • Tags: Please reduce the number of tags, currently 11 tag instead of maximum 10
You can take inspiration from this readme.txt

bizuno-accounting/bizuno-accounting.php 85% from 13 tests

Analyzing the main PHP file in "Bizuno ERP/Accounting" version 6.7.4
Please make the necessary changes and fix the following:
  • Description: Please keep the plugin description shorter than 140 characters (currently 258 characters long)
  • Text Domain: Since WordPress version 4.6 the text domain is optional; if specified, it must be the same as the plugin slug

Code Analysis 0% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | A short review of files and their extensions; it is not recommended to include executable files
Please fix the following items
  • Do not distribute dangerous files with your plugin
    • .crt - Security Certificate in Firefox, IE, Chrome, Safari
      • wp-content/plugins/bizuno-accounting/assets/TCPDF/examples/data/cert/tcpdf.crt
314,222 lines of code in 1,589 files:
LanguageFilesBlank linesComment linesLines of code
CSS56893126131,197
PHP90213,99858,451128,104
JavaScript421,2942,50031,302
XML594020,864
SVG3111,882
JSON700547
Markdown61070298
YAML12025
Bourne Shell1203

PHP code 0% from 2 tests

An overview of cyclomatic complexity and code structure
These items need your attention
  • Cyclomatic complexity of classes has to be reduced to less than 1000 (currently 4,422)
  • Cyclomatic complexity of methods has to be reduced to less than 100 (currently 500)
Cyclomatic complexity
Average complexity per logical line of code0.40
Average class complexity32.03
▷ Minimum class complexity1.00
▷ Maximum class complexity4,422.00
Average method complexity5.92
▷ Minimum method complexity1.00
▷ Maximum method complexity500.00
Code structure
Namespaces55
Interfaces5
Traits7
Classes590
▷ Abstract classes20735.08%
▷ Concrete classes38364.92%
▷ Final classes215.48%
Methods3,810
▷ Static methods58215.28%
▷ Public methods2,64169.32%
▷ Protected methods56114.72%
▷ Private methods60815.96%
Functions326
▷ Named functions30392.94%
▷ Anonymous functions237.06%
Constants561
▷ Global constants22339.75%
▷ Class constants33860.25%
▷ Public constants338100.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
898 compressed PNG files occupy 1.66MB
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
view/icons/nuvola/16x16/view_top_bottom.png0.75KB0.97KB0.00%
view/icons/default/22x22/edit-delete.png1.18KB1.30KB0.00%
assets/jquery-easyui/themes/metro/images/spinner_arrows.png0.15KB0.14KB▼ 4.70%
view/icons/default/16x16/view-fullscreen.png0.63KB0.50KB▼ 20.77%
assets/jquery-easyui/themes/black/images/tree_icons.png3.01KB2.21KB▼ 26.57%