%PDF- %PDF-
Direktori : /home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Config/ |
Current File : //home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Config/Repository.php |
<?php namespace Illuminate\Config; use ArrayAccess; use Illuminate\Contracts\Config\Repository as ConfigContract; use Illuminate\Support\Arr; use Illuminate\Support\Traits\Macroable; class Repository implements ArrayAccess, ConfigContract { use Macroable; /** * All of the configuration items. * * @var array */ protected $items = []; /** * Create a new configuration repository. * * @param array $items * @return void */ public function __construct(array $items = []) { $this->items = $items; } /** * Determine if the given configuration value exists. * * @param string $key * @return bool */ public function has($key) { return Arr::has($this->items, $key); } /** * Get the specified configuration value. * * @param array|string $key * @param mixed $default * @return mixed */ public function get($key, $default = null) { if (is_array($key)) { return $this->getMany($key); } return Arr::get($this->items, $key, $default); } /** * Get many configuration values. * * @param array $keys * @return array */ public function getMany($keys) { $config = []; foreach ($keys as $key => $default) { if (is_numeric($key)) { [$key, $default] = [$default, null]; } $config[$key] = Arr::get($this->items, $key, $default); } return $config; } /** * Set a given configuration value. * * @param array|string $key * @param mixed $value * @return void */ public function set($key, $value = null) { $keys = is_array($key) ? $key : [$key => $value]; foreach ($keys as $key => $value) { Arr::set($this->items, $key, $value); } } /** * Prepend a value onto an array configuration value. * * @param string $key * @param mixed $value * @return void */ public function prepend($key, $value) { $array = $this->get($key, []); array_unshift($array, $value); $this->set($key, $array); } /** * Push a value onto an array configuration value. * * @param string $key * @param mixed $value * @return void */ public function push($key, $value) { $array = $this->get($key, []); $array[] = $value; $this->set($key, $array); } /** * Get all of the configuration items for the application. * * @return array */ public function all() { return $this->items; } /** * Determine if the given configuration option exists. * * @param string $key * @return bool */ public function offsetExists($key): bool { return $this->has($key); } /** * Get a configuration option. * * @param string $key * @return mixed */ public function offsetGet($key): mixed { return $this->get($key); } /** * Set a configuration option. * * @param string $key * @param mixed $value * @return void */ public function offsetSet($key, $value): void { $this->set($key, $value); } /** * Unset a configuration option. * * @param string $key * @return void */ public function offsetUnset($key): void { $this->set($key, null); } }