Chris@0: findPrevious(T_NAMESPACE, ($stackPtr - 1)); Chris@0: if ($namespace !== false) { Chris@0: return; Chris@0: } Chris@0: Chris@17: $moduleName = Project::getName($phpcsFile); Chris@0: if ($moduleName === false) { Chris@0: return; Chris@0: } Chris@0: Chris@0: $tokens = $phpcsFile->getTokens(); Chris@0: Chris@0: $className = $phpcsFile->findNext(T_STRING, $stackPtr); Chris@0: $name = trim($tokens[$className]['content']); Chris@0: Chris@0: // Underscores are omitted in class names. Also convert all characters Chris@0: // to lower case to compare them later. Chris@0: $classPrefix = strtolower(str_replace('_', '', $moduleName)); Chris@0: // Views classes might have underscores in the name, which is also fine. Chris@0: $viewsPrefix = strtolower($moduleName); Chris@0: $name = strtolower($name); Chris@0: Chris@0: if (strpos($name, $classPrefix) !== 0 && strpos($name, $viewsPrefix) !== 0) { Chris@0: $warning = '%s name must be prefixed with the project name "%s"'; Chris@0: $nameParts = explode('_', $moduleName); Chris@0: $camelName = ''; Chris@0: foreach ($nameParts as &$part) { Chris@0: $camelName .= ucfirst($part); Chris@0: } Chris@0: Chris@0: $errorData = array( Chris@0: ucfirst($tokens[$stackPtr]['content']), Chris@0: $camelName, Chris@0: ); Chris@0: $phpcsFile->addWarning($warning, $className, 'ClassPrefix', $errorData); Chris@0: } Chris@0: Chris@0: }//end process() Chris@0: Chris@0: Chris@0: }//end class