2017-01-06 56 views
0

我正在使用作曲家的post-update-cmd與Laravel。我的代碼是用PHP 7編寫的,我認爲composer的腳本調用運行的是舊版本,因爲我在執行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解析錯誤:語法錯誤,意外':',期待';'或'{''這是由於返回類型的結腸'公共函數getIsPublishedAttribute():bool'返回類型只支持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!

2

我正在接受一個類似的錯誤(我的特定錯誤是與最終腳本,@php人員優化)

作曲已經使用PHP 7.1正確。運行作曲家selfupdate修復了這個錯誤。

0

首先檢查你的php的版本。

通過輸入這個命令來命令提示符(CMD):php -v

如果它顯示錯誤的版本有衝突發生。 php --ini

提示將告訴你現在所在的文件是來自:

通過尋找你的PHP(CMD)的源找到衝突的程序。 然後,您可以卸載託管舊的php文件的應用程序。然後你的系統應該自動使用更新的php。

+0

傾向於使用代碼樣式來獲得提示命令 –