Laravel Packages

Manage Global Data in Laravel with the World Package

Published
Manage Global Data in Laravel with the World Package image

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.

Yannick Lyn Fatt photo

Staff Writer at Laravel News and Full stack web developer.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Running Laravel's Scheduler on Multiple Servers image

Running Laravel's Scheduler on Multiple Servers

Read article
Laravel Fake Assertions Now Accept Property Arrays image

Laravel Fake Assertions Now Accept Property Arrays

Read article
Route::query() and Model defaults() in Laravel 13.35 image

Route::query() and Model defaults() in Laravel 13.35

Read article
Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat image

Laravel AI SDK 1.1 Adds Agent Skills and Cohere Chat

Read article
VMPal: Give Your AI Agent a Whole Computer image

VMPal: Give Your AI Agent a Whole Computer

Read article
Synapse: A Dev Dashboard for Laravel AI SDK Agents image

Synapse: A Dev Dashboard for Laravel AI SDK Agents

Read article