/** * Try to cache the callback result on disk * @param type $cacheFile * @param \Blend\Component\Cache\callable $callback * @return mixed */ private function withFile($cacheFile, callable $callback) { if ($this->filesystem->exists($cacheFile)) { return unserialize(file_get_contents($cacheFile)); } else { $result = call_user_func($callback); file_put_contents($cacheFile, serialize($result)); return $result; } }
/** * Create a new sub project * @param string $projectName * @param boolean $rebuild * @return string */ public static function createNewProject($projectName, $rebuild = false, $deleteServices = true) { $fs = new Filesystem(); $projectFolder = TEMP_DIR . '/TestProjects/' . $projectName; if ($rebuild) { if ($fs->exists($projectFolder)) { $fs->remove($projectFolder); } } $fs->ensureFolder($projectFolder); $projectFolder = realpath($projectFolder); self::runCommand($projectFolder, 'init'); if ($deleteServices) { file_put_contents($projectFolder . '/config/services.json', json_encode([])); } return $projectFolder; }