123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace Facade\Ignition;
- use Illuminate\Contracts\Support\Arrayable;
- use Illuminate\Support\Arr;
- class IgnitionConfig implements Arrayable
- {
- /** @var array */
- protected $options;
- public function __construct(array $options = [])
- {
- $this->options = $this->mergeWithDefaultConfig($options);
- }
- public function getEditor(): ?string
- {
- return Arr::get($this->options, 'editor');
- }
- public function getRemoteSitesPath(): ?string
- {
- return Arr::get($this->options, 'remote_sites_path');
- }
- public function getLocalSitesPath(): ?string
- {
- return Arr::get($this->options, 'local_sites_path');
- }
- public function getTheme(): ?string
- {
- return Arr::get($this->options, 'theme');
- }
- public function getEnableShareButton(): bool
- {
- if (! app()->isBooted()) {
- return false;
- }
- return Arr::get($this->options, 'enable_share_button', true);
- }
- public function getEnableRunnableSolutions(): bool
- {
- $enabled = Arr::get($this->options, 'enable_runnable_solutions', null);
- if ($enabled === null) {
- $enabled = config('app.debug');
- }
- return $enabled ?? false;
- }
- public function toArray(): array
- {
- return [
- 'editor' => $this->getEditor(),
- 'remoteSitesPath' => $this->getRemoteSitesPath(),
- 'localSitesPath' => $this->getLocalSitesPath(),
- 'theme' => $this->getTheme(),
- 'enableShareButton' => $this->getEnableShareButton(),
- 'enableRunnableSolutions' => $this->getEnableRunnableSolutions(),
- 'directorySeparator' => DIRECTORY_SEPARATOR,
- ];
- }
- protected function mergeWithDefaultConfig(array $options = []): array
- {
- return array_merge(config('ignition') ?: include __DIR__.'/../config/ignition.php', $options);
- }
- }
|