@@ -2752,7 +2752,9 @@ public function isNANPACountry(string $regionCode): bool
27522752 */
27532753 public function formatInOriginalFormat (PhoneNumber $ number , string $ regionCallingFrom ): string
27542754 {
2755- if ($ number ->hasRawInput () && !$ this ->hasFormattingPatternForNumber ($ number )) {
2755+ $ formatRule = $ this ->getFormattingPatternForNumber ($ number );
2756+
2757+ if ($ number ->hasRawInput () && $ formatRule === null ) {
27562758 // We check if we have the formatting pattern because without that, we might format the number
27572759 // as a group without national prefix.
27582760 return $ number ->getRawInput ();
@@ -2796,11 +2798,6 @@ public function formatInOriginalFormat(PhoneNumber $number, string $regionCallin
27962798 $ formattedNumber = $ nationalFormat ;
27972799 break ;
27982800 }
2799- // Metadata cannot be null here because getNddPrefixForRegion() (above) returns null if
2800- // there is no metadata for the region.
2801- $ metadata = $ this ->getMetadataForRegion ($ regionCode );
2802- $ nationalNumber = $ this ->getNationalSignificantNumber ($ number );
2803- $ formatRule = $ this ->chooseFormattingPatternForNumber ($ metadata ->numberFormats (), $ nationalNumber );
28042801 // The format rule could still be null here if the national number was 0 and there was no
28052802 // raw input (this should not be possible for numbers generated by the phonenumber library
28062803 // as they would also not have a country calling code and we would have exited earlier).
@@ -2847,17 +2844,19 @@ public function formatInOriginalFormat(PhoneNumber $number, string $regionCallin
28472844 return $ formattedNumber ;
28482845 }
28492846
2850- protected function hasFormattingPatternForNumber (PhoneNumber $ number ): bool
2847+ /**
2848+ * Called chooseFormattingPatternForNumber in libphonenumber
2849+ */
2850+ protected function getFormattingPatternForNumber (PhoneNumber $ number ): ?NumberFormat
28512851 {
28522852 $ countryCallingCode = $ number ->getCountryCode ();
28532853 $ phoneNumberRegion = $ this ->getRegionCodeForCountryCode ($ countryCallingCode );
28542854 $ metadata = $ this ->getMetadataForRegionOrCallingCode ($ countryCallingCode , $ phoneNumberRegion );
28552855 if ($ metadata === null ) {
2856- return false ;
2856+ return null ;
28572857 }
28582858 $ nationalNumber = $ this ->getNationalSignificantNumber ($ number );
2859- $ formatRule = $ this ->chooseFormattingPatternForNumber ($ metadata ->numberFormats (), $ nationalNumber );
2860- return $ formatRule !== null ;
2859+ return $ this ->chooseFormattingPatternForNumber ($ metadata ->numberFormats (), $ nationalNumber );
28612860 }
28622861
28632862 /**
0 commit comments