Location & countries
Tiger_Location is one capability-based, provider-agnostic facade for everything geographic —
so your form doesn't care who answered.
One facade, three capabilities
- Address autocomplete / geocode — text → structured places.
- Reverse geocode — lat/lng → an address.
- IP geolocation — an IP → a coarse location (used to pre-fill a country).
Adapters (extend Tiger_Location_Adapter_Abstract) declare which operations they support; the facade
routes each call to the configured, capable provider and returns the same normalized
Tiger_Location_Place every time.
Adapters, config-driven and graceful
Ships adapters for Nominatim/OSM (free, key-less — the default), AWS Location Service
(SigV4-signed), and IP geolocation. tiger.location.address.provider / .ip.provider pick the
provider per operation group. An unset or incapable provider yields empty results, never a fatal —
an unconfigured form just quietly does nothing. Add a provider with Tiger_Location::register().
Public read access is via Tiger_Service_Location (guest-allowed) — it powers the signup address
autocomplete and IP-based country pre-fill (the IP lookup is locked to the requester's own address).
Countries
Tiger_I18n_Country gives a biased, localized country list: ISO alpha-2/-3 from a lazy
country.ini, names resolved via country.<ISO2> translation keys (with a CLDR fallback), and a
sort bias so common countries float to the top of the picker.
See also
- Localization — how country names localize.
- Forms — the signup form's address autocomplete + country picker.