Class Phalcon\Config
Código fuente en GitHub
Namespace |
Phalcon |
|
Uses |
Phalcon\Collection, Phalcon\Config\ConfigInterface, Phalcon\Config\Exception |
|
Extends |
Collection |
|
Implements |
ConfigInterface |
Phalcon\Config
está diseñado para simplificar el acceso a, y el uso de, los datos de configuración de las aplicaciones. Proporciona una propiedad de objeto anidado basada en interfaz de usuario para acceder a estos datos de configuración dentro del código de la aplicación.
$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/",
],
]
);
Constantes
const DEFAULT_PATH_DELIMITER = .;
Propiedades
/**
* @var string
*/
protected pathDelimiter;
Métodos
public function getPathDelimiter(): string;
Devuelve el delimitador de ruta por defecto
public function merge( mixed $toMerge ): ConfigInterface;
Combina una configuración con la actual
$appConfig = new \Phalcon\Config(
[
"database" => [
"host" => "localhost",
],
]
);
$globalConfig->merge($appConfig);
public function path( string $path, mixed $defaultValue = null, mixed $delimiter = null ): mixed | null;
Devuelve un valor de la configuración actual usando una ruta separada por puntos.
echo $config->path("unknown.path", "default", ".");
public function setPathDelimiter( string $delimiter = null ): ConfigInterface;
Establece el delimitador de la ruta predeterminada
public function toArray(): array;
Convierte recursivamente el objeto a un vector
print_r(
$config->toArray()
);
final protected function internalMerge( array $source, array $target ): array;
Ejecuta una combinación recursivamente
protected function setData( mixed $element, mixed $value ): void;
Establece los datos de la colección
Class Phalcon\Config\Adapter\Grouped
Código fuente en GitHub
Namespace |
Phalcon\Config\Adapter |
|
Uses |
Phalcon\Config, Phalcon\Config\ConfigFactory, Phalcon\Config\ConfigInterface, Phalcon\Config\Exception, Phalcon\Factory\Exception |
|
Extends |
Config |
Lee múltiples ficheros (o vectores) y los combina todos juntos.
Ver Phalcon\Config\Factory::load
para cargar la clase Config Adapter
usando la opción ‘adapter’.
use Phalcon\Config\Adapter\Grouped;
$config = new Grouped(
[
"path/to/config.php",
"path/to/config.dist.php",
]
);
use Phalcon\Config\Adapter\Grouped;
$config = new Grouped(
[
"path/to/config.json",
"path/to/config.dist.json",
],
"json"
);
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",
],
],
],
);
Métodos
public function __construct( array $arrayConfig, string $defaultAdapter = string );
Constructor Phalcon\Config\Adapter\Grouped
Class Phalcon\Config\Adapter\Ini
Código fuente en GitHub
Namespace |
Phalcon\Config\Adapter |
|
Uses |
Phalcon\Config, Phalcon\Config\Exception |
|
Extends |
Config |
Lee ficheros ini y los convierte a objetos Phalcon\Config.
Dado el siguiente fichero de configuración:
[database]
adapter = Mysql
host = localhost
username = scott
password = cheetah
dbname = test_db
[phalcon]
controllersDir = "../app/controllers/"
modelsDir = "../app/models/"
viewsDir = "../app/views/"
Puede leerlo de la siguiente manera:
use Phalcon\Config\Adapter\Ini;
$config = new Ini("path/config.ini");
echo $config->phalcon->controllersDir;
echo $config->database->username;
Las constantes PHP también se pueden analizar en el fichero ini, así que si define una constante como un valor ini antes de llamar al constructor, el valor de la constante será integrada en los resultados. Para usarlo de esta forma debe especificar el segundo parámetro opcional como INI_SCANNER_NORMAL
cuando llame al constructor:
$config = new \Phalcon\Config\Adapter\Ini(
"path/config-with-constants.ini",
INI_SCANNER_NORMAL
);
Métodos
public function __construct( string $filePath, mixed $mode = null );
Constructor Ini.
protected function cast( mixed $ini ): bool | null | double | int | string;
Tenemos que convertir valores manualmente porque parse_ini_file() tiene una implementación pobre.
protected function parseIniString( string $path, mixed $value ): array;
Construye un vector multidimensional desde una cadena
Class Phalcon\Config\Adapter\Json
Código fuente en GitHub
Namespace |
Phalcon\Config\Adapter |
|
Uses |
Phalcon\Config, Phalcon\Helper\Json |
|
Extends |
Config |
Lee ficheros JSON y los convierte a objetos Phalcon\Config.
Dado el siguiente fichero de configuración:
{"phalcon":{"baseuri":"\/phalcon\/"},"models":{"metadata":"memory"}}
Puede leerlo de la siguiente manera:
use Phalcon\Config\Adapter\Json;
$config = new Json("path/config.json");
echo $config->phalcon->baseuri;
echo $config->models->metadata;
Métodos
public function __construct( string $filePath );
Constructor Phalcon\Config\Adapter\Json
Class Phalcon\Config\Adapter\Php
Código fuente en GitHub
Namespace |
Phalcon\Config\Adapter |
|
Uses |
Phalcon\Config |
|
Extends |
Config |
Lee ficheros php y los convierte a objetos Phalcon\Config.
Dado el siguiente fichero de configuración:
<?php
return [
"database" => [
"adapter" => "Mysql",
"host" => "localhost",
"username" => "scott",
"password" => "cheetah",
"dbname" => "test_db",
],
"phalcon" => [
"controllersDir" => "../app/controllers/",
"modelsDir" => "../app/models/",
"viewsDir" => "../app/views/",
],
];
Puede leerlo de la siguiente manera:
use Phalcon\Config\Adapter\Php;
$config = new Php("path/config.php");
echo $config->phalcon->controllersDir;
echo $config->database->username;
Métodos
public function __construct( string $filePath );
Constructor Phalcon\Config\Adapter\Php
Class Phalcon\Config\Adapter\Yaml
Código fuente en GitHub
Namespace |
Phalcon\Config\Adapter |
|
Uses |
Phalcon\Config, Phalcon\Config\Exception |
|
Extends |
Config |
Lee ficheros YAML y los convierte a objetos Phalcon\Config.
Dado el siguiente fichero de configuración:
phalcon:
baseuri: /phalcon/
controllersDir: !approot /app/controllers/
models:
metadata: memory
Puede leerlo de la siguiente manera:
define(
"APPROOT",
dirname(__DIR__)
);
use Phalcon\Config\Adapter\Yaml;
$config = new Yaml(
"path/config.yaml",
[
"!approot" => function($value) {
return APPROOT . $value;
},
]
);
echo $config->phalcon->controllersDir;
echo $config->phalcon->baseuri;
echo $config->models->metadata;
Métodos
public function __construct( string $filePath, array $callbacks = null );
Constructor Phalcon\Config\Adapter\Yaml
Class Phalcon\Config\ConfigFactory
Código fuente en GitHub
Namespace |
Phalcon\Config |
|
Uses |
Phalcon\Config, Phalcon\Config\ConfigInterface, Phalcon\Factory\AbstractFactory, Phalcon\Helper\Arr |
|
Extends |
AbstractFactory |
Carga la clase Config Adapter
usando la opción ‘adapter’, si no se proporciona ninguna extensión será añadirá al filePath
use Phalcon\Config\ConfigFactory;
$options = [
"filePath" => "path/config",
"adapter" => "php",
];
$config = (new ConfigFactory())->load($options);
Métodos
public function __construct( array $services = [] );
Constructor ConfigFactory.
public function load( mixed $config ): ConfigInterface;
Carga una configuración para crear una nueva instancia
public function newInstance( string $name, string $fileName, mixed $params = null ): ConfigInterface;
Devuelve una nueva instancia de configuración
protected function getAdapters(): array;
Devuelve los adaptadores de la fábrica
Interface Phalcon\Config\ConfigInterface
Código fuente en GitHub
Namespace |
Phalcon\Config |
|
Uses |
Phalcon\Collection\CollectionInterface |
|
Extends |
CollectionInterface |
Phalcon\Config\ConfigInterface
Interfaz para la clase Phalcon\Config
Métodos
public function getPathDelimiter(): string;
public function merge( mixed $toMerge ): ConfigInterface;
public function path( string $path, mixed $defaultValue = null, mixed $delimiter = null ): mixed | null;
public function setPathDelimiter( string $delimiter = null ): ConfigInterface;
Class Phalcon\Config\Exception
Código fuente en GitHub
Namespace |
Phalcon\Config |
|
Extends |
\Phalcon\Exception |
Las excepciones lanzadas en Phalcon\Config usarán esta clase