for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace App\Services\Validation;
use App\Models\JobApplication;
use App\Models\JobApplicationAnswer;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class JobApplicationAnswerValidator {
protected $application;
protected $questionIds;
public function __construct(JobApplication $application) {
$this->application = $application;
$this->questionIds = $application->job_poster->job_poster_questions->pluck('id')->toArray();
}
public function rules() {
$rules = [
'answer' => 'required|string',
'job_poster_question_id' => [
'required',
Rule::in($this->questionIds),
],
'job_application_id' => [
Rule::in([$this->application->id]),
]
];
return $rules;
public function validator(JobApplicationAnswer $answer) {
return Validator::make($answer->toArray(), $this->rules());
public function validate(JobApplicationAnswer $answer) {
return $this->validator($answer)->validate();
$this->validator($answer)->validate()
Illuminate\Validation\Validator::validate()
This check looks for function or method calls that always return null and whose return value is used.
class A { function getObject() { return null; } } $a = new A(); if ($a->getObject()) {
The method getObject() can return nothing but null, so it makes no sense to use the return value.
getObject()
The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.
public function isComplete(JobApplicationAnswer $answer) {
return $this->validator($answer)->passes();