/** * Returns properly formatted FQN with backslash at the beginning or class name if the provided $fqn * has the same namespace as $contextClassNamespace * * @param string $fqn * @param string $contextClassNamespace * @return string */ public static function formatClassName($fqn, $contextClassNamespace) { $result = Helpers::extractClassName($fqn); $classNamespace = Helpers::extractNamespace($fqn); if ($classNamespace != $contextClassNamespace) { $result = $fqn; if (!Strings::startsWith($result, '\\')) { $result = '\\' . $result; } } return $result; }
/** * @param string $type selection|row * @param string $tableName */ protected function generateTableClass($type, $tableName) { $classFqn = $this->config['classes'][$type]['mapping']; $classFqn = Helpers::substituteClassWildcard($classFqn, $tableName); $className = Helpers::extractClassName($classFqn); $classNamespace = Helpers::extractNamespace($classFqn); $extendsFqn = $this->config['classes'][$type]['generated']; $extendsFqn = Helpers::substituteClassWildcard($extendsFqn, $tableName); $extends = Helpers::formatClassName($extendsFqn, $classNamespace); $dir = $this->config['dir'] . '/' . 'tables' . '/' . $tableName; $this->generateEmptyClass($classNamespace, $className, $extends, $dir); }