2016-11-20 7 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 (웹 서버)에서는 활성화되지 않을 가능성이 있습니다. 따라서 적절한 php.ini 파일에서 trader 모듈을 활성화해야합니다.

+0

나는 cgi와 명령 행에서 두 개의 phpini()를 비교했다. phpinfo 명령 줄에 trader라는 테이블이 있습니다. 'trader' '상인 기술적 분석 라이브러리 지원 => enabled' '버전 => 0.4.0' 'TA-lib 디렉토리 버전 => 0.4.0 (2016년 11월 18일 11시 24분 8초)' 그러나 cgi의 phpinfo에는 상인에 관한 테이블이 없습니다. 그러나 두 환경 모두에서 동일한 php.ini'/ usr/local/php5/lib/php.ini'를 사용하고 있음을 확인했습니다. 어떻게 해결할 수 있습니까 ?? – whitebear

+0

이제는 문제를 요약 할 수 있다고 생각합니다. ** PECL 확장은 cgi **에서 가능하지 않습니다. – whitebear

+0

AH ,,,,,, 나는 아파치를 다시 시작하고 그것이 작동한다는 것을 알게되었다. 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