Download the PHP package timurturdyev/simple-settings without Composer

On this page you can find all versions of the php package timurturdyev/simple-settings. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package simple-settings

Simple Settings для Laravel

Лёгкий менеджер настроек для Laravel с поддержкой групп, кэшированием и автоматическим приведением типов.

English


Требования

Установка

Опубликуйте конфиг и миграцию:

Запустите миграцию:

Использование

Через Facade

Через сервис-контейнер

Группы

Настройки разделены по группам. Группа по умолчанию — global.

Типы данных

Типы определяются и восстанавливаются автоматически:

Массовая запись

Кэш сбрасывается один раз после записи всех значений.

Обход кэша

Artisan-команды

События

По умолчанию события отключены. Включить можно двумя способами:

Через конфиг (глобально для всего приложения):

Через метод (точечно для конкретного вызова):

withEvents() и withoutEvents() возвращают новый экземпляр — текущий не изменяется.

Событие Когда срабатывает Поля payload
SettingRetrieved при вызове get() key, value, group
SettingSaved при записи через set() key, value, group, oldValue, existed
SettingDeleted при удалении конкретного ключа через remove() key, group, oldValue
SettingsFlushed при removeAll() (очистка всей группы) group

oldValue и existed в SettingSaved имеют смысл только когда включён активити-лог (см. ниже) — без него старое значение не читается, и в событие летят null / false. Это сделано, чтобы лишний SELECT перед записью выполнялся только когда он реально нужен.

Валидация

Добавьте правила в config/simple-settings.php:

При нарушении правила set() выбрасывает InvalidArgumentException.

Активити-лог (опционально)

Опциональное логирование изменений настроек в отдельную таблицу simple_setting_changes. Без сторонних пакетов — своя модель + listener + миграция (которая накатывается автоматически при php artisan migrate).

Включение: требуются включённые события + включённый аудит:

Когда оба флага включены, перед каждым set() / remove() библиотека читает текущее значение (через кеш — лишних запросов обычно нет) и записывает его в old_payload, новое — в new_payload. Causer берётся из auth()->user() — для CLI/queue остаётся null.

Чтение истории:

Поля записи: group, name, event (created / updated / deleted), old_payload (JSON или null), new_payload, causer_type, causer_id, created_at.

Известные ограничения:

Конфигурация

Лимиты значений

Колонка val создаётся как TEXT — на MySQL/MariaDB это 65 535 байт (~64 KB), на PostgreSQL и SQLite ограничения нет. Для типовых настроек этого с большим запасом: список из 200 категорий-объектов влезет, массив из 10 000 коротких строк — тоже. Если упёрлись в лимит — это сигнал, что в одну настройку положили что-то «не то» (каталог товаров, лог, контент). Для таких данных нужна отдельная таблица или другое хранилище, не settings-таблица.

Схема БД

Справочник API

Метод Описание
get(string $key, mixed $default = null, bool $fresh = false) Получить значение настройки
set(string\|array $key, mixed $val = null): void Установить одно или несколько значений
has(string $key) Проверить существование ключа
remove(string $key): int Удалить конкретный ключ
removeAll(): int Удалить все настройки текущей группы
all(bool $fresh = false) Получить все настройки группы как Collection
list(?string $group = null) Получить все записи (raw) с фильтром по группе
groups(): array Получить список всех групп
flushCache() Сбросить кэш текущей группы
group(string $group) Алиас для forGroup() — новый экземпляр
forGroup(string $group) Вернуть новый экземпляр для указанной группы
withEvents() Вернуть новый экземпляр с включёнными событиями
withoutEvents() Вернуть новый экземпляр с отключёнными событиями

Преимущества

Простой key-value для настроек приложения. Не нужно описывать PHP-класс под каждую группу настроек и не нужна миграция на каждый новый ключ — всё хранится в одной таблице simple_settings, дубликаты исключены составным первичным ключом (group, name). Тип значения (string, int, float, bool, array, null) сохраняется и восстанавливается автоматически. Из зависимостей — только illuminate/database и illuminate/support.


English

Lightweight settings manager for Laravel with group namespacing, caching, and automatic type casting.

Requirements: PHP 8.2+, Laravel 12.x

Install:

Basic usage:

Types (integer, float, boolean, array, null) are detected and restored automatically.

Configuration keys: table_name, cache_key_prefix, events, validation_rules, audit.enabled, audit.table.

Value size limits: the val column is TEXT — 64 KB on MySQL/MariaDB, unlimited on PostgreSQL/SQLite. Typical settings fit with plenty of room (200 catalog-like objects, 10 000 short strings). Hitting the cap usually means the data belongs in its own table, not in settings.

Activity log (optional)

Opt-in change history written to a separate simple_setting_changes table. No external packages — just a model, a listener, and a migration that runs as part of php artisan migrate. Enable both events and audit.enabled in the config; once active, every set() / remove() records old_payload, new_payload, and the causer (auth()->user()).

removeAll() is intentionally silent and dispatches SettingsFlushed instead of per-key entries; listen to it directly if you need to audit group resets.

Artisan commands

setting:get, setting:set, setting:list, setting:clear, setting:delete, plus setting:export {file?} {--group=} and setting:import {file} {--replace} {--group=} for backups and environment-to-environment migration. Round-trip preserves PHP types because the JSON file carries the type column alongside the raw value.

Events

SettingRetrieved, SettingSaved, SettingDeleted, SettingsFlushed. Disabled by default; enable globally via the events config key or per-call via Setting::withEvents(). SettingSaved carries oldValue and existed only when the audit log is on.

Highlights

Plain key-value storage for app settings. No PHP class per settings group, no migration per new key — everything lives in a single simple_settings table, and the composite primary key (group, name) rules out duplicates. Value types (string, int, float, bool, array, null) are stored and restored automatically. The only dependencies are illuminate/database and illuminate/support.

For full documentation see the Russian section above.


All versions of simple-settings with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2|^8.3|^8.4|^8.5
illuminate/database Version ^12.0|^13.0
illuminate/support Version ^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package timurturdyev/simple-settings contains the following files

Loading the files please wait ...