Skip to content

Commit

Permalink
formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
taylorotwell committed Nov 13, 2020
1 parent 2341dfe commit 4885bd2
Showing 1 changed file with 26 additions and 12 deletions.
38 changes: 26 additions & 12 deletions src/Illuminate/Database/Eloquent/Factories/Factory.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Illuminate\Database\Eloquent\Factories;

use Closure;
use Throwable;
use Faker\Generator;
use Illuminate\Container\Container;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
Expand Down Expand Up @@ -627,13 +628,12 @@ public function modelName()
{
$resolver = static::$modelNameResolver ?: function (self $factory) {
$factoryBasename = Str::replaceLast('Factory', '', class_basename($factory));
$rootNamespace = Container::getInstance()
->make(Application::class)
->getNamespace();

return class_exists($rootNamespace.'Models\\'.$factoryBasename)
? $rootNamespace.'Models\\'.$factoryBasename
: $rootNamespace.$factoryBasename;
$appNamespace = static::appNamespace();

return class_exists($appNamespace.'Models\\'.$factoryBasename)
? $appNamespace.'Models\\'.$factoryBasename
: $appNamespace.$factoryBasename;
};

return $this->model ?: $resolver($this);
Expand Down Expand Up @@ -704,20 +704,34 @@ protected function withFaker()
public static function resolveFactoryName(string $modelName)
{
$resolver = static::$factoryNameResolver ?: function (string $modelName) {
$rootNamespace = Container::getInstance()
->make(Application::class)
->getNamespace();
$appNamespace = static::appNamespace();

$modelName = Str::startsWith($modelName, $rootNamespace.'Models\\')
? Str::after($modelName, $rootNamespace.'Models\\')
: Str::after($modelName, $rootNamespace);
$modelName = Str::startsWith($modelName, $appNamespace.'Models\\')
? Str::after($modelName, $appNamespace.'Models\\')
: Str::after($modelName, $appNamespace);

return static::$namespace.$modelName.'Factory';
};

return $resolver($modelName);
}

/**
* Get the application namespace for the application.
*
* @return string
*/
protected static function appNamespace()
{
try {
return Container::getInstance()
->make(Application::class)
->getNamespace();
} catch (Throwable $e) {
return 'App\\';
}
}

/**
* Proxy dynamic factory methods onto their proper methods.
*
Expand Down

0 comments on commit 4885bd2

Please sign in to comment.