private static Collection<PhpClass> getPhpClassInsideNamespace( Project project, PhpIndex phpIndex, String namespaceName, int maxDeep) { final Collection<PhpClass> phpClasses = new ArrayList<PhpClass>(); if (maxDeep-- <= 0) { return phpClasses; } StubIndex.getInstance() .process( PhpNamespaceIndex.KEY, namespaceName.toLowerCase(), project, phpIndex.getSearchScope(), new Processor<PhpNamespace>() { @Override public boolean process(PhpNamespace phpNamespace) { phpClasses.addAll( PsiTreeUtil.getChildrenOfTypeAsList( phpNamespace.getStatements(), PhpClass.class)); return true; } }); for (String ns : phpIndex.getChildNamespacesByParentName(namespaceName + "\\")) { phpClasses.addAll( getPhpClassInsideNamespace(project, phpIndex, namespaceName + "\\" + ns, maxDeep)); } return phpClasses; }