ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 18.224.62.233 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/hrdemo/vendor/facade/ignition/src/SolutionProviders/ |
Upload File : |
<?php namespace Facade\Ignition\SolutionProviders; use Facade\Ignition\Exceptions\ViewException; use Facade\Ignition\Solutions\MakeViewVariableOptionalSolution; use Facade\Ignition\Solutions\SuggestCorrectVariableNameSolution; use Facade\IgnitionContracts\BaseSolution; use Facade\IgnitionContracts\HasSolutionsForThrowable; use Throwable; class UndefinedVariableSolutionProvider implements HasSolutionsForThrowable { private $variableName; private $viewFile; public function canSolve(Throwable $throwable): bool { if (! $throwable instanceof ViewException) { return false; } return $this->getNameAndView($throwable) !== null; } public function getSolutions(Throwable $throwable): array { $solutions = []; extract($this->getNameAndView($throwable)); if (! isset($variableName)) { return []; } $solutions = $this->findCorrectVariableSolutions($throwable, $variableName, $viewFile); $solutions[] = $this->findOptionalVariableSolution($variableName, $viewFile); return $solutions; } protected function findCorrectVariableSolutions( ViewException $throwable, string $variableName, string $viewFile ): array { return collect($throwable->getViewData())->map(function ($value, $key) use ($variableName) { similar_text($variableName, $key, $percentage); return ['match' => $percentage, 'value' => $value]; })->sortByDesc('match')->filter(function ($var, $key) { return $var['match'] > 40; })->keys()->map(function ($suggestion) use ($variableName, $viewFile) { return new SuggestCorrectVariableNameSolution($variableName, $viewFile, $suggestion); })->map(function ($solution) { return $solution->isRunnable() ? $solution : BaseSolution::create($solution->getSolutionTitle()) ->setSolutionDescription($solution->getSolutionDescription()); })->toArray(); } protected function findOptionalVariableSolution(string $variableName, string $viewFile) { $optionalSolution = new MakeViewVariableOptionalSolution($variableName, $viewFile); return $optionalSolution->isRunnable() ? $optionalSolution : BaseSolution::create($optionalSolution->getSolutionTitle()) ->setSolutionDescription($optionalSolution->getSolutionDescription()); } protected function getNameAndView(Throwable $throwable): ?array { $pattern = '/Undefined variable: (.*?) \(View: (.*?)\)/'; preg_match($pattern, $throwable->getMessage(), $matches); if (count($matches) === 3) { [, $variableName, $viewFile] = $matches; return compact('variableName', 'viewFile'); } return null; } }