/** * @param AbstractResourceFile $resource the next task to find matching the target resource. * @return RenderFixTask False if no matching task. */ public function next(AbstractResourceFile $resource) { foreach ($this->queue as $key => $task) { if ($task->getResource()->getMemberId() === $resource->getMemberId()) { unset($this->queue[$key]); return $task; } } return FALSE; }
public function buildCache(AbstractResourceFile $resource) { $this->getParentProject()->getCacheManager()->registerDirectory($resource->getFile()->getAbsoluteFile()->getParentFile()); $cache_dir = $this->getParentProject()->getCacheManager()->searchCacheDir($resource->getFile()->getAbsoluteFile()->getParentFile()); if (\is_null($cache_dir) || $cache_dir->isFile()) { throw new CacheBuildFileException("[" . $this->getParentProject()->getProjectName() . "]Cache Build Failed: " . $resource->getFile()->getAbsolutePath()); } if (!$cache_dir->exists()) { $cache_dir->mkdirs(); } $cache_file = new File(substr($resource->getFile()->getName(), 0, -5), $cache_dir->getAbsolutePath()); \file_put_contents($cache_file->getAbsolutePath(), $this->compile($resource)); $this->getParentProject()->getCacheManager()->registerCache($resource, $cache_file); }