antonioribeiro / countries-laravel by AntonioCarlosRibeiro

Countries for Laravel
962,176
145
8
Package Data
Maintainer Username: AntonioCarlosRibeiro
Maintainer Contact: acr@antoniocarlosribeiro.com (Antonio Carlos Ribeiro)
Package Create Date: 2018-01-22
Package Last Update: 2023-05-01
Language: PHP
License: BSD-3-Clause
Last Refreshed: 2024-04-18 15:10:45
Package Statistics
Total Downloads: 962,176
Monthly Downloads: 8,115
Daily Downloads: 379
Total Stars: 145
Total Watchers: 8
Total Forks: 43
Total Open Issues: 18

World Map

What does it gives you?

This package has all sorts of information about countries:

| info | items | ------------------|-------:| | taxes | 32 | | geometry maps | 248 | | topology maps | 248 | | currencies | 256 | | countries | 266 | | timezones | 423 | | borders | 649 | | flags | 1,570 | | states | 4,526 | | cities | 7,376 | | timezones times | 81,153 |

Validation

The validation is extending Laravel's validation, so you can use it like any other validation rules, like

/**
 * Store a new blog post.
 *
 * @param  Request  $request
 * @return Response
 */
public function store(Request $request)
{
    $this->validate($request, [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
        'country' => 'country' //Checks if valid name.common
    ]);

    // The blog post is valid, store in database...
}

Which validation rules there is and what there name should be, can all be configured in the configuration file.

'validation' => [
    'rules' => [
	    'countryCommon' => 'name.common'
	]
]

By changing the configuration like this, we can now access the property name.common, by the validation rule countryCommon

You have to define all the validations rules in settings, only a few is defined by default, the default is

'rules' 	=> [
    'country' 			=> 'name.common',
    'cca2',
    'cca2',
    'cca3',
    'ccn3',
    'cioc',
    'currencies'			=> 'ISO4217',
    'language',
    'language_short'	=> 'ISO639_3',
]

Documentation

This package is a Laravel bridge, please refer to the main package repository for more information and docs.

Requirements

  • PHP 7.0+
  • Laravel 5.5+

Installing

Use Composer to install it:

composer require pragmarx/countries-laravel

Publishing assets

You can publish configuration by doing:

php artisan vendor:publish --provider=PragmaRX\\CountriesLaravel\\Package\\ServiceProvider

Usage

After installing you'll have access to the Countries Façade, and the package is based on Laravel Collections, so you basically have access to all methods in Collections, like

$france = Countries::where('name.common', 'France');

Flag routes

You can refer directly to an SVG flag by linking

/pragmarx/countries/flag/download/<cca3-code>.svg
/pragmarx/countries/flag/file/<cca3-code>.svg

Examples:

https://laravel.com/pragmarx/countries/flag/download/usa.svg
https://laravel.com/pragmarx/countries/flag/file/usa.svg

http://pragmarx.test/pragmarx/countries/flag/file/usa.svg

Author

Antonio Carlos Ribeiro

License

Countries is licensed under the MIT License - see the LICENSE file for details

Contributing

Pull requests and issues are more than welcome.