Skip to content
Permalink
Browse files

Adds default value parameter to the env() function.

  • Loading branch information...
michaelze committed Sep 19, 2015
1 parent ff3fe14 commit f3f716eda66c839b1a96d7fa39dc081ae0165c60
Showing with 53 additions and 2 deletions.
  1. +3 −2 src/Core/functions.php
  2. +50 −0 tests/TestCase/Core/FunctionsTest.php
@@ -176,10 +176,11 @@ function pj($var)
* environment information.
*
* @param string $key Environment variable name.
* @param string $default Specify a default value in case the environment variable is not defined.
* @return string|null Environment variable setting.
* @link http://book.cakephp.org/3.0/en/core-libraries/global-constants-and-functions.html#env
*/
function env($key)
function env($key, $default = null)
{
if ($key === 'HTTPS') {
if (isset($_SERVER['HTTPS'])) {
@@ -228,7 +229,7 @@ function env($key)
case 'CGI_MODE':
return (PHP_SAPI === 'cgi');
}
return null;
return $default;
}
}
@@ -0,0 +1,50 @@
<?php
/**
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @since 3.0.0
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
namespace Cake\Test\TestCase\Core;
use Cake\TestSuite\TestCase;
/**
* Test cases for functions in Core\functions.php
*/
class FunctionsTest extends TestCase
{
/**
* Test cases for env()
*/
public function testEnv()
{
$_ENV['DOES_NOT_EXIST'] = null;
$actual = env('DOES_NOT_EXIST');
$this->assertNull($actual);
$actual = env('DOES_NOT_EXIST', 'default');
$this->assertEquals('default', $actual);
$_ENV['DOES_EXIST'] = 'some value';
$actual = env('DOES_EXIST');
$this->assertEquals('some value', $actual);
$actual = env('DOES_EXIST', 'default');
$this->assertEquals('some value', $actual);
$_ENV['EMPTY_VALUE'] = '';
$actual = env('EMPTY_VALUE');
$this->assertEquals('', $actual);
$actuaal = env('EMPTY_VALUE', 'default');
$this->assertEquals('', $actual);
$_ENV['ZERO'] = '0';
$actual = env('ZERO');
$this->assertEquals('0', $actual);
$actual = env('ZERO', '1');
$this->assertEquals('0', $actual);
}
}

0 comments on commit f3f716e

Please sign in to comment.
You can’t perform that action at this time.