Php Laravel 4 Mcrypt在CLI
我正试图将Php Laravel 4 Mcrypt在CLI,php,laravel,command-line-interface,mcrypt,Php,Laravel,Command Line Interface,Mcrypt,我正试图将phpunit用于Laravel4,但我遇到了Mcrypt问题 在vendor/laravel/framework/src/illumb/Foundation/start.php第29行,laravel检查是否启用了mcrypt if ( ! extension_loaded('mcrypt')) { die('Laravel requires the Mcrypt PHP extension.'.PHP_EOL); exit(1); } 当Iphpunitat C
phpunit
用于Laravel4,但我遇到了Mcrypt问题
在vendor/laravel/framework/src/illumb/Foundation/start.php
第29行,laravel检查是否启用了mcrypt
if ( ! extension_loaded('mcrypt'))
{
die('Laravel requires the Mcrypt PHP extension.'.PHP_EOL);
exit(1);
}
当Iphpunit
at 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/illumb/Foundation/start.php添加以下代码以查看所使用的php版本时,CLI显示5.3.15
die(phpversion().PHP_EOL);
我不知道这怎么可能
添加上述代码后php artisan
显示5.4.4,但phpunit
显示5.3.15。这几乎是不可能的,因为两者都使用vendor/laravel/framework/src/illumb/Foundation/start.php
检查Mcrypt是否已启用
我不确定,但是当Laravel在测试环境中时,它会改变什么吗?我的mac上有两个版本的php(一个是现成的,另一个是macport的)出现了同样的问题。
因此,在使用命令行时,调用的php版本取决于bin路径顺序(echo$path)
如果您查看hashbang:
- 工匠从#开始/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)
希望能有所帮助,我的mac电脑上有两个版本的php(一个是现成的,另一个是macport)。
因此,在使用命令行时,调用的php版本取决于bin路径顺序(echo$path)
如果您查看hashbang:
- 工匠从#开始/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)
希望有帮助,我的想法是一样的,但是vendor/phpunit/phpunit/phpunit.php
和vendor/bin/phpunit
都以开头/usr/bin/env php
,就像artisan一样。我通过Composer安装了PHPUnit,这有什么不同吗?它成功了。不久前,我通过Pear安装了PHPUnit,终端仍在使用该PHPUnit。我更新了我的~/.bash\u配置文件
,现在可以使用了。非常感谢。vendor/phpunit/phpunit/phpunit.php和vendor/bin/phpunit可能不在您的路径中,但/usr/bin/phpunit在您的路径中。;)我的想法是一样的,但是vendor/phpunit/phpunit/phpunit.php
和vendor/bin/phpunit
都以开头/usr/bin/env php
,就像artisan一样。我通过Composer安装了PHPUnit,这有什么不同吗?它成功了。不久前,我通过Pear安装了PHPUnit,终端仍在使用该PHPUnit。我更新了我的~/.bash\u配置文件
,现在可以使用了。非常感谢。vendor/phpunit/phpunit/phpunit.php和vendor/bin/phpunit可能不在您的路径中,但/usr/bin/phpunit在您的路径中。;)