diff --git a/src/Commands/AutoTranslationExtractionCommand.php b/src/Commands/AutoTranslationExtractionCommand.php index d5f327a..b2ad9cc 100644 --- a/src/Commands/AutoTranslationExtractionCommand.php +++ b/src/Commands/AutoTranslationExtractionCommand.php @@ -28,7 +28,7 @@ public function handle(TranslationScanner $scanner): int $scanner->findAndEvaluate(); - app()->translator->getExtractionTranslator()->saveTranslations(); + app('translator')->getExtractionTranslator()->saveTranslations(); return self::SUCCESS; } diff --git a/src/TranslationScanner.php b/src/TranslationScanner.php index 610b1f3..98ad50f 100644 --- a/src/TranslationScanner.php +++ b/src/TranslationScanner.php @@ -2,14 +2,24 @@ namespace Mahmoud217TR\AutoFilesLocalizer; +use Exception; +use Illuminate\Console\Command; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Blade; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; -use SplFileInfo; use Symfony\Component\Finder\Finder; +use Symfony\Component\Finder\SplFileInfo; class TranslationScanner { + protected ?Command $command; + + public function __construct(Command $command = null) + { + $this->command = $command; + } + public function findAndEvaluate(): void { $this->getFiles()->each(function ($file) { @@ -37,10 +47,19 @@ protected function extractFunctionCalls(SplFileInfo $file, array $functions): ar foreach ($functions as $function) { if (preg_match_all($this->functionPattern($function), $contents, $matches)) { $function = $matches[0][0]; - if (Str::startsWith($function, '@')) { - Blade::render($function); - } else { - eval("{$function};"); + try { + if (Str::startsWith($function, '@')) { + Blade::render($function); + } else { + eval("{$function};"); + } + } catch (Exception $exception) { + $message = $exception->getMessage(); + if (filled($this->command)) { + $this->command->error($message); + } else { + Log::error($message); + } } } }