public static function handleClassesRequest() { // discover activerecord classes $recordClasses = array(); foreach (Emergence_FS::findFiles('\\.php$', true, 'php-classes') as $classNode) { if ($classNode->Type != 'application/php') { continue; } $classPath = $classNode->getFullPath(null, false); array_shift($classPath); $className = preg_replace('/(\\.class)?\\.php$/i', '', join('\\', $classPath)); foreach (static::$classFilters as $pattern) { if (preg_match($pattern, $className)) { continue 2; } } if (is_subclass_of($className, 'ActiveRecord') && !in_array($className, $recordClasses)) { $recordClasses[] = $className; } } natsort($recordClasses); return static::respond('classes', array('classes' => $recordClasses)); }