getUnderscoreToCamelCaseFilter()->filter($name); } /** * Remove capitalized letters and prepend underscores. */ public function extract(string $name, ?object $object = null): string { return $this->getCamelCaseToUnderscoreFilter()->filter($name); } private function getUnderscoreToCamelCaseFilter(): UnderscoreToCamelCaseFilter { if (! static::$underscoreToCamelCaseFilter) { static::$underscoreToCamelCaseFilter = new UnderscoreToCamelCaseFilter(); } return static::$underscoreToCamelCaseFilter; } private function getCamelCaseToUnderscoreFilter(): CamelCaseToUnderscoreFilter { if (! static::$camelCaseToUnderscoreFilter) { static::$camelCaseToUnderscoreFilter = new CamelCaseToUnderscoreFilter(); } return static::$camelCaseToUnderscoreFilter; } }