0

Laravel 4 で使用しようとしていますphpunitが、Mcrypt の問題があります。

29 行目でvendor/laravel/framework/src/Illuminate/Foundation/start.php、Laravel は が有効になっているかどうかを確認しますmcrypt

if ( ! extension_loaded('mcrypt'))
{
    die('Laravel requires the Mcrypt PHP extension.'.PHP_EOL);

    exit(1);
}

phpunitがCLIにいるとき、それは言います;

Laravel requires the Mcrypt PHP extension.

次のコマンドはすべてが正常であることを示しているため、これは不可能です。

$ php -v
PHP 5.4.4 (cli)

$ php --ini
Loaded Configuration File: /Applications/MAMP/bin/php/php5.4.4/conf/php.ini

$ php -i | grep "mcrypt support"
mcrypt support => enabled

しかし...次のコードを追加しvendor/laravel/framework/src/Illuminate/Foundation/start.phpて、使用されているPHPバージョンを確認すると、CLIが表示されます5.3.15

die(phpversion().PHP_EOL);

どうすればこれが可能になるのかわかりません。

上記のコードを追加した後; php artisan5.4.4 と表示されますが、phpunit5.3.15 と表示されます。vendor/laravel/framework/src/Illuminate/Foundation/start.phpどちらも Mcrypt が有効になっているかどうかを確認するために使用されるため、これはほぼ不可能です。

よくわかりませんが、Laravelはtesting環境にあるときに何かを変更しますか?

4

1 に答える 1

5

私のMacでも2つのバージョンのphp(箱から出てきたものとmacportからのもの)で同じ問題がありました。そのため、コマンド ラインを使用する場合、呼び出す PHP バージョンは、bin パスの順序 (echo $PATH) に依存します。

ハッシュバングを見ると:

  • 職人は #!/usr/bin/env php で開始します
  • phpunit は #!/usr/bin/php で始まります

    $/usr/bin/env php -v
    PHP 5.3.25 (cli) (built: Jun  5 2013 12:14:23)
    
    $/usr/bin/php -v
    PHP 5.3.15 with Suhosin-Patch (cli) (built: Aug 28 2012 18:19:13)
    

それが役に立てば幸い、

于 2013-06-09T10:27:27.137 に答える