Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲4.54MB] [CPU: ▲25.60ms] Passed 4 tests
Server-side resources used by Grand Job
Server-side resource usage in normal parameters
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 7.57 ▲4.11 | 61.78 ▲21.06 |
Dashboard /wp-admin | 7.96 ▲4.66 | 80.72 ▲32.25 |
Posts /wp-admin/edit.php | 8.10 ▲4.74 | 77.35 ▲30.51 |
Add New Post /wp-admin/post-new.php | 11.27 ▲5.39 | 117.44 ▲18.56 |
Media Library /wp-admin/upload.php | 7.88 ▲4.65 | 73.07 ▲37.49 |
Categories /wp-admin/edit-tags.php?taxonomy=gj_cat&post_type=gj_employer | 7.87 | 59.27 |
Gender /wp-admin/edit-tags.php?taxonomy=gj_gender&post_type=gj_candidate | 7.87 | 68.58 |
Fields /wp-admin/edit.php?post_type=gj_job&page=gj-fields-page | 8.24 | 67.48 |
Gender /wp-admin/edit-tags.php?taxonomy=gj_gender&post_type=gj_job | 7.87 | 70.58 |
Cities /wp-admin/edit-tags.php?taxonomy=gj_city&post_type=gj_employer | 7.96 | 70.59 |
Skills /wp-admin/edit-tags.php?taxonomy=gj_skill&post_type=gj_candidate | 7.87 | 73.46 |
Categories /wp-admin/edit-tags.php?taxonomy=gj_cat&post_type=gj_candidate | 7.87 | 65.27 |
Levels /wp-admin/edit-tags.php?taxonomy=gj_level&post_type=gj_candidate | 7.87 | 58.39 |
Jobs /wp-admin/edit.php?post_type=gj_job | 7.97 | 63.81 |
Skills /wp-admin/edit-tags.php?taxonomy=gj_skill&post_type=gj_job | 7.87 | 71.72 |
Server storage [IO: ▲8.11MB] [DB: ▲0.11MB] Passed 3 tests
How much does this plugin use your filesystem and database?
No storage issues were detected
Filesystem: 419 new files
Database: 4 new tables, 20 new options
New tables |
---|
wp_gj_email_queue |
wp_gj_save_jobs |
wp_gj_follows |
wp_gj_save_resums |
New WordPress options |
---|
widget_gj_employer_filter |
widget_recent-posts |
gj_send_mail_queue_time |
widget_gj_candidate_filter |
widget_theysaidso_widget |
gj_created_fields |
widget_gj_job_apply |
widget_recent-comments |
widget_gj_employer_infomation |
theysaidso_admin_options |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for Grand Job
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,391 ▲630 | 15.15 ▲0.59 | 19.70 ▲18.00 | 41.79 ▼3.95 |
Dashboard /wp-admin | 2,440 ▲260 | 5.63 ▼0.03 | 98.03 ▲12.61 | 41.00 ▲2.53 |
Posts /wp-admin/edit.php | 2,345 ▲285 | 2.57 ▲0.58 | 39.33 ▲0.32 | 33.29 ▲2.27 |
Add New Post /wp-admin/post-new.php | 1,718 ▲192 | 22.66 ▼0.55 | 625.02 ▼9.13 | 32.45 ▼16.44 |
Media Library /wp-admin/upload.php | 1,645 ▲245 | 5.14 ▲0.98 | 104.54 ▼2.54 | 43.32 ▲0.89 |
Categories /wp-admin/edit-tags.php?taxonomy=gj_cat&post_type=gj_employer | 1,516 | 2.47 | 35.86 | 27.12 |
Gender /wp-admin/edit-tags.php?taxonomy=gj_gender&post_type=gj_candidate | 1,519 | 2.51 | 43.61 | 34.59 |
Fields /wp-admin/edit.php?post_type=gj_job&page=gj-fields-page | 1,724 | 5.58 | 85.60 | 34.92 |
Gender /wp-admin/edit-tags.php?taxonomy=gj_gender&post_type=gj_job | 1,522 | 2.49 | 38.77 | 32.36 |
Cities /wp-admin/edit-tags.php?taxonomy=gj_city&post_type=gj_employer | 3,119 | 5.47 | 99.38 | 34.68 |
Skills /wp-admin/edit-tags.php?taxonomy=gj_skill&post_type=gj_candidate | 1,515 | 2.65 | 37.69 | 32.48 |
Categories /wp-admin/edit-tags.php?taxonomy=gj_cat&post_type=gj_candidate | 1,516 | 2.50 | 36.19 | 30.79 |
Levels /wp-admin/edit-tags.php?taxonomy=gj_level&post_type=gj_candidate | 1,487 | 2.64 | 39.16 | 32.38 |
Jobs /wp-admin/edit.php?post_type=gj_job | 1,357 | 2.54 | 43.04 | 33.60 |
Skills /wp-admin/edit-tags.php?taxonomy=gj_skill&post_type=gj_job | 1,512 | 2.64 | 43.01 | 34.69 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.11MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
The following items require your attention
- The uninstall procedure failed, leaving 4 tables in the database
- wp_gj_save_jobs
- wp_gj_save_resums
- wp_gj_follows
- wp_gj_email_queue
- Zombie WordPress options were found after uninstall: 20 options
- widget_theysaidso_widget
- widget_gj_candidate_contact_form
- gj_send_mail_queue_time
- widget_gj_job_filter
- widget_gj_job_infomation
- theysaidso_admin_options
- widget_gj_candidate_filter
- gj_version
- widget_gj_employer_infomation
- widget_gj_employer_filter
- ...
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
These errors were triggered by the plugin
- > GET request to /wp-admin/edit-tags.php?taxonomy=gj_city&post_type=gj_employer
- > Notice in wp-content/plugins/grand-job/includes/fields/fields.php+216
Trying to access array offset on value of type null
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 take a closer look at the following
- 4× PHP files perform the action of outputting non-empty strings when accessed directly:
- > /wp-content/plugins/grand-job/templates/parts/employers/form-search.php
- > /wp-content/plugins/grand-job/templates/parts/jobs/form-search.php
- > /wp-content/plugins/grand-job/templates/parts/candidates/form-search.php
- > /wp-content/plugins/grand-job/templates/register-popup.php
- 416× GET requests to PHP files trigger server-side errors or Error 500 responses (only 10 are shown):
- > PHP Warning
include_once(GJ_PLUGIN_DIRincludes/class/shortcodes.class.php): failed to open stream: No such file or directory in wp-content/plugins/grand-job/includes/front.class.php on line 17
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/grand-job/templates/dashboard/job/form.php:14
- > PHP Warning
include_once(GJ_PLUGIN_DIRincludes/class/email-queue.class.php): failed to open stream: No such file or directory in wp-content/plugins/grand-job/includes/front.class.php on line 20
- > PHP Warning
include_once(GJ_PLUGIN_DIRincludes/fields/types/selectAdvanced.php): failed to open stream: No such file or directory in wp-content/plugins/grand-job/includes/front.class.php on line 53
- > PHP Warning
include_once(GJ_PLUGIN_DIRincludes/fields/types/post.php): failed to open stream: No such file or directory in wp-content/plugins/grand-job/includes/front.class.php on line 55
- > PHP Warning
Use of undefined constant GJ_PLUGIN_DIR - assumed 'GJ_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/grand-job/includes/front.class.php on line 23
- > PHP Warning
Use of undefined constant GJ_PLUGIN_DIR - assumed 'GJ_PLUGIN_DIR' (this will throw an Error in a future version of PHP) in wp-content/plugins/grand-job/includes/front.class.php on line 48
- > PHP Warning
include_once(GJ_PLUGIN_DIRincludes/class/job.class.php): failed to open stream: No such file or directory in wp-content/plugins/grand-job/includes/front.class.php on line 13
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/grand-job/templates/verify-account/form.php:1
- > PHP Fatal error
Uncaught Error: Class 'ParseCsv\\enums\\AbstractEnum' not found in wp-content/plugins/grand-job/includes/libs/parsecsv/vendor/parsecsv/php-parsecsv/src/enums/SortEnum.php:5
- > PHP Warning
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)
No browser errors were detected
Optimizations
Plugin configuration 90% 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
These attributes need to be fixed:
- Tags: Please reduce the number of tags, currently 25 tag instead of maximum 10
grand-job/gjob.php 85% from 13 tests
The entry point to "Grand Job" version 1.2.1 is a PHP file that has certain tags in its header comment area
It is important to fix the following:
- Main file name: Please rename the main PHP file in this plugin to the plugin slug ("grand-job.php" instead of "gjob.php")
- Text Domain: If you choose to specify the text domain, it must be the same as the plugin slug; optional since WordPress version 4.6
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Success! There were no dangerous files found in this plugin78,325 lines of code in 327 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 240 | 4,810 | 3,772 | 29,676 |
CSS | 33 | 764 | 461 | 20,960 |
JavaScript | 38 | 3,629 | 2,420 | 17,373 |
SVG | 5 | 30 | 12 | 9,195 |
JSON | 5 | 0 | 0 | 548 |
HTML | 1 | 11 | 0 | 339 |
Markdown | 1 | 49 | 0 | 153 |
XML | 2 | 1 | 4 | 54 |
YAML | 1 | 3 | 0 | 15 |
make | 1 | 3 | 0 | 12 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.40 |
Average class complexity | 26.06 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 259.00 |
Average method complexity | 3.48 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 70.00 |
Code structure | ||
---|---|---|
Namespaces | 7 | |
Interfaces | 0 | |
Traits | 1 | |
Classes | 126 | |
▷ Abstract classes | 5 | 3.97% |
▷ Concrete classes | 121 | 96.03% |
▷ Final classes | 0 | 0.00% |
Methods | 1,284 | |
▷ Static methods | 353 | 27.49% |
▷ Public methods | 1,194 | 92.99% |
▷ Protected methods | 70 | 5.45% |
▷ Private methods | 20 | 1.56% |
Functions | 154 | |
▷ Named functions | 113 | 73.38% |
▷ Anonymous functions | 41 | 26.62% |
Constants | 25 | |
▷ Global constants | 9 | 36.00% |
▷ Class constants | 16 | 64.00% |
▷ Public constants | 16 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
36 PNG files occupy 0.31MB with 0.14MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
assets/img/review-stars.png | 3.68KB | 2.01KB | ▼ 45.37% |
assets/img/close.png | 15.11KB | 0.11KB | ▼ 99.30% |
assets/images/m/2.png | 3.18KB | 2.36KB | ▼ 25.77% |
assets/fancybox/fancybox_sprite@2x.png | 6.40KB | 5.76KB | ▼ 9.96% |
assets/img/bank.png | 3.19KB | 1.74KB | ▼ 45.45% |