Skip to content

Class Phalcon\Config

implements ArrayAccess, Countable

Source on GitHub

Phalcon\Config is designed to simplify the access to, and the use of, configuration data within applications. It provides a nested object property based user interface for accessing this configuration data within application code.

<?php

$config = new \Phalcon\Config(
    [
        "database" => [
            "adapter"  => "Mysql",
            "host"     => "localhost",
            "username" => "scott",
            "password" => "cheetah",
            "dbname"   => "test_db",
        ],
        "phalcon" => [
            "controllersDir" => "../app/controllers/",
            "modelsDir"      => "../app/models/",
            "viewsDir"       => "../app/views/",
        ],
    ]
);

Constants

string DEFAULT_PATH_DELIMITER

Methods

public __construct ([array $arrayConfig])

Phalcon\Config constructor

public offsetExists (mixed $index)

Allows to check whether an attribute is defined using the array-syntax

<?php

var_dump(
    isset($config["database"])
);

public path (mixed $path, [mixed $defaultValue], [mixed $delimiter])

Returns a value from current config using a dot separated path.

<?php

echo $config->path("unknown.path", "default", ".");

public get (mixed $index, [mixed $defaultValue])

Gets an attribute from the configuration, if the attribute isn't defined returns null If the value is exactly null or is not defined the default value will be used instead

<?php

echo $config->get("controllersDir", "../app/controllers/");

public offsetGet (mixed $index)

Gets an attribute using the array-syntax

<?php

print_r(
    $config["database"]
);

public offsetSet (mixed $index, mixed $value)

Sets an attribute using the array-syntax

<?php

$config["database"] = [
    "type" => "Sqlite",
];

public offsetUnset (mixed $index)

Unsets an attribute using the array-syntax

<?php

unset($config["database"]);

public merge (Phalcon\Config $config)

Merges a configuration into the current one

<?php

$appConfig = new \Phalcon\Config(
    [
        "database" => [
            "host" => "localhost",
        ],
    ]
);

$globalConfig->merge($appConfig);

public toArray ()

Converts recursively the object to an array

<?php

print_r(
    $config->toArray()
);

public count ()

Returns the count of properties set in the config

<?php

print count($config);
or

<?php

print $config->count();

public static __set_state (array $data)

Restores the state of a Phalcon\Config object

public static setPathDelimiter ([mixed $delimiter])

Sets the default path delimiter

public static getPathDelimiter ()

Gets the default path delimiter

final protected Config merged config _merge (Config $config, [mixed $instance])

Helper method for merge configs (forwarding nested config instance)


Class Phalcon\Config\Adapter\Grouped

extends class Phalcon\Config

implements Countable, ArrayAccess

Source on GitHub

Reads multiple files (or arrays) and merges them all together.

<?php

use Phalcon\Config\Adapter\Grouped;

$config = new Grouped(
    [
        "path/to/config.php",
        "path/to/config.dist.php",
    ]
);
<?php

use Phalcon\Config\Adapter\Grouped;

$config = new Grouped(
    [
        "path/to/config.json",
        "path/to/config.dist.json",
    ],
    "json"
);
<?php

use Phalcon\Config\Adapter\Grouped;

$config = new Grouped(
    [
        [
            "filePath" => "path/to/config.php",
            "adapter"  => "php",
        ],
        [
            "filePath" => "path/to/config.json",
            "adapter"  => "json",
        ],
        [
            "adapter"  => "array",
            "config"   => [
                "property" => "value",
        ],
    ],
);

Constants

string DEFAULT_PATH_DELIMITER

Methods

public __construct (array $arrayConfig, [mixed $defaultAdapter])

Phalcon\Config\Adapter\Grouped constructor

public offsetExists (mixed $index) inherited from Phalcon\Config

Allows to check whether an attribute is defined using the array-syntax

<?php

var_dump(
    isset($config["database"])
);

public path (mixed $path, [mixed $defaultValue], [mixed $delimiter]) inherited from Phalcon\Config

Returns a value from current config using a dot separated path.

<?php

echo $config->path("unknown.path", "default", ".");

public get (mixed $index, [mixed $defaultValue]) inherited from Phalcon\Config

Gets an attribute from the configuration, if the attribute isn't defined returns null If the value is exactly null or is not defined the default value will be used instead

<?php

echo $config->get("controllersDir", "../app/controllers/");

public offsetGet (mixed $index) inherited from Phalcon\Config

Gets an attribute using the array-syntax

<?php

print_r(
    $config["database"]
);

public offsetSet (mixed $index, mixed $value) inherited from Phalcon\Config

Sets an attribute using the array-syntax

<?php

$config["database"] = [
    "type" => "Sqlite",
];

public offsetUnset (mixed $index) inherited from Phalcon\Config

Unsets an attribute using the array-syntax

<?php

unset($config["database"]);

public merge (Phalcon\Config $config) inherited from Phalcon\Config

Merges a configuration into the current one

<?php

$appConfig = new \Phalcon\Config(
    [
        "database" => [
            "host" => "localhost",
        ],
    ]
);

$globalConfig->merge($appConfig);

public toArray () inherited from Phalcon\Config

Converts recursively the object to an array

<?php

print_r(
    $config->toArray()
);

public count () inherited from Phalcon\Config

Returns the count of properties set in the config

<?php

print count($config);
or

<?php

print $config->count();

public static __set_state (array $data) inherited from Phalcon\Config

Restores the state of a Phalcon\Config object

public static setPathDelimiter ([mixed $delimiter]) inherited from Phalcon\Config

Sets the default path delimiter

public static getPathDelimiter () inherited from Phalcon\Config

Gets the default path delimiter

final protected Config merged config _merge (Config $config, [mixed $instance]) inherited from Phalcon\Config

Helper method for merge configs (forwarding nested config instance)


Class Phalcon\Config\Adapter\Ini

extends class Phalcon\Config

implements Countable, ArrayAccess

Source on GitHub

Reads ini files and converts them to Phalcon\Config objects.

Given the next configuration file:

<?php

[database]
adapter = Mysql
host = localhost
username = scott
password = cheetah
dbname = test_db

[phalcon]
controllersDir = "../app/controllers/"
modelsDir = "../app/models/"
viewsDir = "../app/views/"

You can read it as follows:

<?php

$config = new \Phalcon\Config\Adapter\Ini("path/config.ini");

echo $config->phalcon->controllersDir;
echo $config->database->username;

PHP constants may also be parsed in the ini file, so if you define a constant as an ini value before calling the constructor, the constant's value will be integrated into the results. To use it this way you must specify the optional second parameter as INI_SCANNER_NORMAL when calling the constructor:

<?php

$config = new \Phalcon\Config\Adapter\Ini(
    "path/config-with-constants.ini",
    INI_SCANNER_NORMAL
);

Constants

string DEFAULT_PATH_DELIMITER

Methods

public __construct (mixed $filePath, [mixed $mode])

Phalcon\Config\Adapter\Ini constructor

protected _parseIniString (mixed $path, mixed $value)

Build multidimensional array from string

<?php

$this->_parseIniString("path.hello.world", "value for last key");

// result
[
     "path" => [
         "hello" => [
             "world" => "value for last key",
         ],
     ],
];

protected _cast (mixed $ini)

We have to cast values manually because parse_ini_file() has a poor implementation.

public offsetExists (mixed $index) inherited from Phalcon\Config

Allows to check whether an attribute is defined using the array-syntax

<?php

var_dump(
    isset($config["database"])
);

public path (mixed $path, [mixed $defaultValue], [mixed $delimiter]) inherited from Phalcon\Config

Returns a value from current config using a dot separated path.

<?php

echo $config->path("unknown.path", "default", ".");

public get (mixed $index, [mixed $defaultValue]) inherited from Phalcon\Config

Gets an attribute from the configuration, if the attribute isn't defined returns null If the value is exactly null or is not defined the default value will be used instead

<?php

echo $config->get("controllersDir", "../app/controllers/");

public offsetGet (mixed $index) inherited from Phalcon\Config

Gets an attribute using the array-syntax

<?php

print_r(
    $config["database"]
);

public offsetSet (mixed $index, mixed $value) inherited from Phalcon\Config

Sets an attribute using the array-syntax

<?php

$config["database"] = [
    "type" => "Sqlite",
];

public offsetUnset (mixed $index) inherited from Phalcon\Config

Unsets an attribute using the array-syntax

<?php

unset($config["database"]);

public merge (Phalcon\Config $config) inherited from Phalcon\Config

Merges a configuration into the current one

<?php

$appConfig = new \Phalcon\Config(
    [
        "database" => [
            "host" => "localhost",
        ],
    ]
);

$globalConfig->merge($appConfig);

public toArray () inherited from Phalcon\Config

Converts recursively the object to an array

<?php

print_r(
    $config->toArray()
);

public count () inherited from Phalcon\Config

Returns the count of properties set in the config

<?php

print count($config);
or

<?php

print $config->count();

public static __set_state (array $data) inherited from Phalcon\Config

Restores the state of a Phalcon\Config object

public static setPathDelimiter ([mixed $delimiter]) inherited from Phalcon\Config

Sets the default path delimiter

public static getPathDelimiter () inherited from Phalcon\Config

Gets the default path delimiter

final protected Config merged config _merge (Config $config, [mixed $instance]) inherited from Phalcon\Config

Helper method for merge configs (forwarding nested config instance)


Class Phalcon\Config\Adapter\Json

extends class Phalcon\Config

implements Countable, ArrayAccess

Source on GitHub

Reads JSON files and converts them to Phalcon\Config objects.

Given the following configuration file:

<?php

{"phalcon":{"baseuri":"\/phalcon\/"},"models":{"metadata":"memory"}}

You can read it as follows:

<?php

$config = new Phalcon\Config\Adapter\Json("path/config.json");

echo $config->phalcon->baseuri;
echo $config->models->metadata;

Constants

string DEFAULT_PATH_DELIMITER

Methods

public __construct (mixed $filePath)

Phalcon\Config\Adapter\Json constructor

public offsetExists (mixed $index) inherited from Phalcon\Config

Allows to check whether an attribute is defined using the array-syntax

<?php

var_dump(
    isset($config["database"])
);

public path (mixed $path, [mixed $defaultValue], [mixed $delimiter]) inherited from Phalcon\Config

Returns a value from current config using a dot separated path.

<?php

echo $config->path("unknown.path", "default", ".");

public get (mixed $index, [mixed $defaultValue]) inherited from Phalcon\Config

Gets an attribute from the configuration, if the attribute isn't defined returns null If the value is exactly null or is not defined the default value will be used instead

<?php

echo $config->get("controllersDir", "../app/controllers/");

public offsetGet (mixed $index) inherited from Phalcon\Config

Gets an attribute using the array-syntax

<?php

print_r(
    $config["database"]
);

public offsetSet (mixed $index, mixed $value) inherited from Phalcon\Config

Sets an attribute using the array-syntax

<?php

$config["database"] = [
    "type" => "Sqlite",
];

public offsetUnset (mixed $index) inherited from Phalcon\Config

Unsets an attribute using the array-syntax

<?php

unset($config["database"]);

public merge (Phalcon\Config $config) inherited from Phalcon\Config

Merges a configuration into the current one

<?php

$appConfig = new \Phalcon\Config(
    [
        "database" => [
            "host" => "localhost",
        ],
    ]
);

$globalConfig->merge($appConfig);

public toArray () inherited from Phalcon\Config

Converts recursively the object to an array

<?php

print_r(
    $config->toArray()
);

public count () inherited from Phalcon\Config

Returns the count of properties set in the config

<?php

print count($config);
or

<?php

print $config->count();

public static __set_state (array $data) inherited from Phalcon\Config

Restores the state of a Phalcon\Config object

public static setPathDelimiter ([mixed $delimiter]) inherited from Phalcon\Config

Sets the default path delimiter

public static getPathDelimiter () inherited from Phalcon\Config

Gets the default path delimiter

final protected Config merged config _merge (Config $config, [mixed $instance]) inherited from Phalcon\Config

Helper method for merge configs (forwarding nested config instance)


Class Phalcon\Config\Adapter\Php

extends class Phalcon\Config

implements Countable, ArrayAccess

Source on GitHub

Reads php files and converts them to Phalcon\Config objects.

Given the next configuration file:

<?php

<?php

return [
    "database" => [
        "adapter"  => "Mysql",
        "host"     => "localhost",
        "username" => "scott",
        "password" => "cheetah",
        "dbname"   => "test_db",
    ],
    "phalcon" => [
        "controllersDir" => "../app/controllers/",
        "modelsDir"      => "../app/models/",
        "viewsDir"       => "../app/views/",
    ],
];

You can read it as follows:

<?php

$config = new \Phalcon\Config\Adapter\Php("path/config.php");

echo $config->phalcon->controllersDir;
echo $config->database->username;

Constants

string DEFAULT_PATH_DELIMITER

Methods

public __construct (mixed $filePath)

Phalcon\Config\Adapter\Php constructor

public offsetExists (mixed $index) inherited from Phalcon\Config

Allows to check whether an attribute is defined using the array-syntax

<?php

var_dump(
    isset($config["database"])
);

public path (mixed $path, [mixed $defaultValue], [mixed $delimiter]) inherited from Phalcon\Config

Returns a value from current config using a dot separated path.

<?php

echo $config->path("unknown.path", "default", ".");

public get (mixed $index, [mixed $defaultValue]) inherited from Phalcon\Config

Gets an attribute from the configuration, if the attribute isn't defined returns null If the value is exactly null or is not defined the default value will be used instead

<?php

echo $config->get("controllersDir", "../app/controllers/");

public offsetGet (mixed $index) inherited from Phalcon\Config

Gets an attribute using the array-syntax

<?php

print_r(
    $config["database"]
);

public offsetSet (mixed $index, mixed $value) inherited from Phalcon\Config

Sets an attribute using the array-syntax

<?php

$config["database"] = [
    "type" => "Sqlite",
];

public offsetUnset (mixed $index) inherited from Phalcon\Config

Unsets an attribute using the array-syntax

<?php

unset($config["database"]);

public merge (Phalcon\Config $config) inherited from Phalcon\Config

Merges a configuration into the current one

<?php

$appConfig = new \Phalcon\Config(
    [
        "database" => [
            "host" => "localhost",
        ],
    ]
);

$globalConfig->merge($appConfig);

public toArray () inherited from Phalcon\Config

Converts recursively the object to an array

<?php

print_r(
    $config->toArray()
);

public count () inherited from Phalcon\Config

Returns the count of properties set in the config

<?php

print count($config);
or

<?php

print $config->count();

public static __set_state (array $data) inherited from Phalcon\Config

Restores the state of a Phalcon\Config object

public static setPathDelimiter ([mixed $delimiter]) inherited from Phalcon\Config

Sets the default path delimiter

public static getPathDelimiter () inherited from Phalcon\Config

Gets the default path delimiter

final protected Config merged config _merge (Config $config, [mixed $instance]) inherited from Phalcon\Config

Helper method for merge configs (forwarding nested config instance)


Class Phalcon\Config\Adapter\Yaml

extends class Phalcon\Config

implements Countable, ArrayAccess

Source on GitHub

Reads YAML files and converts them to Phalcon\Config objects.

Given the following configuration file:

<?php

phalcon:
  baseuri:        /phalcon/
  controllersDir: !approot  /app/controllers/
models:
  metadata: memory

You can read it as follows:

<?php

define(
    "APPROOT",
    dirname(__DIR__)
);

$config = new \Phalcon\Config\Adapter\Yaml(
    "path/config.yaml",
    [
        "!approot" => function($value) {
            return APPROOT . $value;
        },
    ]
);

echo $config->phalcon->controllersDir;
echo $config->phalcon->baseuri;
echo $config->models->metadata;

Constants

string DEFAULT_PATH_DELIMITER

Methods

public __construct (mixed $filePath, [array $callbacks])

Phalcon\Config\Adapter\Yaml constructor

public offsetExists (mixed $index) inherited from Phalcon\Config

Allows to check whether an attribute is defined using the array-syntax

<?php

var_dump(
    isset($config["database"])
);

public path (mixed $path, [mixed $defaultValue], [mixed $delimiter]) inherited from Phalcon\Config

Returns a value from current config using a dot separated path.

<?php

echo $config->path("unknown.path", "default", ".");

public get (mixed $index, [mixed $defaultValue]) inherited from Phalcon\Config

Gets an attribute from the configuration, if the attribute isn't defined returns null If the value is exactly null or is not defined the default value will be used instead

<?php

echo $config->get("controllersDir", "../app/controllers/");

public offsetGet (mixed $index) inherited from Phalcon\Config

Gets an attribute using the array-syntax

<?php

print_r(
    $config["database"]
);

public offsetSet (mixed $index, mixed $value) inherited from Phalcon\Config

Sets an attribute using the array-syntax

<?php

$config["database"] = [
    "type" => "Sqlite",
];

public offsetUnset (mixed $index) inherited from Phalcon\Config

Unsets an attribute using the array-syntax

<?php

unset($config["database"]);

public merge (Phalcon\Config $config) inherited from Phalcon\Config

Merges a configuration into the current one

<?php

$appConfig = new \Phalcon\Config(
    [
        "database" => [
            "host" => "localhost",
        ],
    ]
);

$globalConfig->merge($appConfig);

public toArray () inherited from Phalcon\Config

Converts recursively the object to an array

<?php

print_r(
    $config->toArray()
);

public count () inherited from Phalcon\Config

Returns the count of properties set in the config

<?php

print count($config);
or

<?php

print $config->count();

public static __set_state (array $data) inherited from Phalcon\Config

Restores the state of a Phalcon\Config object

public static setPathDelimiter ([mixed $delimiter]) inherited from Phalcon\Config

Sets the default path delimiter

public static getPathDelimiter () inherited from Phalcon\Config

Gets the default path delimiter

final protected Config merged config _merge (Config $config, [mixed $instance]) inherited from Phalcon\Config

Helper method for merge configs (forwarding nested config instance)


Class Phalcon\Config\Exception

extends class Phalcon\Exception

implements Throwable

Source on GitHub

Methods

final private Exception __clone () inherited from Exception

Clone the exception

public __construct ([mixed $message], [mixed $code], [mixed $previous]) inherited from Exception

Exception constructor

public __wakeup () inherited from Exception

...

final public string getMessage () inherited from Exception

Gets the Exception message

final public int getCode () inherited from Exception

Gets the Exception code

final public string getFile () inherited from Exception

Gets the file in which the exception occurred

final public int getLine () inherited from Exception

Gets the line in which the exception occurred

final public array getTrace () inherited from Exception

Gets the stack trace

final public Exception getPrevious () inherited from Exception

Returns previous Exception

final public Exception getTraceAsString () inherited from Exception

Gets the stack trace as a string

public string __toString () inherited from Exception

String representation of the exception


Class Phalcon\Config\Factory

extends abstract class Phalcon\Factory

implements Phalcon\FactoryInterface

Source on GitHub

Loads Config Adapter class using 'adapter' option, if no extension is provided it will be added to filePath

<?php

use Phalcon\Config\Factory;

$options = [
    "filePath" => "path/config",
    "adapter"  => "php",
];
$config = Factory::load($options);

Methods

public static load (Phalcon\Config | array $config)

protected static loadClass (mixed $namespace, mixed $config)

...