Rename view extender

As discussed in my initial review, it seems unlikely that we need
the ability to remove (or otherwise modify) namespaces again.
Therefore, it seems more consistent with other extenders to go
for a "View" extender with a "namespace" method.

Sorry for the back and forth. ;)

Refs #1891, #2134.
This commit is contained in:
Franz Liedke 2020-07-17 12:04:04 +02:00
parent 3b6dbddee9
commit b89ccaf83c
2 changed files with 8 additions and 8 deletions

View File

@ -13,9 +13,9 @@ use Flarum\Extension\Extension;
use Illuminate\Contracts\Container\Container;
use Illuminate\Contracts\View\Factory;
class ViewNamespace implements ExtenderInterface
class View implements ExtenderInterface
{
private $adds = [];
private $namespaces = [];
/**
* Register a new namespace of Laravel views.
@ -33,9 +33,9 @@ class ViewNamespace implements ExtenderInterface
* where view files are stored, relative to the extend.php file.
* @return $this
*/
public function add($namespace, $hints)
public function namespace($namespace, $hints)
{
$this->adds[$namespace] = $hints;
$this->namespaces[$namespace] = $hints;
return $this;
}
@ -43,7 +43,7 @@ class ViewNamespace implements ExtenderInterface
public function extend(Container $container, Extension $extension = null)
{
$container->resolving(Factory::class, function (Factory $view) {
foreach ($this->adds as $namespace => $hints) {
foreach ($this->namespaces as $namespace => $hints) {
$view->addNamespace($namespace, $hints);
}
});

View File

@ -13,7 +13,7 @@ use Flarum\Extend;
use Flarum\Tests\integration\TestCase;
use Illuminate\Contracts\View\Factory;
class ViewNamespaceTest extends TestCase
class ViewTest extends TestCase
{
/**
* @test
@ -30,8 +30,8 @@ class ViewNamespaceTest extends TestCase
public function custom_view_namespace_can_be_added_by_extender()
{
$this->extend(
(new Extend\ViewNamespace)
->add('integration.test', dirname(__FILE__, 3).'/fixtures/views')
(new Extend\View)
->namespace('integration.test', dirname(__FILE__, 3).'/fixtures/views')
);
$this->assertEquals('<html><body>Hello World!</body></html>', trim($this->app()->getContainer()->make(Factory::class)->make('integration.test::test')->render()));