Skip to content

Parse and store sepomex data to a table and access it with a service repo

License

Notifications You must be signed in to change notification settings

wafto/laravel-sepomex

Repository files navigation

Laravel Sepomex

Total Downloads Latest Stable Version License

Introduction

This package provides postal code SEPOMEX information (unofficial) for Laravel.

Installation

You can install this package by running:

composer require wafto/laravel-sepomex

Setup

In order to setup this package, the next steps are needed.

1) Configuration file

Publish the sepomex.php configuration file under app/config using the following command:

php artisan vendor:publish --provider="Wafto\Sepomex\SepomexServiceProvider"

Here the configuration like table_name and source_file can be changed.

3) Source file

Download and copy file datos.gob.mx in the storage directory as cpdescarga.txt, note that this path should match with the config file.

4) Migrate and Import

After configuring the file path and table name, run migrations and run the importer command.

php artisan migrate
php artisan sepomex:import --chunk=50

This step might took some time to finish.

Usage

Only inject the contract Wafto\Sepomex\Contracts\SepomexContract or use app(Wafto\Sepomex\Contracts\SepomexContract::class) to get the singleton instance.

...
use Wafto\Sepomex\Contracts\SepomexContract;

class SepomexController extends Controller
{
    public function postal(SepomexContract $sepomex, $postal)
    {
        return $sepomex->getByPostal($postal);
    }

    public function states(SepomexContract $sepomex)
    {
        return $sepomex->getStates();
    }
}

The second option is to use the Sepomex Facade by editing the config/app.php by adding the alias.

'aliases' => [
    ...
    'Sepomex' => Wafto\Sepomex\Facades\Sepomex::class,
]

And using anywhere in your application.

...

class SepomexController extends Controller
{
    public function postal($postal)
    {
        return Sepomex::getByPostal($postal);
    }

    public function states()
    {
        return Sepomex::getStates();
    }
}

Important Notes

The database is distributed with a restrictive clause on the first line of the file.

El Catálogo Nacional de Códigos Postales, es elaborado por Correos de México y se proporciona en forma gratuita para uso particular, no estando permitida su comercialización, total o parcial, ni su distribución a terceros bajo ningún concepto.

But the database has been released under the license LIBRE USO MX so hopefully in the future the clause in the file change.

Source (Fuente)

"Catálogo Nacional de Códigos Postales" publicado por Correos de México. Consultado en https://datos.gob.mx/busca/dataset/catalogo-nacional-de-codigos-postales el 2017-11-06.

License

Laravel Sepomex is open-sourced software licensed under the MIT license.

About

Parse and store sepomex data to a table and access it with a service repo

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages