/** * * @param string $className * @param string $dbInstanceKey */ public static function registerTableNames($className = null, $dbInstanceKey = null) { if ($className === null) { $className = self::getCallerClassName(); } if ($dbInstanceKey === null) { $dbInstanceKey = self::getCallerDbInstanceKey(); } $sqlFiles = self::getCallerSQLFiles(); self::$tableSQLFiles = array_merge(self::$tableSQLFiles, $sqlFiles); if (!class_exists($className)) { throw new RuntimeException("Class '{$className}' doesn't exists or it is not loaded!"); } $reflection = new ReflectionClass($className); foreach ($reflection->getConstants() as $key => $value) { if (substr($key, 0, strlen(self::TABLE_NAMES_BEGIN)) == self::TABLE_NAMES_BEGIN) { if (!self::isSetTableName($key, $className, $dbInstanceKey)) { self::setTableName($key, $value, $className, $dbInstanceKey); } } } }