<?php
declare(strict_types=1);
namespace Arcanedev\Support\Providers\Concerns;
/**
* Trait HasViews
*
* @author ARCANEDEV <arcanedev.maroc@gmail.com>
*/
trait HasViews
{
/* -----------------------------------------------------------------
| Main Methods
| -----------------------------------------------------------------
*/
/**
* Get the base views path.
*
* @return string
*/
protected function getViewsPath(): string
{
return $this->getBasePath().DIRECTORY_SEPARATOR.'views';
}
/**
* Get the destination views path.
*
* @return string
*/
protected function getViewsDestinationPath(): string
{
return $this->app['config']['view.paths'][0].DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.$this->getPackageName();
}
/**
* Publish the views.
*
* @param string|null $path
*/
protected function publishViews(?string $path = null): void
{
$this->publishes([
$this->getViewsPath() => $path ?: $this->getViewsDestinationPath(),
], $this->getPublishedTags('views'));
}
/**
* Load the views files.
*/
protected function loadViews(): void
{
$this->loadViewsFrom($this->getViewsPath(), $this->getPackageName());
}
}