Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. PhpConfig.php

class PhpConfig

@author John Stevenson <john-stevenson@blueyonder.co.uk>

@phpstan-type restartData array{tmpIni: string, scannedInis: bool, scanDir: false|string, phprc: false|string, inis: string[], skipped: string}

Hierarchy

  • class \Composer\XdebugHandler\PhpConfig

Expanded class hierarchy of PhpConfig

File

vendor/composer/xdebug-handler/src/PhpConfig.php, line 21

Namespace

Composer\XdebugHandler
View source
class PhpConfig {
    
    /**
     * Use the original PHP configuration
     *
     * @return string[] Empty array of PHP cli options
     */
    public function useOriginal() : array {
        $this->getDataAndReset();
        return [];
    }
    
    /**
     * Use standard restart settings
     *
     * @return string[] PHP cli options
     */
    public function useStandard() : array {
        $data = $this->getDataAndReset();
        if ($data !== null) {
            return [
                '-n',
                '-c',
                $data['tmpIni'],
            ];
        }
        return [];
    }
    
    /**
     * Use environment variables to persist settings
     *
     * @return string[] Empty array of PHP cli options
     */
    public function usePersistent() : array {
        $data = $this->getDataAndReset();
        if ($data !== null) {
            $this->updateEnv('PHPRC', $data['tmpIni']);
            $this->updateEnv('PHP_INI_SCAN_DIR', '');
        }
        return [];
    }
    
    /**
     * Returns restart data if available and resets the environment
     *
     * @phpstan-return restartData|null
     */
    private function getDataAndReset() : ?array {
        $data = XdebugHandler::getRestartSettings();
        if ($data !== null) {
            $this->updateEnv('PHPRC', $data['phprc']);
            $this->updateEnv('PHP_INI_SCAN_DIR', $data['scanDir']);
        }
        return $data;
    }
    
    /**
     * Updates a restart settings value in the environment
     *
     * @param string $name
     * @param string|false $value
     */
    private function updateEnv(string $name, $value) : void {
        Process::setEnv($name, false !== $value ? $value : null);
    }

}

Members

Title Sort descending Modifiers Object type Summary
PhpConfig::getDataAndReset private function Returns restart data if available and resets the environment
PhpConfig::updateEnv private function Updates a restart settings value in the environment
PhpConfig::useOriginal public function Use the original PHP configuration
PhpConfig::usePersistent public function Use environment variables to persist settings
PhpConfig::useStandard public function Use standard restart settings
RSS feed
Powered by Drupal