@@ -2687,7 +2687,9 @@ public function isNANPACountry(string $regionCode): bool
26872687 */
26882688 public function formatInOriginalFormat (PhoneNumber $ number , string $ regionCallingFrom ): string
26892689 {
2690- if ($ number ->hasRawInput () && !$ this ->hasFormattingPatternForNumber ($ number )) {
2690+ $ formatRule = $ this ->getFormattingPatternForNumber ($ number );
2691+
2692+ if ($ number ->hasRawInput () && $ formatRule === null ) {
26912693 // We check if we have the formatting pattern because without that, we might format the number
26922694 // as a group without national prefix.
26932695 return $ number ->getRawInput ();
@@ -2731,11 +2733,6 @@ public function formatInOriginalFormat(PhoneNumber $number, string $regionCallin
27312733 $ formattedNumber = $ nationalFormat ;
27322734 break ;
27332735 }
2734- // Metadata cannot be null here because getNddPrefixForRegion() (above) returns null if
2735- // there is no metadata for the region.
2736- $ metadata = $ this ->getMetadataForRegion ($ regionCode );
2737- $ nationalNumber = $ this ->getNationalSignificantNumber ($ number );
2738- $ formatRule = $ this ->chooseFormattingPatternForNumber ($ metadata ->numberFormats (), $ nationalNumber );
27392736 // The format rule could still be null here if the national number was 0 and there was no
27402737 // raw input (this should not be possible for numbers generated by the phonenumber library
27412738 // as they would also not have a country calling code and we would have exited earlier).
@@ -2782,17 +2779,19 @@ public function formatInOriginalFormat(PhoneNumber $number, string $regionCallin
27822779 return $ formattedNumber ;
27832780 }
27842781
2785- protected function hasFormattingPatternForNumber (PhoneNumber $ number ): bool
2782+ /**
2783+ * Called chooseFormattingPatternForNumber in libphonenumber
2784+ */
2785+ protected function getFormattingPatternForNumber (PhoneNumber $ number ): ?NumberFormat
27862786 {
27872787 $ countryCallingCode = $ number ->getCountryCode ();
27882788 $ phoneNumberRegion = $ this ->getRegionCodeForCountryCode ($ countryCallingCode );
27892789 $ metadata = $ this ->getMetadataForRegionOrCallingCode ($ countryCallingCode , $ phoneNumberRegion );
27902790 if ($ metadata === null ) {
2791- return false ;
2791+ return null ;
27922792 }
27932793 $ nationalNumber = $ this ->getNationalSignificantNumber ($ number );
2794- $ formatRule = $ this ->chooseFormattingPatternForNumber ($ metadata ->numberFormats (), $ nationalNumber );
2795- return $ formatRule !== null ;
2794+ return $ this ->chooseFormattingPatternForNumber ($ metadata ->numberFormats (), $ nationalNumber );
27962795 }
27972796
27982797 /**
0 commit comments