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

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

rasuvaeff/yii3-settings-ui

Latest Stable Version Total Downloads Build Static analysis Psalm level PHP Русская версия

Admin UI panel for managing Yii3 runtime settings.

Using an AI coding assistant? llms.txt contains a compact API reference you can share with the model.

A drop-in admin panel for rasuvaeff/yii3-settings: list runtime settings in a sortable grid, edit them with per-type validation, reset overrides back to config/default, and handle secret values safely (masked, never rendered in plaintext).

Requirements

The list grid is rendered server-side from the application DI container (SettingsGridFactory), so the host does not need to bootstrap WidgetFactory.

Installation

Usage

The package ships Yii3 config-plugin wiring (di, params). Add your params to the merge chain:

layout controls the shared wrapper. views.list and views.edit override only the corresponding templates; they do not replace the layout.

Bind the settings contracts to your provider. With rasuvaeff/yii3-settings-db ^1.0 this is automatic — its config-plugin binds WritableSettingsProvider, SettingsProvider and SettingsInspector to the same DbSettingsProvider. For a custom backend, bind them yourself:

Routes

Method Path Action Default name
GET {prefix} Yii\List\Action settings/list
GET {prefix}/{key}/edit Yii\Edit\Action settings/edit
POST {prefix}/{key} Yii\Update\Action settings/update
POST {prefix}/{key}/reset Yii\Reset\Action settings/reset

middlewares.{all,list,edit,update,reset} — add middlewares per slot without forking the routes. RequestBodyParser is added automatically to the POST routes (update, reset); set 'body_parser' => false in params to opt out.

URLs and redirects are generated through the router (UrlGeneratorInterface) by route name; links stay correct under any prefix or subdomain. Override route_names in params when your app uses a different naming convention.

Flat-route wiring

Wire the bundled config/routes.php explicitly in configuration.php:

The route prefix, names and middlewares are read from params (SettingsRoutes::PARAM_KEY).

Group-based admin panel

Inside a Group (the typical approach for a shared-prefix admin area):

fromParams() reads prefix, names, middlewares and body-parser opt-out from $params[SettingsRoutes::PARAM_KEY], so route registration and SettingsUrls URL generation are always in sync.

For full control over names, use create() directly and add matching route_names to params:

Authorization

The package does not enforce access control internally. Protect routes via middlewares.all (or per-route keys). The package provides CurrentUser injection for audit events only.

Public API

Class Description
SettingsRoutes Builds the 4 routes; fromParams($params) for group-based panels, create() for full control
Yii\List\Action GET flat grid (Group/Key/Value/Type/Source), secrets masked
Yii\Edit\Action GET type-aware edit form
Yii\Update\Action POST validate + save, re-render on invalid input
Yii\Reset\Action POST remove override -> config/default
Form\SettingForm Submitted edit input (present + value)
Validation\SettingValueValidator Validates + normalizes submitted input against the setting type (value-free error messages)
Renderer\TemplateRendererInterface Rendering seam (testable actions)
Renderer\ViewTemplateRenderer Default renderer over WebViewRenderer
Event\SettingChanged PSR-14 event after update/reset (secret-safe, actor = current user ID)
Exception\InvalidSettingValueException Type validation failure

The Service\* responders/processors, Service\SettingsUrls and Service\SettingsGridFactory are @internal — auto-wired through config/di.php; the host references the Yii\*\Action handlers, not these.

Setting labels, groups, help text, choices and read-only flags come from SettingDefinition (rasuvaeff/yii3-settings), not a UI-side map.

Security

Concern Behaviour
Secret values Never rendered: list shows ●●●● (set) / — (not set), edit shows an empty password field
Blank secret submit Keeps the current value — set() is not called
Validation errors Re-renders the edit page with HTTP 200
Events SettingChanged carries null value for secret keys and optional actor
Read-only settings Update/Reset rejected with HTTP 403
CSRF Enforced by your application middleware; the form emits a hidden _csrf field when a csrf_token request attribute is present
Output All values pass through Yiisoft\Html\Html::encode() / Html widgets / GridView encoding

Crypto/at-rest encryption is handled by the settings packages, not here — the UI only ever sees masked state for secrets.

Customising views

Override views.list and/or views.edit in params with absolute paths to your own templates. The templates receive the same variables as the bundled ones — see resources/views/.

The edit form uses input names scoped under Setting[...] (e.g. Setting[value]). Custom edit templates must preserve this scope for SettingForm::fromParsedBody() to work.

Flash messages are not built in — the package does not know about the host app's session. Subscribe to SettingChanged in your app to add flash notifications, cache invalidation, or audit trail entries.

Why SettingChanged Exists

The package emits SettingChanged after update/reset so the host app can react without coupling itself to the UI actions. Typical uses are cache invalidation, audit logging, dependent reconfiguration, and observability hooks. The actor field carries the current user ID; null for guests.


All versions of yii3-settings-ui with dependencies

PHP Build Version
Package Version
Requires php Version 8.3 - 8.5
psr/container Version ^2.0
psr/event-dispatcher Version ^1.0
psr/http-factory Version ^1.1
psr/http-message Version ^2.0
psr/http-server-handler Version ^1.0
rasuvaeff/yii3-settings Version ^1.0
yiisoft/data Version ^2.0
yiisoft/form-model Version ^1.1
yiisoft/html Version ^3.13 || ^4.0
yiisoft/request-body-parser Version ^1.2
yiisoft/router Version ^3.1 || ^4.0
yiisoft/user Version ^2.0
yiisoft/validator Version ^2.5
yiisoft/yii-dataview Version ^1.1
yiisoft/yii-view-renderer Version ^7.4
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-ui contains the following files

Loading the files please wait ...