Laravel Countries and Currencies Package

Antonio Carlos Ribeiro recently launched a new package that gives you a powerful setup for dealing with the different Countries of the world, all through a comfortable Laravel syntax using Collections.

The package does a lot. Everything from geology and topology, to states, currencies, and time zones.

As I was reviewing it I tried to think of some common use cases that almost every app needs and here are a few examples:

Generate a list of Countries

Need a list of all the countries in the world? It’s as simple as calling:

Countries::all()->pluck('name.common');

[ "Aruba", "Afghanistan", "Angola", "Anguilla", "Åland Islands", ....

Generate a list of States

In a lot of registration forms, you need to allow people to pick their state.

Countries::where('name.common', 'United States') ->first() ->states ->sortBy('name') ->pluck('name', 'postal')

This gives you a result of the states that can then be used in a select list:

{ "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas", "CA": "California", ....

Get the timezone for a State

Another typical pattern is figuring out a timezone. If you already have the users country and state it’s now super easy:

return Countries::where('name.common', 'United States')->first()->timezone->NC;

Returns:

America/New_York

Get a countries currency

Need to get information on a specific countries currency? With this package it’s very easy:

Countries::where('name.common', 'United States')->first()->currency;

Which returns:

[{ "alternativeSigns": [], "ISO4217Code": "USD", "ISO4217Number": "840", "sign": "$", "subunits": 100, "title": "U.S. dollar", ....

These examples are just the basics of what can be done. It supports the following countries, states, and currencies:

Countries name (common and native) currency languages states timezone flags (sprites, flag icons, svg) tld multiple ISO codes calling code capital alternate spellings region & sub region translations (country name translated to some other languages) latitude and logitude borders (countries) – you can hydrate those borders (like relatioships) area topology geometry

Currencies sign ISO codes title subunits usage (dates)

States adm codes name & alt name type (state, city, province, canton, department, district, etc.) latitude & longitude language (and many more)



For more information on this package check out the GitHub repo.

Filed in: Laravel Packages