2014-09-01 2 views
0

Я создаю приложение, и у меня есть константа, называемая ENVIRONMENT_SETTING. Поскольку я в настоящее время разрабатываю приложение, у меня есть define('ENVIRONMENT_SETTING', 'dev');Лучший способ проверить настройку среды приложения?

Затем я проверяю в верхней части файла, что это такое. Я сейчас делаю if заявления так:

if (defined('ENVIRONMENT_SETTING')) 
{ 
    if (ENVIRONMENT_SETTING == 'dev') 
    { 
     error_reporting(E_ALL); 
    } 
    elseif (ENVIRONMENT_SETTING == 'test' || ENVIRONMENT_SETTING == 'prod') 
    { 
     error_reporting(0); 
    } 
} 
else 
{ 
    die('Environment setting not set.'); 
} 

Это мне, хотя кажется, что слишком много кода для такой простой проверки. Есть лучший способ сделать это?

+0

Вы имеете в виду, что лучше = короче (или короче = лучше) код? – Sugar

+0

@ ClémentMalet Да, я знаю. – user3481788

+1

Можно ли определить константу? Я предполагаю, что вы можете пропустить внешний блок. Однако я не вижу никакой пользы для сокращения длины кода, то, что у вас есть, понятно – Steve

ответ

2

Ну, я лично использовал бы оператор switch. Это гораздо более сжато. В вашем случае я бы сделал следующее:

defined('ENVIRONMENT_SETTING') ? NULL : define('ENVIRONMENT_SETTING', 'dev'); 
if (defined('ENVIRONMENT_SETTING')) 
{ 
    switch (ENVIRONMENT_SETTING) 
    { 
     case 'dev': 
      error_reporting(E_ALL); 

     break; 

     case 'test': 
     case 'prod': 
      error_reporting(0); 

     break; 

     default: 
      exit('Environment setting not set.'); 
    } 
} 
0

Если вы хотите сохранить свою die() часть, я считаю эту форму, как легче быстро увидеть, в каких условиях ваш скрипт закончится/DIE:

if (defined('ENVIRONMENT_SETTING') || die('Environment setting not set.')) { 
    if (ENVIRONMENT_SETTING == 'dev') 
    error_reporting(E_ALL); 
    elseif (ENVIRONMENT_SETTING == 'test' || ENVIRONMENT_SETTING == 'prod') 
    error_reporting(0); 
}