diff --git a/src/Coders/Model/Factory.php b/src/Coders/Model/Factory.php index 84ea1936..6e7e5447 100644 --- a/src/Coders/Model/Factory.php +++ b/src/Coders/Model/Factory.php @@ -311,11 +311,11 @@ private function imports($dependencies, Model $model) */ private function shortenAndExtractImportableDependencies(&$placeholder, $model) { - $qualifiedClassesPattern = '/([\\\\a-zA-Z0-9_]*\\\\[\\\\a-zA-Z0-9_]*)/'; + $qualifiedClassesPattern = '/(?=>)?[\s]*(?[\\\\a-zA-Z0-9_]*\\\\[\\\\a-zA-Z0-9_]*)/'; $matches = []; $importableDependencies = []; if (preg_match_all($qualifiedClassesPattern, $placeholder, $matches)) { - foreach ($matches[1] as $usedClass) { + foreach ($matches['class_name'] as $index => $usedClass) { $namespacePieces = explode('\\', $usedClass); $className = array_pop($namespacePieces); @@ -336,6 +336,10 @@ private function shortenAndExtractImportableDependencies(&$placeholder, $model) continue; } + if ($matches['is_assigning'][$index] !== "") { + $className = "$className::class"; + } + $importableDependencies[trim($usedClass, '\\')] = true; $placeholder = preg_replace('!'.addslashes($usedClass).'\b!', addslashes($className), $placeholder, 1); } diff --git a/src/Support/Dumper.php b/src/Support/Dumper.php index 2fef0048..740e8928 100644 --- a/src/Support/Dumper.php +++ b/src/Support/Dumper.php @@ -7,6 +7,8 @@ namespace Reliese\Support; +use Illuminate\Support\Str; + class Dumper { /** @@ -44,7 +46,12 @@ public static function export($value, $tabs = 2) return "$key => ".static::export($value, $tabs + 1); }, $value, $keys); - return "[\n$indent".implode(",\n$indent", $array)."\n$closingIndent]"; + return "[\n$indent".implode(",\n$indent", $array).",\n$closingIndent]"; + } + + // Supports class names for casts field + if ($tabs > 2 && class_exists($value) && strpos($value, "\\")) { + return "\\$value"; } // Default variable exporting