Classe COnfigure style à la Cakephp

Eléphant du PHP | 450 Messages

05 sept. 2019, 21:42

Bonsoir

J'aurais bien besoin d'aide car je bloque totalement depuis plusieurs jours sur un code pour faire une classe static comme celle de cakephp :x

Voici ce que j'aimerais faire:
Configure::write('config.test', 12);
Configure::write('config.db.name', 'john');

Et du coup obtenir dans ma classe configure:
[
        'config' => [
            'test' => 12,
            'db' => [
                'name' => 'john'
            ]
        ]
    ]

Et du coup pour lire une donnée faire: Configure::read('config.test')

Voici ou j'en suis pour le moment:
class Configure
{

    protected static $_values = [];

    private static function insert($data, $path, $values = null)
    {
        $tokens = explode('.', $path);
        $token = array_shift($tokens);
        $nextPath = implode('.', $tokens);

        return $data;
    }

    public static function write($config, $value = null)
    {
        if (!is_array($config)) {
            $config = [$config => $value];
        }

        foreach ($config as $name => $value) {
            static::$_values = static::insert(static::$_values, $name, $value);
        }

        return true;
    }

}

Je bloque totalement sur comment ajouter les données dans le tableau $_values, bien sur j'ai essayé de comprendre le code de cakephp mais leur fonction servent à plein de chose et du coup j'arrive pas à cerner comment faire simplement
Donc si quelqu'un aurait une piste ou m'explique comment faire ça serait cool :D

Cordialement