function testGlobalChainRegistry() { $query = new Mock\QueryChain(true); \qtil\Chain\ClassRegistry::addNamespace('qtil\\Tests\\Mock\\QueryChain', 'qtil\\Tests\\Mock\\ExtendedQueryChain'); $query->Select()->From()->Join(); $count = count($query->getLinks()); $this->assertEquals(3, $count); }
/** * Retrieves full class path from chain link name * @param mixed $object * @param string $name * @return string */ public static function getQualifiedName($object, $name, $suffix = null) { $chainNamespaces = array_merge(self::getNamespaces($object), ClassRegistry::getNamespaces($object)); //var_dump(ClassRegistry::getNamespaces($object)); foreach ($chainNamespaces as $chainNamespace) { $qualifiedNames = []; if (is_null($suffix)) { $suffix = ''; } $qualifiedNames[] = $chainNamespace . '\\' . $name . $suffix; $qualifiedNames[] = $chainNamespace . '\\' . ucfirst($name) . $suffix; foreach ($qualifiedNames as $qname) { if (class_exists($qname)) { return $qname; } } } }
function extend($namespace) { \qtil\Chain\ClassRegistry::addNamespace('filtratr\\Query', $namespace); }