Download the PHP package thecoder/world without Composer
On this page you can find all versions of the php package thecoder/world. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package world
π World - PHP & Laravel Package for Geographical Data
World is a powerful PHP and Laravel package for retrieving structured geographical data, including continents, countries, provinces, and cities. This package is lightweight, optimized for performance, and seamlessly integrates with Laravel applications.
π Features
β Get all continents, countries, provinces, and cities
β Filter countries by continent
β Retrieve provinces and cities for any country
β Optimized for high performance with caching
β Compatible with Laravel and PHP
β Includes migrations and seeding for easy setup
β includes a Laravel Facade for simpler usage!
π¦ Installation
Install via Composer:
If auto-discovery is not working, manually add the service provider in config/app.php
:
π§ Publish Configuration & Migrations for Greater Flexibility
This will publish:
β
config/world.php
(configuration file)
β
Database migration files
π Migrate the Database
π Seed Geographical Data
This will populate the database with continents, countries, provinces, and cities.
π Usage
1οΈβ£ Using the Built-in World Facade (Recommended)
The package now includes a World Facade, making it easier to access data:
2οΈβ£ Manually Instantiate the Class
Get Locations
Get Countries by Continent
Get Provinces & Cities
β‘Caching for Maximum Performance
Since the World database is static and never changes, this package supports permanent caching to eliminate redundant database queries and significantly improve performance.
Enable Caching
You can enable caching in the file:
Setting ttl to null ensures that data is cached forever.
Use Cached Data in Queries
If caching is enabled, queries will automatically store results in the cache forever.
Manually Clear Cache (If Needed)
To clear the cache manually, run:
Or in code:
π Package-Integrated Laravel Facade
The package now provides a World Facade out-of-the-box, meaning Laravel users don't need to set it up manually.
β No need to register aliases
β Works automatically in Laravel
Just install the package and start using it:
π§ͺTesting
Ensure you have the necessary dependencies installed:
β οΈ Database Configuration for Testing
Due to special columns in the database, SQLite is not supported for testing.
Instead, configure MySQL in phpunit.xml:
βΆοΈ Running tests
π Database Schema
This package provides a locations table designed to store structured geographic data with hierarchical relationships.
Column | Type | Description |
---|---|---|
id |
Integer (PK) | Unique identifier |
continent_id |
Integer (FK) | Parent continent (nullable) |
country_id |
Integer (FK) | Parent country (nullable) |
province_id |
Integer (FK) | Parent province (nullable) |
iso_code |
String (3) | ISO country code (e.g., "US") |
type |
Enum | continent , country , province , city |
english_name |
String | Location name in English |
native_name |
String | Local name (optional) |
timezone |
String | Time zone (e.g., "Asia/Tehran") |
is_capital |
Boolean | Marks capital cities (default: false) |
priority |
Integer | Sort priority (default: 0) |
center |
POINT | Geographic coordinates |
area |
MULTIPOLYGON | Spatial data for regions |
β
Indexed for fast queries
β
Supports geographic coordinates & boundaries
β FAQ
πΉ What is this package used for?
It helps developers retrieve geographical data (continents, countries, provinces, and cities) for Laravel & PHP applications.
πΉ Is this package compatible with Laravel?
Yes! It fully supports Laravel and can also be used in vanilla PHP projects.
πΉ How can I filter countries by continent?
πΉ Can I get cities of a specific province?
β Contribute & Support
πΉ GitHub Repository: thecoder/world
πΉ Issues & Features: Submit Here
πΉ Contribute: Fork, star β, and submit PRs
π‘ Need more features? Open an issue or contribute to the project!
All versions of world with dependencies
illuminate/support Version ^8.0|^9.0|^10.0|^11.0
illuminate/database Version ^8.0|^9.0|^10.0|^11.0