format(static::DATE_FORMAT); } /** * Turn migration names like 'CreateUserTable' into file names like * '12345678901234_create_user_table.php' or 'LimitResourceNamesTo30Chars' into * '12345678901234_limit_resource_names_to_30_chars.php'. * * @param string $className Class Name * @return string */ public static function mapClassNameToFileName($className) { $arr = preg_split('/(?=[A-Z])/', $className); unset($arr[0]); // remove the first element ('') $fileName = static::getCurrentTimestamp() . '_' . strtolower(implode($arr, '_')) . '.php'; return $fileName; } /** * Check if a migration class name is valid. * * Migration class names must be in CamelCase format. * e.g: CreateUserTable or AddIndexToPostsTable. * * Single words are not allowed on their own. * * @param string $className Class Name * @return boolean */ public static function isValidMigrationClassName($className) { return (bool) preg_match('/^([A-Z][a-z0-9]+)+$/', $className); } }