为什么安装php53-mcrypt会破坏我的composer和laravel


Why did installing php53-mcrypt break my composer and laravel?

我对laravel和php非常陌生,我只是在尝试设置我的开发环境。

我对使用octopercms很感兴趣,安装它一点也不简单。我通过键入来尝试控制台安装

composer create-project october/october myoctober dev-master

它给出了一个错误,说mcrypt没有安装,所以我认为这是我的下一步。在花了几个小时试图弄清楚如何安装后,我发现了这个

homebrew/php/php53-mcrypt

我把它安装好了。现在,拉拉威尔和我的作曲家不能工作了。每次我写任何一种composer命令时,我都会得到这样的命令:

??+?% returned

谷歌上似乎没有人有这个问题,每次我在终端中编写和laravel命令时,我都会收到这样的错误:

PHP Parse error:  syntax error, unexpected '[', expecting ')' in /Users/marika/.composer/vendor/guzzlehttp/promises/src/functions.php on line 41
Parse error: syntax error, unexpected '[', expecting ')' in /Users/marika/.composer/vendor/guzzlehttp/promises/src/functions.php on line 41

在我brew安装mcrypt之前,一切都正常,我试图卸载,但这只会给我更多的错误,所以我重新安装了,现在我不知道还能做什么。

您有错误的php版本。在guzzle的functions.php的第41行,上面写着:

    $promise = new Promise([$queue, 'run']);

这是短数组语法。您将需要php5.4来运行您的代码,正如文档所述:

从PHP 5.4开始,您还可以使用短数组语法,它将带有[]的array()。

当你在MacOS上时,为了获得最新版本的PHP,请通过安装新版本

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
brew install php56
brew unlink php53
brew link php56