我正在使用PECL扩展程序trader
它在./src/MyBundle/Command/MyCommand.php内部无需任何安装或包含。
function calcByCode()
\trader_ma($array, 5, TRADER_MA_TYPE_EMA);
}
然而在控制器内
./ SRC / MyBundle /控制器/ MyController.php
public function indexAction()
{
\trader_ma($array, 5, TRADER_MA_TYPE_EMA);
//(or trader_ma($array, 5, TRADER_MA_TYPE_EMA);)
return $this->render('AcmeTopBundle:Default:index.html.twig');
}
像这样返回错误
致命错误:调用未定义的函数TopBundle \ MyController \ trader_ma()
如何在Symfony2框架的condroller中使用PECL扩展?
答案 0 :(得分:1)
这主要是扩展未正确安装的情况。要知道扩展程序是否正确安装,请对cli和web(cgi / fpm)使用phpinfo。
有可能仅在PHP CLI的php.ini中启用扩展,而对fpm / cgi(Web服务器)启用扩展。因此,请确保在相应的php.ini文件中启用交易者模块。
答案 1 :(得分:1)
它似乎在为您的类查找名称空间中的函数。由于它在一个vanilla函数中工作,这似乎证实了这一点。
未定义的函数TopBundle \ MyController \ trader_ma()
尝试告诉它查看命名空间根目录
public function indexAction()
{
\trader_ma($array, 5, TRADER_MA_TYPE_EMA);
return $this->render('AcmeTopBundle:Default:index.html.twig');
}