RegistryTrait: enforce name validation rules on everything, not just enums

fixes #4916
This commit is contained in:
Dylan K. Taylor
2022-03-22 15:41:17 +00:00
parent 2b8a54f8ff
commit b7e6854189
2 changed files with 8 additions and 3 deletions

View File

@ -70,9 +70,7 @@ trait EnumTrait{
* @throws \InvalidArgumentException
*/
private function __construct(string $enumName){
if(preg_match('/^(?!\d)[A-Za-z\d_]+$/u', $enumName, $matches) === 0){
throw new \InvalidArgumentException("Invalid enum member name \"$enumName\", should only contain letters, numbers and underscores, and must not start with a number");
}
self::verifyName($enumName);
$this->enumName = $enumName;
if(self::$nextId === null){
self::$nextId = Process::pid(); //this provides enough base entropy to prevent hardcoding