Leafo\ScssPhp\Server::needsCompile PHP Method

needsCompile() protected method

Determine whether .scss file needs to be re-compiled.
protected needsCompile ( string $out, string &$etag ) : boolean
$out string Output path
$etag string ETag
return boolean True if compile required.
    protected function needsCompile($out, &$etag)
    {
        if (!is_file($out)) {
            return true;
        }
        $mtime = filemtime($out);
        $metadataName = $this->metadataName($out);
        if (is_readable($metadataName)) {
            $metadata = unserialize(file_get_contents($metadataName));
            foreach ($metadata['imports'] as $import => $originalMtime) {
                $currentMtime = filemtime($import);
                if ($currentMtime !== $originalMtime || $currentMtime > $mtime) {
                    return true;
                }
            }
            $metaVars = crc32(serialize($this->scss->getVariables()));
            if ($metaVars !== $metadata['vars']) {
                return true;
            }
            $etag = $metadata['etag'];
            return false;
        }
        return true;
    }