public function testGetById() { $a = $this->makeResolver('a'); $list = new ResolverList([$a]); $this->assertSame($a, $list->getById('a')); $this->assertNull($list->getById('not in list')); }
public function setSqlDepends(ResolverList $list, $throwExceptionIfDependNotInList = true) { foreach ($this->getSqlDepends() as $_depend) { if ($depend = $list->getById($_depend)) { $this->addDependency($depend); } elseif ($throwExceptionIfDependNotInList) { throw new DependencyMissingException($_depend, $this, $list); } } }
/** * Resolve a entire assets directory * @return ResolverList */ public function resolveByDirs(array $dirs, ResolverList $assets, ResolverList $resolved) { // apply all obs to the database $resolveByDirs = new DependencyResolver("resolveByDirs-" . json_encode($dirs), function () use($dirs, $assets) { return true; printf("Resolved assets in directories\n%s\n", json_encode($dirs, JSON_PRETTY_PRINT)); }); // add all our resources as the database build setup foreach ($this->getSqlAssetsFromDirs1($dirs) as $file) { // print_r( $file ); $name = substr($file->getBasename(), 0, -4); if ($assets->containsId($name)) { $resolveByDirs->addDependency($assets->getById($name)); } } $resolveByDirs->resolve($resolved, new ResolverList(), true); return $resolved; }