如何从框架

时间:2016-11-20 02:16:57

标签: php symfony pear pecl

我正在使用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扩展?

2 个答案:

答案 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');
}