我在Laravel中使用作曲家的post-update-cmd
。我的代码是用PHP 7编写的,我认为composer的脚本调用运行的是旧版本,因为我在执行php artisan ide-helper:generate
时遇到语法错误。在终端中手动运行命令不会触发任何错误。
如何指定或配置composer的php以使用特定的php路径?使用@php,由于路径无效,似乎不像“工匠”那样工作:
您引用了一个不存在的脚本@php artisan IDE-助手:生成
这是我的composer.json:
...
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan ide-helper:generate",
"php artisan ide-helper:meta",
"php artisan optimize"
]
...
答案 0 :(得分:2)
我收到了类似的错误(我的特定错误是最终脚本,@ php artisan optimize)
Composer已经正确使用PHP 7.1。运行composer selfupdate修复了这个错误。
答案 1 :(得分:0)
因此,即使我的〜/ .bash_profile将php指向新版本,作曲家也会以某种方式运行旧的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 :(得分:0)
首先检查你的php版本。
将此命令输入命令提示符(cmd):php -v
如果显示错误版本,则会发生冲突。
通过查找php(cmd)的来源找到有冲突的应用:php --ini
现在提示符将告诉您文件的来源。 然后,您可以卸载托管旧php文件的应用程序。然后你的系统应该自动使用更新的php。