Dieser Commit ist enthalten in:
Ursprung
2b21070b1a
Commit
f7a7c71f86
1583 geänderte Dateien mit 454759 neuen und 0 gelöschten Zeilen
136
library/Msd/ConfigurationPhpValues.php
Normale Datei
136
library/Msd/ConfigurationPhpValues.php
Normale Datei
|
|
@ -0,0 +1,136 @@
|
|||
<?php
|
||||
/**
|
||||
* This file is part of MySQLDumper released under the GNU/GPL 2 license
|
||||
* http://www.mysqldumper.net
|
||||
*
|
||||
* @package MySQLDumper
|
||||
* @subpackage Configuration
|
||||
* @version SVN: $Rev$
|
||||
* @author $Author$
|
||||
*/
|
||||
/**
|
||||
* Helper for getting dynamic configuration values like phpRam etc.
|
||||
*
|
||||
* @package MySQLDumper
|
||||
* @subpackage Configuration
|
||||
*/
|
||||
class Msd_ConfigurationPhpValues
|
||||
{
|
||||
/**
|
||||
* Read dynamic PHP config values
|
||||
*
|
||||
* @return Zend_Config
|
||||
*/
|
||||
public static function getDynamicValues ()
|
||||
{
|
||||
$phpRam = self::_getPhpRam();
|
||||
$dynConfig = array(
|
||||
'sendmailCall' => self::_getConfigSetting('sendmail_path'),
|
||||
'safeMode' => self::_getConfigSetting('safe_mode', true),
|
||||
'magicQuotesGpc' => get_magic_quotes_gpc(),
|
||||
'disabledPhpFunctions' =>
|
||||
str_replace(
|
||||
',',
|
||||
', ',
|
||||
self::_getConfigSetting('disable_functions')
|
||||
),
|
||||
'maxExecutionTime' => self::_getMaxExecutionTime(),
|
||||
'uploadMaxFilesize' => self::_getUploadMaxFilesize(),
|
||||
'phpextensions' => implode(', ', get_loaded_extensions()),
|
||||
'phpRam' => $phpRam,
|
||||
'memoryLimit' => round($phpRam * 1024 * 1024 * 0.9, 0),
|
||||
'compression' => self::_hasZlib(),
|
||||
);
|
||||
return new Zend_Config($dynConfig, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Read PHP's max_execution_time
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
private static function _getMaxExecutionTime()
|
||||
{
|
||||
$maxExecutionTime =
|
||||
self::_getConfigSetting('max_execution_time', true);
|
||||
if ($maxExecutionTime <= 5) {
|
||||
// we didn't get the real value from the server - some deliver "-1"
|
||||
$maxExecutionTime = 30;
|
||||
} elseif ($maxExecutionTime > 30) {
|
||||
// we don't use more than 30 seconds to avoid brower timeouts
|
||||
$maxExecutionTime = 30;
|
||||
}
|
||||
return $maxExecutionTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get PHP's upload_max_filesize
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
private static function _getUploadMaxFilesize()
|
||||
{
|
||||
$uploadMaxFilesize = self::_getConfigSetting('upload_max_filesize');
|
||||
// Is value in Megabytes? If yes create output
|
||||
if (strpos($uploadMaxFilesize, 'M')) {
|
||||
$uploadMaxFilesize = str_replace('M', '', $uploadMaxFilesize);
|
||||
$uploadMaxFilesize = trim($uploadMaxFilesize);
|
||||
// re-calculate to Bytes
|
||||
$uploadMaxFilesize *= 1024 * 1024;
|
||||
}
|
||||
return (int) $uploadMaxFilesize;;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get PHP's ram size
|
||||
*
|
||||
* @return integer The memory limit in MB
|
||||
*/
|
||||
private static function _getPhpRam()
|
||||
{
|
||||
$ram = self::_getConfigSetting('memory_limit');
|
||||
// we don't trust the value delivered by server config if < 16
|
||||
if ($ram < 16) {
|
||||
$ram = 16;
|
||||
}
|
||||
return $ram;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect if zlib is installed
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
private static function _hasZlib()
|
||||
{
|
||||
$zlib = false;
|
||||
$extensions = get_loaded_extensions();
|
||||
if (in_array('zlib', $extensions)) {
|
||||
$zlib = true;
|
||||
};
|
||||
return (boolean) $zlib;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a PHP-Setting from ini
|
||||
*
|
||||
* First try to read via ini_get(), then fall back to get_cfg_var()
|
||||
*
|
||||
* @param string $varName The name of the setting to read
|
||||
* @param boolean $returnAsInt Whether to return value as integer
|
||||
*/
|
||||
private function _getConfigSetting($varName, $returnAsInt = false)
|
||||
{
|
||||
$value = @ini_get($varName);
|
||||
|
||||
// fallback if ini_get doesn't work
|
||||
if ($value == '' || $value === null) {
|
||||
$value = @get_cfg_var($varName);
|
||||
}
|
||||
|
||||
if ($returnAsInt) {
|
||||
$value = (int) $value;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
Laden …
Tabelle hinzufügen
Einen Link hinzufügen
In neuem Issue referenzieren