If you are working on an application and need a comprehensive list of countries, states, cities, timezones, currencies, and languages, look no further than this handy Laravel package called World.
Key Features
- Extensive Data Coverage: Access detailed information on countries, their subdivisions, cities, time zones, currencies, and languages, all within a unified package.
- Flexible Data Retrieval: Utilize the World Facade or predefined API routes to fetch data as per application requirements.
- Localization Support: Customize data presentation to match different locales, enhancing the user experience across diverse regions.
- Configurable Database Connection: Define a custom database connection using the
WORLD_DB_CONNECTION
variable in your.env
file. This allows you to retrieve data by connecting to a different database than your default connection.
You can install the package into your Laravel project via Composer:
composer require nnjeim/world
Next, run the following Artisan command to automate the installation process:
php artisan world:install
The install command will run the migrations and seed the database.
Examples
Using the World
facade, you can easily get a list of countries and specify which fields you would like to return and what filters you would like to apply:
$countries = World::countries(); // would return a list of all countries // or the following would return all the cities and states/parishes in Jamaica$countryWithStatesAndCities = World::countries([ 'fields' => 'states,cities', 'filters' => [ 'iso2' => 'JM' ]]);
Or if you need a list of currencies, you could use the following:
$currencies = World::currencies([ 'fields' => 'code,symbol,country', 'filters' => [ 'code' => 'USD' ]]);
The package also provides API endpoints out of the box with the same ability to specify fields, filters, and even a search string. For example:
http://world.test/api/countries?fields=states,cities
http://world.test/api/countries?fields=states&search=Jamaica
http://world.test/api/currencies
http://world.test/api/currencies?fields=code&filters[code]=JMD
Learn more about this package and view the source code on GitHub.