2014-01-24 45 views
4

你好我有作曲家的问题,当我自动加载我的配置文件。作曲者自动加载文件返回未定义变量

在我composer.json我创建

{ 
"require": {"monolog/monolog": "1.7.*@dev"}, 
"autoload":{ 
    "files": ["config/application.config.php"] 
    } 
} 

我想自动载入我的配置文件,并在我的test.php的文件,我把:

// Get composer autoloading 
require 'vendor/autoload.php'; 


use Monolog\Logger; 
use Monolog\Handler\StreamHandler; 
use Monolog\Handler\FirePHPHandler; 

$logger = new Logger('my_logger'); 
$logger->pushHandler(new StreamHandler(__DIR__.'/data/logs/log.log', Logger::DEBUG)); 
$logger->pushHandler(new FirePHPHandler()); 

$logger->addInfo('test message'); 

// test 
echo $config['logs_dir']; 

application.config .php文件包含

/* 
* Data paths 
*/ 
$config['cache_dir'] = 'data/cache'; 
$config['logs_dir'] = 'data/logs'; 

当我尝试在我的test.php中打印值 echo $ config ['logs_dir']时,我收到通知。文件是由作曲家成功的加载,但请注意什么,我得到

注意:未定义的变量:在d $配置:\ XAMPP \ htdocs中\ MCF3 \的index.php上线18

+0

一旦你更新了composer.json,你会运行'composer update'吗? – scalopus

+0

是啊什么时候做更改我做更新 – Ivan

回答

6

当作曲家包括通过文件require它是一个函数中这样做,并且这样做:

$config['cache_dir'] = 'data/cache'; 

不创造在全球范围内的变量。如果您希望能够读取/写入全局变量,则应明确使用$GLOBALS关键字。

$GLOBALS['config']['cache_dir'] = 'data/cache'; 
+0

谢谢。这工作 –