protected function readFile($filename, $uuid = null)
    {
        // Check for cache enabled ...
        if ($this->getCache() === true) {
            if ($uuid === null) {
                $uuid = md5($filename);
            }

            try {
                $content = $this->getCacheService()->read($uuid);

                if ($content !== null && $content != '') {
                    return $content;
                }
            } catch (Doozr_Cache_Service_Exception $e) {
                // Intentionally omitted
            }
        }

        // Fetch content from filesystem
        $content = $this->getFilesystem()->read($filename);

        // Check if caching enabled and store read result to cache
        if ($this->getCache() === true) {
            $this->getCacheService()->create($uuid, $content);
        }

        return $content;
    }