Download the PHP package rasuvaeff/yii3-settings-db without Composer

On this page you can find all versions of the php package rasuvaeff/yii3-settings-db. 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 yii3-settings-db

rasuvaeff/yii3-settings-db

Stable Version Total Downloads Build Static Analysis PHP Русская версия

Database-backed writable settings provider for Yii3 applications. Implements WritableSettingsProvider and SettingsInspector from rasuvaeff/yii3-settings, persists runtime overrides in a DB table, and supports at-rest encryption of secret settings via libsodium (XChaCha20-Poly1305).

Using an AI coding assistant? llms.txt has a compact API reference you can feed into the model.

Requirements

Installation

Requires rasuvaeff/yii3-settings ^1.0. With Yii3 config-plugin this package binds SettingsProvider, WritableSettingsProvider and SettingsInspector automatically (all resolve to the same DbSettingsProvider instance); the core binds the Settings facade. Do not also bind these in your application or another backend, or yiisoft/config reports a Duplicate key error.

Usage

Basic provider

The constructor accepts an optional fallback (SettingsProvider). When a key has no stored DB row, get() delegates to the fallback (which must recognize the same keys) instead of returning the definition default — this is how config values are preserved in the DI wiring below. Without a fallback, a missing row resolves to SettingDefinition::default.

Yii3 config-plugin wiring

The package ships config/params.php and config/di.php via config-plugin. It binds WritableSettingsProvider, SettingsProvider and SettingsInspector; the Settings facade itself is bound by the core (rasuvaeff/yii3-settings ^1.0) from the injected SettingsProvider. The default wiring keeps explicit config values working: DbSettingsProvider is built with a ConfigSettingsProvider fallback, so a key without a stored DB row resolves to its config value (and only then to the definition default).

Encryption is turnkey: set rasuvaeff/yii3-settings-db.cipher.key (a 32-byte key, base64) and the wiring builds the KeyRing + SodiumCipher for you — no manual crypto wiring in the host app. When any secret definition exists, the key is required (the provider throws at construction otherwise).

Runtime precedence after wiring:

Source Priority
DB row 1
Explicit config values 2
SettingDefinition::default 3

Migration

Register the bundled migration by namespace — no vendor paths:

yiisoft/db-migration resolves the migration through Injector::make(), so it picks up the table-name value object from the container the same way the provider does — no manual wiring needed beyond setSourceNamespaces() above.

Set the table name in params — the same value reaches the migration and DbSettingsProvider:

Do not configure the migration through the DI container. M...::class => ['__construct()' => ['table' => ...]] does not work: the migration is built by Injector::make(), which resolves arguments by type and never reads a container definition keyed by the migration's own class. Worse, adding that definition makes the container fatal at build time in every request, because the class is not autoloadable until the migration runner requires it. That recipe was documented in 1.x; it never worked.

Core cache decorator

Secret settings

Settings inspector

Key rotation

Bulk operations

getByPrefix() runs a single LIKE query, then resolves each key through the normal precedence (DB row > fallback > default). setMany() validates all keys upfront (unknown → UnknownSettingException, readonly → ReadonlySettingException), then upserts in a transaction — if any write fails the entire batch rolls back.

Console commands

The settings:reencrypt command runs reencryptSecrets() on the active DbSettingsProvider instance. Works in any Symfony Console / yiisoft/yii-console application. The ReencryptSettingsCommand class is autowired via DI.

Public API

Class Description
DbSettingsProvider DB-backed WritableSettingsProvider + SettingsInspector
KeyRing Key management with versioning and active key
SodiumCipher XChaCha20-Poly1305 encryption via libsodium
ReencryptSettingsCommand Console command (settings:reencrypt)
InvalidSettingRowException Stored row type mismatch

Security

Examples

See examples/ for runnable scripts.

Development

License

BSD-3-Clause. See LICENSE.md.


All versions of yii3-settings-db with dependencies

PHP Build Version
Package Version
Requires php Version 8.3 - 8.5
ext-sodium Version *
rasuvaeff/yii3-settings Version ^1.0
symfony/console Version ^7.0
yiisoft/db Version ^2.0
yiisoft/db-migration Version ^2.1
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 rasuvaeff/yii3-settings-db contains the following files

Loading the files please wait ...