Skip to content

Commit

Permalink
Revert "Revert "[6.x] Delay instantiation of transator and view facto…
Browse files Browse the repository at this point in the history
…ry""
  • Loading branch information
GrahamCampbell committed Jan 2, 2020
1 parent 795660e commit 6f7e1a3
Showing 1 changed file with 32 additions and 12 deletions.
44 changes: 32 additions & 12 deletions src/Illuminate/Support/ServiceProvider.php
Expand Up @@ -87,18 +87,18 @@ protected function loadRoutesFrom($path)
*/
protected function loadViewsFrom($path, $namespace)
{
$view = $this->app['view'];

if (isset($this->app->config['view']['paths']) &&
is_array($this->app->config['view']['paths'])) {
foreach ($this->app->config['view']['paths'] as $viewPath) {
if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) {
$view->addNamespace($namespace, $appPath);
$this->callAfterResolving('view', function ($view) use ($path, $namespace) {
if (isset($this->app->config['view']['paths']) &&
is_array($this->app->config['view']['paths'])) {
foreach ($this->app->config['view']['paths'] as $viewPath) {
if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) {
$view->addNamespace($namespace, $appPath);
}
}
}
}

$view->addNamespace($namespace, $path);
$view->addNamespace($namespace, $path);
});
}

/**
Expand All @@ -110,7 +110,9 @@ protected function loadViewsFrom($path, $namespace)
*/
protected function loadTranslationsFrom($path, $namespace)
{
$this->app['translator']->addNamespace($namespace, $path);
$this->callAfterResolving('translator', function ($translator) use ($path, $namespace) {
$translator->addNamespace($namespace, $path);
});
}

/**
Expand All @@ -121,7 +123,9 @@ protected function loadTranslationsFrom($path, $namespace)
*/
protected function loadJsonTranslationsFrom($path)
{
$this->app['translator']->addJsonPath($path);
$this->callAfterResolving('translator', function ($translator) use ($path) {
$translator->addJsonPath($path);
});
}

/**
Expand All @@ -132,13 +136,29 @@ protected function loadJsonTranslationsFrom($path)
*/
protected function loadMigrationsFrom($paths)
{
$this->app->afterResolving('migrator', function ($migrator) use ($paths) {
$this->callAfterResolving('migrator', function ($migrator) use ($paths) {
foreach ((array) $paths as $path) {
$migrator->path($path);
}
});
}

/**
* Setup an after resolving listener, or fire immediately if already resolved.
*
* @param string $name
* @param callable $callback
* @return void
*/
protected function callAfterResolving($name, $callback)
{
$this->app->afterResolving($name, $callback);

if ($this->app->resolved($name)) {
$callback($this->app->make($name), $this->app);
}
}

/**
* Register paths to be published by the publish command.
*
Expand Down

0 comments on commit 6f7e1a3

Please sign in to comment.