Site

ConfigWrite

O ConfigWrite é responsável por gerenciar os arquivos de configuração localizados em:

bootstrap/config/

Ele permite alterar valores dos arrays de configuração de forma simples e permanente.


Funcionamento

O ConfigWrite atualiza apenas o índice informado. Toda a estrutura restante do arquivo é preservada automaticamente.

Por exemplo, considerando o arquivo:

bootstrap/config/user.php
return [
    'name' => 'User',
    'email' => 'user@site.com',
    'level' => 400
];

Executando:

config_write::set(
    'user.name',
    'Admin'
);

Apenas o índice name será alterado. Resultado:

return [
    'name' => 'Admin',
    'email' => 'user@site.com',
    'level' => 400
];

Estruturas aninhadas

Também é possível trabalhar com estruturas aninhadas.

return [
    'user' => [
        'name'  => 'User',
        'email' => 'user@site.com',
        'level' => 400
    ]
];

Executando:

config_write::set(
    'user.user.name',
    'Admin'
);

Resultado:

return [
    'user' => [
        'name'  => 'Admin',
        'email' => 'user@site.com',
        'level' => 400
    ]
];

setMany()

O método setMany() permite alterar múltiplas configurações ao mesmo tempo dentro de um ou mais arquivos de configuração.

use MUCRM\engine\support\config\config_write;

config_write::setMany([
    'user.name'  => 'Admin',
    'user.email' => 'admin@site.com',
    'user.level' => 400
]);

Como funciona

Cada chave segue o padrão:

arquivo.indice.subindice

Exemplo:

user.name

Significa:

  • arquivo: user.php
  • índice: name

Comportamento

O setMany():

  • atualiza múltiplos índices de forma simultânea;
  • mantém toda a estrutura original intacta;
  • altera apenas os campos informados;
  • não sobrescreve valores não mencionados.

Exemplo de estrutura original

return [
    'name'  => 'User',
    'email' => 'user@site.com',
    'level' => 400
];

Após setMany()

return [
    'name'  => 'Admin',
    'email' => 'admin@site.com',
    'level' => 400
];

Diferença entre set e setMany

set()

config_write::set('user.name', 'Admin');

Altera apenas um único valor.

setMany()

config_write::setMany([
    'user.name'  => 'Admin',
    'user.level' => 400
]);

Altera vários valores de uma vez.