Merge pull request #6015 from johnstevenson/xdebug-ini
Ignore xdebug.ini and process all files, #5995pull/6023/head
commit
476682f207
|
@ -136,9 +136,13 @@ class XdebugHandler
|
||||||
{
|
{
|
||||||
$this->tmpIni = '';
|
$this->tmpIni = '';
|
||||||
$iniPaths = IniHelper::getAll();
|
$iniPaths = IniHelper::getAll();
|
||||||
$files = $this->getWorkingSet($iniPaths, $replace);
|
|
||||||
|
|
||||||
if ($this->writeTmpIni($files, $replace)) {
|
if (empty($iniPaths[0])) {
|
||||||
|
// There is no loaded ini
|
||||||
|
array_shift($iniPaths);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->writeTmpIni($iniPaths)) {
|
||||||
return $this->setEnvironment($iniPaths);
|
return $this->setEnvironment($iniPaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,24 +155,21 @@ class XdebugHandler
|
||||||
* The filename is passed as the -c option when the process restarts.
|
* The filename is passed as the -c option when the process restarts.
|
||||||
*
|
*
|
||||||
* @param array $iniFiles The php.ini locations
|
* @param array $iniFiles The php.ini locations
|
||||||
* @param bool $replace Whether the files need modifying
|
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
private function writeTmpIni(array $iniFiles, $replace)
|
private function writeTmpIni(array $iniFiles)
|
||||||
{
|
{
|
||||||
if (empty($iniFiles)) {
|
|
||||||
// Unlikely, maybe xdebug was loaded through a command line option.
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$this->tmpIni = tempnam(sys_get_temp_dir(), '')) {
|
if (!$this->tmpIni = tempnam(sys_get_temp_dir(), '')) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$content = '';
|
$content = '';
|
||||||
|
$regex = '/^\s*(zend_extension\s*=.*xdebug.*)$/mi';
|
||||||
|
|
||||||
foreach ($iniFiles as $file) {
|
foreach ($iniFiles as $file) {
|
||||||
$content .= $this->getIniData($file, $replace);
|
$data = preg_replace($regex, ';$1', file_get_contents($file));
|
||||||
|
$content .= $data.PHP_EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
$content .= PHP_EOL.'memory_limit='.ini_get('memory_limit').PHP_EOL;
|
$content .= PHP_EOL.'memory_limit='.ini_get('memory_limit').PHP_EOL;
|
||||||
|
@ -176,60 +177,6 @@ class XdebugHandler
|
||||||
return @file_put_contents($this->tmpIni, $content);
|
return @file_put_contents($this->tmpIni, $content);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an array of ini files to use
|
|
||||||
*
|
|
||||||
* @param array $iniPaths Locations used by the current prcoess
|
|
||||||
* @param null|bool $replace Whether the files need modifying, set by method
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function getWorkingSet(array $iniPaths, &$replace)
|
|
||||||
{
|
|
||||||
$replace = true;
|
|
||||||
$result = array();
|
|
||||||
|
|
||||||
if (empty($iniPaths[0])) {
|
|
||||||
// There is no loaded ini
|
|
||||||
array_shift($iniPaths);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($iniPaths as $file) {
|
|
||||||
if (preg_match('/xdebug.ini$/', $file)) {
|
|
||||||
// Skip the file, no need for regex replacing
|
|
||||||
$replace = false;
|
|
||||||
} else {
|
|
||||||
$result[] = $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns formatted ini file data
|
|
||||||
*
|
|
||||||
* @param string $iniFile The location of the ini file
|
|
||||||
* @param bool $replace Whether to regex replace content
|
|
||||||
*
|
|
||||||
* @return string The ini data
|
|
||||||
*/
|
|
||||||
private function getIniData($iniFile, $replace)
|
|
||||||
{
|
|
||||||
$contents = file_get_contents($iniFile);
|
|
||||||
$data = PHP_EOL;
|
|
||||||
|
|
||||||
if ($replace) {
|
|
||||||
// Comment out xdebug config
|
|
||||||
$regex = '/^\s*(zend_extension\s*=.*xdebug.*)$/mi';
|
|
||||||
$data .= preg_replace($regex, ';$1', $contents);
|
|
||||||
} else {
|
|
||||||
$data .= $contents;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the restart command line
|
* Returns the restart command line
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue