2017-01-06 3 views
0

나는 작곡가의 post-update-cmd을 Laravel과 함께 사용하고 있습니다. 내 코드는 PHP 7로 작성되었으므로 실행시 구문 오류가 발생하기 때문에 작곡가의 스크립트 호출이 이전 버전을 실행하고 있다고 생각합니다. php artisan ide-helper:generate. 터미널에서 명령을 수동으로 실행해도 오류가 발생하지 않습니다.작곡가 PHP 스크립트가 구문 오류가있는 이전 PHP 버전을 실행 중입니까?

작곡가의 php에서 특정 php 경로를 사용하도록 지정하거나 구성하려면 어떻게합니까? @php를 사용하면 경로가 잘못되면서 "장인"으로 작동하지 않는 것 : 여기

You made a reference to a non-existent script @php artisan ide-helper:generate

내 composer.json입니다 :

... 
"post-update-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postUpdate", 
      "php artisan ide-helper:generate", 
      "php artisan ide-helper:meta", 
      "php artisan optimize" 
     ] 
... 
+2

정확한 오류를 게시 할 수 있습니까? – Aerendir

+0

'오류 출력 : PHP 구문 분석 오류 : 예기치 않은 구문 오류 ':', 예상 ';' 반환 형식은 PHP 7에서만 지원됩니다. –

+0

명령 줄로 이동하여'php -v'를 실행하면'php() '가 표시됩니다. cli' 버전. 나는 cli가'php7'이 아니라고 생각한다. –

답변

0

그래서 작곡가는 어떻게 든에도 불구하고 기존의 PHP를 실행하는 내 ~/.bash_profile은 PHP를 새 버전으로 지정합니다.

증명하기 위해 php -v을 실행하면 PHP 7이 표시됩니다. 반면 composer exec 'php -v'을 실행하면 php 5.6이 표시됩니다.

이렇게 며칠 동안 고생하고 나서 나는 결국 이것을 시도했습니다. 분명히 ~/.bash_profile의 순서가 중요합니다.

alias composer="php /usr/local/bin/composer.phar" 
export PATH=/Applications/MAMP/bin/php/php7.0.8/bin:$PATH 

:까지

export PATH=/Applications/MAMP/bin/php/php7.0.8/bin:$PATH 
alias composer="php /usr/local/bin/composer.phar" 

및 프로파일을 다시 source ~/.bash_profile

을 실행하여 지금 composer exec 'php -v'은 PHP 7을 도시

는 I이 변경!

2

나는 비슷한 오류를

작곡가가 이미 제대로 PHP 7.1을 사용하고 있었다 (내 특정 오류가 최종 스크립트, @php 장인 최적화로했다) 수신했습니다. 작곡가 selfupdate를 실행하면이 오류가 해결되었습니다.

0

먼저 PHP 버전을 확인하십시오. php -v

이 일어나는 충돌이 발생 잘못된 버전을 표시 인 경우 : 명령 프롬프트 (cmd를)이 명령을 입력하여

. 파일이 어디에서 오는 php --ini

프롬프트가 지금 당신을 말할 것이다 :

은 PHP (cmd를)의 소스를 찾는하여 충돌하는 응용 프로그램을 찾을 수 있습니다. 그런 다음 이전 PHP 파일을 호스팅하는 응용 프로그램을 제거 할 수 있습니다. 그런 다음 시스템이 자동으로 최신 PHP를 사용해야합니다.

+0

프롬프트 명령에 코드 스타일을 사용하는 것을 선호합니다. –