public function compileScriptWithExpression($expression, $socketAddress, &$scriptPath, &$mustDeleteScriptOnError)
    {
        $scriptPath = $this->getPrecompiledScriptWithExpression($expression, $socketAddress);
        if ($scriptPath === null) {
            $mustDeleteScriptOnError = true;
            $scriptPath = tempnam(sys_get_temp_dir(), 'xsW');
            file_put_contents($scriptPath, $this->generateScriptWithExpression($expression, $socketAddress));
        } else {
            $mustDeleteScriptOnError = false;
            if (!file_exists($scriptPath)) {
                $scriptDir = dirname($scriptPath);
                if (!is_dir($scriptDir)) {
                    mkdir($scriptDir, 0777, true);
                }
                file_put_contents($scriptPath, $this->generateScriptWithExpression($expression, $socketAddress));
            }
        }

        return $this;
    }
public function compileScriptWithExpression($expression, $socketAddress, &$scriptPath, &$mustDeleteScriptOnError)
    {
        $scriptPath = $this->getPrecompiledScriptWithExpression($expression, $socketAddress);
        if ($scriptPath === null) {
            $mustDeleteScriptOnError = true;
            $scriptPath = tempnam(sys_get_temp_dir(), 'xsW');
            file_put_contents($scriptPath, $this->generateScriptWithExpression($expression, $socketAddress));
        } else {
            $mustDeleteScriptOnError = false;
            if (!file_exists($scriptPath)) {
                $scriptDir = dirname($scriptPath);
                if (!is_dir($scriptDir)) {
                    mkdir($scriptDir, 0777, true);
                }
                file_put_contents($scriptPath, $this->generateScriptWithExpression($expression, $socketAddress));
            }
        }

        return $this;
    }
@param string      $expression
@param string|null $socketAddress
@param string      $scriptPath
@param bool        $mustDeleteScriptOnError

@return $this