答案是您永远不会在生产服务器上显示 PHP 错误。您应该只在您的实时服务器上显示它们。
因此,当您测试和构建应用程序时,错误出现在哪里并不重要。
但是在您的实时服务器上,您需要隐藏 php 错误,同时仍在记录。Codeignitier 提供了这种能力。
首先,在您的 index.php 更改
define('ENVIRONMENT', 'development');
到
if ($_SERVER['SERVER_NAME'] == 'localhost')
{
define('ENVIRONMENT', 'development');
}
else
{
define('ENVIRONMENT', 'production');
}
当您在本地主机上时,这将自动设置开发模式,并在部署时自动设置生产模式(即没有代码更改)。
现在您根据需要配置一些东西:
inside Index.php also change the error reporting to:
if (defined('ENVIRONMENT'))
{
switch (ENVIRONMENT)
{
case 'development':
error_reporting(-1);
break;
case 'testing':
case 'production':
error_reporting(0);
break;
default:
exit('The application environment is not set correctly.');
}
}
Config.php
// Set logs to show Debug + Error messages on your development
// But only error messages on your production server
$config['log_threshold'] = (ENVIRONMENT == 'development' ? '2' : '1');
Database.php (config)
$active_record = TRUE;
$active_group = (ENVIRONMENT == 'development' ? 'localdev' : 'production');
// Now define the two different groups here, making sure production has:
$db['production']['db_debug'] = FALSE;