我有这样的代码:
$fm = $app['assetic.filter_manager'];
$app['assetic.filter_manager'] = $app->share(
$app->extend('assetic.filter_manager', function($fm, $app) {
$fm->set('yui_css', new Assetic\Filter\Yui\CssCompressorFilter(
'/usr/share/yui-compressor/yui-compressor.jar'
));
$fm->set('yui_js', new Assetic\Filter\Yui\JsCompressorFilter(
'/usr/share/yui-compressor/yui-compressor.jar'
));
return $fm;
})
);
$app['assetic.asset_manager'] = $app->share(
$app->extend('assetic.asset_manager', function($am, $app) {
$am->set('styles', new Assetic\Asset\AssetCache(
new Assetic\Asset\GlobAsset(
__DIR__ . '/assetic/resources/css/*.css',
//this below is the line 50.
array($fm->get('yui_css'))
),
new Assetic\Cache\FilesystemCache(__DIR__ . '/assetic/cache')
));
$am->get('styles')->setTargetPath('css/styles');
return $am;
})
);我得到了一个错误:
注意:第50行index.php中的未定义变量: fm
如果我已经定义了变量$fm,为什么要得到这个错误?
发布于 2013-04-26 23:09:39
试试这个:
$app->extend('assetic.asset_manager', function($am, $app) use ($fm) {发布于 2013-04-26 23:10:49
如果该顺序是正确的,则声明它并将其设置为一个未定义的值(直到下一行才设置$app['assetic.filter_manager'])。
在分配之后设置$fm。
$app['assetic.filter_manager'] = $app->share(
$app->extend('assetic.filter_manager', function($fm, $app) {
$fm->set('yui_css', new Assetic\Filter\Yui\CssCompressorFilter(
'/usr/share/yui-compressor/yui-compressor.jar'
));
$fm->set('yui_js', new Assetic\Filter\Yui\JsCompressorFilter(
'/usr/share/yui-compressor/yui-compressor.jar'
));
return $fm;
})
);
$fm = $app['assetic.filter_manager'];https://stackoverflow.com/questions/16246477
复制相似问题