为什么安装 php53-mcrypt 会破坏我的作曲家和 laravel?

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

我是 laravel 和 php 的新手,我只是想设置我的开发环境。

我对使用 octobercms 很感兴趣,安装它一点也不简单。我通过键入

尝试了控制台安装
composer create-project october/october myoctober dev-master

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

homebrew/php/php53-mcrypt

我用 brew 安装了它。现在,laravel 和我的作曲家将无法工作。每次我写任何类型的作曲家命令时,我都会得到这个:

??+?% returned

google 上似乎没有人遇到这个问题,每次我在终端中编写和 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 版本有误。在 functions.php of guzzle 的第 41 行,它说:

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

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

As of PHP 5.4 you can also use the short array syntax, which replaces array() with [].

由于您使用的是 MacOS,为了获得更新版本的 PHP,请通过以下方式安装更新版本:

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

Source