PHP code example of christianrey / laravel-addressable

1. Go to this page and download the library: Download christianrey/laravel-addressable library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

christianrey / laravel-addressable example snippets


use ChristianRey\Addressable\Concerns\Addressable;

class Customer extends Model
{
    use Addressable;
}

use ChristianRey\Addressable\Data\AddressData;

$customer->addAddress(
    new AddressData(
        line1: 'C/ Boiro 1',
        locality: 'Boiro',
        adminArea: 'A Coruña',
        postalCode: '15930',
        countryCode: 'ES',
    ),
    roles: ['main', 'shipping'],
);

$customer->mainAddress();      // ?Address
$customer->shippingAddress();  // ?Address
$customer->taxAddress();       // ?Address
$customer->setMainAddress($address);

use ChristianRey\Addressable\Geo\GeoResolver;

$resolver = app(GeoResolver::class);

$resolver->country('ES');             // Country (name, currency_code, calling_code)
$resolver->subdivisions('ES');        // Collection of top-level regions
$pc = $resolver->postalCode('ES', '15930');

$pc->place_name;    // "Boiro"
$pc->admin1_name;   // "Galicia"   (top-level region)
$pc->admin2_name;   // "A Coruña"  (province / second-level region)
$pc->latitude;      // 42.6483
$pc->longitude;     // -8.8857

// config/addressable.php
'geocoding' => [
    'google' => [
        'tiers' => [
            'autocomplete' => true,
            'geocoding' => true,
            'address_validation' => false,
        ],
    ],
],

use ChristianRey\Addressable\Geocoding\Contracts\Geocoder;

$geocoder = app(Geocoder::class);

$geocoder->autocomplete('Gran Vía, Madrid', sessionToken: $token); // list<AutocompleteSuggestion>
$geocoder->geocode('Puerta del Sol, Madrid');                      // ?AddressData
$geocoder->validate($addressData);                                 // AddressValidationResult

// config/addressable.php
'routes' => [
    'enabled' => env('ADDRESSABLE_ROUTES', false),
    'prefix' => 'addressable',
    'middleware' => ['throttle:60,1'], // add 'auth' etc. as needed
],
bash
composer vendor:publish --tag="addressable-migrations"
php artisan migrate
bash
php artisan vendor:publish --tag="addressable-config"