Download the PHP package daycry/settings without Composer

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

Donate

CodeIgniter 4 Settings

Provides database storage and retrieval of application settings, with a fallback to the config classes.

Build Status Downloads GitHub release (latest by date) GitHub stars GitHub license

Quick Start

  1. Install with Composer: > composer require daycry/settings
  2. Create a new migration and copy the provided class from below into it.

Settings provides a simple interface that you can use in place of calling config() to allow you to read and store config values in the database. If the value has not been updated and saved in the database then the original value from the config file will be used.

This allows you to save your application's default state as values in config files, all stored in version control, and still allows your users to override those settings once the site is live.

Installation

Install easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities and always be up-to-date:

Manual installation

Download this repo and then enable it by editing app/Config/Autoload.php and adding the Daycry\Settings namespace to the $psr4 array. For example, if you copied it into app/ThirdParty:

Setup

Run command:

> php spark settings:publish

This command will copy a config file to your app namespace. Then you can adjust it to your needs. By default file will be present in app/Config/Settings.php.

In order to store the settings in the database, you can run the provided migration:

This will also migrate all other packages. If you don't want to do that you can copy the file from vendor/daycry/settings/src/Database/Migrations/2021-09-01-000001_CreateSettingsTable.php into app/Database/Migrations, and migrate without the --all flag.

dot Notation

This library uses what we call "dot notation" to specify the class name and the property name to use. These are joined by a dot, hence the name.

If you have a class named App, and the property you are wanting to use is siteName, then the key would be App.siteName.

Usage

To retrieve a config value use the settings service.

In this case we used the short class name, App, which the config() method automatically locates within the app/Config directory. If it was from a module, it would be found there. Either way, the fully qualified name is automatically detected by the Settings class to keep values separated from config files that may share the same name but different namespaces. If no config file match is found, the short name will be used, so it can be used to store settings without config files.

To save a value, call the set() method on the settings class, providing the class name, the key, and the value. Note that boolean true/false will be converted to strings :true and :false when stored in the database, but will be converted back into a boolean when retrieved. Arrays and objects are serialized when saved, and unserialized when retrieved.

You can delete a value from the persistent storage with the forget() method. Since it is removed from the storage, it effectively resets itself back to the default value in config file, if any.

Using the Helper

The helper provides a shortcut to the using the service. It must first be loaded using the helper() method or telling your BaseController to always load it.

Known Limitations

The following are known limitations of the library:

  1. Using the setting() helper method does not support setting a null value on a property. For most cases, you are better off forgetting the value or setting it to an empty string. If you need to, you can set it by grabbing the service and using the set() method:

  2. You can currently only store a single setting at a time. While the DatabaseHandler uses a local cache to keep performance as high as possible for reads, writes must be done one at a time.
  3. You can only access the first level within a property directly. In most config classes this is a non-issue, since the properties are simple values. Some config files, like the database file, contain properties that are arrays.

All versions of settings with dependencies

PHP Build Version
Package Version
Requires php Version ^7.3 || ^8.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 daycry/settings contains the following files

Loading the files please wait ....