2016-11-20 8 views
1

の内側に、私はそれがどのinstalltionなし./src/MyBundle/Command/MyCommand.php内部で動作または含まPECL拡張traderは、どのようにフレームワーク

を使用していますから、PECL拡張モジュールを使用します。私はPECL拡張モジュールを使用することができますどのようにこの

Fatal error: Call to undefined function TopBundle\MyController\trader_ma()

のようなコントローラ内部が

function calcByCode() 
    \trader_ma($array, 5, TRADER_MA_TYPE_EMA); 
} 

./src/MyBundle/Controller/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'); 
} 

リターンエラーSymfony2フレームワークのcondrollerの内側に??

+0

ポストにあなたは私も記事を変更trader_ma' – Machavity

+0

'呼び出すフィルコードを見て、それを言ってみてください。 – whitebear

答えて

1

拡張機能が正しくインストールされていない場合がほとんどです。拡張機能が正しくインストールされているかどうかを確認するには、cliとweb(cgi/fpm)の両方にphpinfoを使用してください。

拡張子がPHP CLIのphp.iniのみで有効になり、fpm/cgi(Webサーバー)では有効にならない可能性があります。したがって、適切なphp.iniファイルでトレーダー・モジュールを有効にしてください。

+0

私はcgiとコマンドラインから2つのphpini()を比較しました。 phpinfoコマンドラインにtraderという名前のテーブルがあることがわかりました。 'trader' 'トレーダーのテクニカル分析ライブラリのサポート=> enabled' 'バージョン=> 0.4.0' ' TA-Libのバージョン=> 0.4.0(2016年11月18日午前11時24分08秒) ' しかし、cgiのphpinfoにはトレーダーに関するテーブルはありません。 しかし私は両方の環境で同じphp.ini '/ usr/local/php5/lib/php.ini'を使用していることを確認しました。 これはどのように修正できますか? – whitebear

+0

それでは、私は自分の問題をまとめることができると思う、** PECL拡張はcgi **では有効になっていない。 – whitebear

+0

AH ,,,,,私は、Apacheを再起動し、それが動作することを発見した..非常にVamsiありがとうございます。 – whitebear

1

あなたのクラスの名前空間内の関数を探しているようです。それはバニラの機能で動作するので、それはそれを確認するようです。

undefined function TopBundle\MyController\trader_ma()

私は非常に単純に `trader_ma`を使用して、名前空間のルート

public function indexAction() 
{ 
    \trader_ma($array, 5, TRADER_MA_TYPE_EMA); 
    return $this->render('AcmeTopBundle:Default:index.html.twig'); 
} 
+0

私は '\ trader_ma'を試しましたが、動作しません。あなたが言ったように、\ DataTimeのようないくつかのクラスはうまく動作します。しかし、この場合、そうではありません。 – whitebear

+0

エラーメッセージは次のようなものです。グローバル名前空間からtrader_ma "関数を呼び出そうとしました。" – whitebear

+0

私はこの問題を解決しました。大変ありがとうございます!あなたは答えはまた私にとって良いヒントです。 – whitebear

関連する問題