PHPackages                             coyotito/laravel-settings - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. coyotito/laravel-settings

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

coyotito/laravel-settings
=========================

add settings to your site

v0.2.0(4mo ago)03501[1 issues](https://github.com/coyotito-mx/laravel-settings/issues)MITPHPPHP ^8.4CI passing

Since Dec 4Pushed 4mo agoCompare

[ Source](https://github.com/coyotito-mx/laravel-settings)[ Packagist](https://packagist.org/packages/coyotito/laravel-settings)[ RSS](/packages/coyotito-laravel-settings/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (6)Versions (8)Used By (0)

Laravel Settings
================

[](#laravel-settings)

[![Static Badge](https://camo.githubusercontent.com/829cfa9855853fe186b3506ff3026c0eac242b1ba726629115f42bf112197b54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d254532253839254135382e342d253233344635443935)](https://camo.githubusercontent.com/829cfa9855853fe186b3506ff3026c0eac242b1ba726629115f42bf112197b54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d254532253839254135382e342d253233344635443935)[![Latest Stable Version](https://camo.githubusercontent.com/29b23c8c0d833da8d59b418dc76512f8ebfacabbd16a4b8cb2ae01de826c9b96/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f796f7469746f2f6c61726176656c2d73657474696e6773)](https://packagist.org/packages/coyotito/laravel-settings)[![Build Status](https://github.com/coyotito-mx/laravel-settings/actions/workflows/tests.yml/badge.svg)](https://github.com/coyotito-mx/laravel-settings/actions/workflows/tests.yml)[![Build Status](https://github.com/coyotito-mx/laravel-settings/actions/workflows/lint.yml/badge.svg)](https://github.com/coyotito-mx/laravel-settings/actions/workflows/lint.yml)

A small package to define typed settings classes and persist application configuration values grouped by logical namespaces.

---

Installation
------------

[](#installation)

Install with Composer:

```
composer require coyotito/laravel-settings
```

Publish configuration (optional):

```
php artisan vendor:publish --tag=laravel-settings-config
```

Publish migrations (the package ships a migration stub):

```
php artisan vendor:publish --tag=laravel-settings-migrations
php artisan migrate
```

---

Configuration
-------------

[](#configuration)

The package publishes `config/settings.php`. Defaults:

```
return [
    'repository' => 'eloquent',

    'repositories' => [
        'eloquent' => [
            'class' => \Coyotito\LaravelSettings\Repositories\EloquentRepository::class,
            'model' => \Coyotito\LaravelSettings\Models\Setting::class,
        ],
    ],
];
```

- `repository` selects which repository implementation to use (`eloquent` by default).
- You may add your own repository implementations and update the config accordingly.

To change the Eloquent model used for storage, update `repositories.eloquent.model` in the config.

---

Repositories
------------

[](#repositories)

Built-in repositories:

- `EloquentRepository` — stores settings in the database using the `Setting` model. (Default)
- `InMemoryRepository` — stores settings in memory (useful for tests).

Repository contracts live in `src/Repositories/Contracts` and the base logic is in `src/Repositories/BaseRepository.php`.

---

Creating Settings Classes
-------------------------

[](#creating-settings-classes)

Generate a settings class (and optional migration):

```
php artisan make:settings MySettings
```

This will use the stubs in `stubs/` and create a class under `App\Settings` by default (see `make:settings-class`).

A settings class is simply a class that extends `Coyotito\LaravelSettings\Settings` and exposes typed public properties:

```
