2017-03-28 1 views
2

J'ai un CakePHP 3.3.14 application où j'ai créé 2 sous-répertoires, webroot/data/downloads/ et webroot/data/masterfichiers de configuration personnalisés dans CakePHP 3

Je veux mettre ces chemins dans un fichier de configuration personnalisée et les référencer dans un contrôleur. Mais je ne vois pas comment faire ça.

J'ai suivi le documentation on Configuration mais ce n'est pas très clair.

Alors ce que je l'ai fait:

  • Création config/my_config.php
  • Le fichier ci-dessus définit un tableau:

    return [ 'downloadsPath' => 'webroot/data/downloads/', 'masterPath' => 'webroot/data/master/' ]; 
    
  • Dans J'ai mis: Configure::load('my_config', 'default');

Comment puis-je l'utiliser dans un contrôleur? Si je mets Configure::read('my_config.masterPath'); donne une erreur disant: Class « App \ Controller \ Configurer » introuvable

Si j'ajoute use Cake\Core\Configure; au sommet de mon contrôleur, qui efface l'erreur, mais la valeur de retour est null:

debug(Configure::read('my_config.masterPath')); // null 
+0

Qu'est-ce exactement n'est pas clair sur cette section qui contient même des exemples? https://book.cakephp.org/3.0/en/development/configuration.html#loading-configuration-files – burzum

+0

Eh bien, si vous faites référence à ce que j'ai écrit plus haut avec ce qui est écrit ici, il est difficile de savoir où Je me trompe à mon avis. C'est pourquoi j'ai posté la question ... – Andy

+1

Votre appel en lecture est tout simplement faux. "my_config.masterPath" aucune idée d'où vous avez l'idée que vous devez mettre le nom du fichier en face. 'masterPath' devrait fonctionner. – burzum

Répondre

4

Chargement d'un autre fichier de configuration étend simplement la valeur par défaut App.config. Il suffit donc d'utiliser \Cake\Core\Configure::read('masterPath') et vous êtes bon.

EDIT

Si elle est votre objectif d'avoir différents chemins que vous pourriez le faire comme cette config:

// my_config.php 
return [ 
    'MyConfig' => [ 
     'masterPath' => '...', 
     ... 
    ] 
] 

Ensuite, utilisez la configuration comme ceci:

<?= \Cake\Core\Configure::read('MyConfig.masterPath') ?>