Created
April 20, 2016 09:16
-
-
Save JPeer264/964a28e0b8920f1719f3ac2d01299a28 to your computer and use it in GitHub Desktop.
Laravel Countries for Lumen
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if ( ! function_exists('config_path')) | |
{ | |
/** | |
* Get the configuration path. | |
* | |
* @param string $path | |
* @return string | |
*/ | |
function config_path($path = '') | |
{ | |
return app()->basePath() . '/config' . ($path ? '/' . $path : $path); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__.'/../vendor/autoload.php'; | |
try { | |
(new Dotenv\Dotenv(__DIR__.'/../'))->load(); | |
} catch (Dotenv\Exception\InvalidPathException $e) { | |
// | |
} | |
/* | |
|-------------------------------------------------------------------------- | |
| Create The Application | |
|-------------------------------------------------------------------------- | |
| | |
| Here we will load the environment and create the application instance | |
| that serves as the central piece of this framework. We'll use this | |
| application as an "IoC" container and router for this framework. | |
| | |
*/ | |
$app = new Laravel\Lumen\Application( | |
realpath(__DIR__.'/../') | |
); | |
$app->withFacades(); | |
// $app->withEloquent(); | |
class_alias('Webpatser\Countries\CountriesFacade', 'Countries'); | |
class_alias('Illuminate\Support\Facades\Config', 'Config'); | |
/* | |
|-------------------------------------------------------------------------- | |
| Register Container Bindings | |
|-------------------------------------------------------------------------- | |
| | |
| Now we will register a few bindings in the service container. We will | |
| register the exception handler and the console kernel. You may add | |
| your own bindings here if you like or you can make another file. | |
| | |
*/ | |
$app->singleton( | |
Illuminate\Contracts\Debug\ExceptionHandler::class, | |
App\Exceptions\Handler::class | |
); | |
$app->singleton( | |
Illuminate\Contracts\Console\Kernel::class, | |
App\Console\Kernel::class | |
); | |
/* | |
|-------------------------------------------------------------------------- | |
| Register Middleware | |
|-------------------------------------------------------------------------- | |
| | |
| Next, we will register the middleware with the application. These can | |
| be global middleware that run before and after each request into a | |
| route or middleware that'll be assigned to some specific routes. | |
| | |
*/ | |
// $app->middleware([ | |
// App\Http\Middleware\ExampleMiddleware::class | |
// ]); | |
// $app->routeMiddleware([ | |
// 'auth' => App\Http\Middleware\Authenticate::class, | |
// ]); | |
/* | |
|-------------------------------------------------------------------------- | |
| Register Service Providers | |
|-------------------------------------------------------------------------- | |
| | |
| Here we will register all of the application's service providers which | |
| are used to bind services into the container. Service providers are | |
| totally optional, so you are not required to uncomment this line. | |
| | |
*/ | |
// $app->register(App\Providers\AppServiceProvider::class); | |
// $app->register(App\Providers\AuthServiceProvider::class); | |
// $app->register(App\Providers\EventServiceProvider::class); | |
$app->register(Webpatser\Countries\CountriesServiceProvider::class); | |
/* | |
|-------------------------------------------------------------------------- | |
| Load The Application Routes | |
|-------------------------------------------------------------------------- | |
| | |
| Next we will include the routes file so that they can all be added to | |
| the application. This will provide all of the URLs the application | |
| can respond to, as well as the controllers that may handle them. | |
| | |
*/ | |
$app->group(['namespace' => 'App\Http\Controllers'], function ($app) { | |
require __DIR__.'/../app/Http/routes.php'; | |
}); | |
return $app; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "laravel/lumen", | |
"description": "The Laravel Lumen Framework.", | |
"keywords": ["framework", "laravel", "lumen"], | |
"license": "MIT", | |
"type": "project", | |
"require": { | |
"php": ">=5.5.9", | |
"laravel/lumen-framework": "5.2.*", | |
"vlucas/phpdotenv": "~2.2", | |
"webpatser/laravel-countries": "^1.4" | |
}, | |
"require-dev": { | |
"fzaninotto/faker": "~1.4", | |
"phpunit/phpunit": "~4.0" | |
}, | |
"autoload": { | |
"psr-4": { | |
"App\\": "app/" | |
}, | |
"files": [ | |
"app/helpers.php" | |
] | |
}, | |
"autoload-dev": { | |
"classmap": [ | |
"tests/", | |
"database/" | |
] | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Illuminate\Database\Migrations\Migration; | |
class SetupCountriesTable extends Migration { | |
/** | |
* Run the migrations. | |
* | |
* @return void | |
*/ | |
public function up() | |
{ | |
// Creates the users table | |
Schema::create('Countries', function($table) | |
{ | |
$table->integer('id')->index(); | |
$table->string('capital', 255)->nullable(); | |
$table->string('citizenship', 255)->nullable(); | |
$table->string('country_code', 3)->default(''); | |
$table->string('currency', 255)->nullable(); | |
$table->string('currency_code', 255)->nullable(); | |
$table->string('currency_sub_unit', 255)->nullable(); | |
$table->string('currency_symbol', 3)->nullable(); | |
$table->string('full_name', 255)->nullable(); | |
$table->string('iso_3166_2', 2)->default(''); | |
$table->string('iso_3166_3', 3)->default(''); | |
$table->string('name', 255)->default(''); | |
$table->string('region_code', 3)->default(''); | |
$table->string('sub_region_code', 3)->default(''); | |
$table->boolean('eea')->default(0); | |
$table->string('calling_code', 3)->nullable(); | |
$table->string('flag', 6)->nullable(); | |
$table->primary('id'); | |
}); | |
} | |
/** | |
* Reverse the migrations. | |
* | |
* @return void | |
*/ | |
public function down() | |
{ | |
Schema::drop('Countries'); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Illuminate\Database\Migrations\Migration; | |
class CharifyCountriesTable extends Migration { | |
/** | |
* Run the migrations. | |
* | |
* @return void | |
*/ | |
public function up() | |
{ | |
Schema::table('Countries', function($table) | |
{ | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY country_code CHAR(3) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY iso_3166_2 CHAR(2) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY iso_3166_3 CHAR(3) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY region_code CHAR(3) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY sub_region_code CHAR(3) NOT NULL DEFAULT ''"); | |
}); | |
} | |
/** | |
* Reverse the migrations. | |
* | |
* @return void | |
*/ | |
public function down() | |
{ | |
Schema::table('Countries', function($table) | |
{ | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY country_code VARCHAR(3) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY iso_3166_2 VARCHAR(2) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY iso_3166_3 VARCHAR(3) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY region_code VARCHAR(3) NOT NULL DEFAULT ''"); | |
DB::statement("ALTER TABLE " . DB::getTablePrefix() . 'Countries' . " MODIFY sub_region_code VARCHAR(3) NOT NULL DEFAULT ''"); | |
}); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Illuminate\Database\Seeder; | |
class CountriesSeeder extends Seeder { | |
/** | |
* Run the database seeds. | |
* | |
* @return void | |
*/ | |
public function run() | |
{ | |
//Empty the countries table | |
DB::table('Countries')->delete(); | |
//Get all of the countries | |
$countries = Countries::getList(); | |
foreach ($countries as $countryId => $country){ | |
DB::table('countries')->insert(array( | |
'id' => $countryId, | |
'capital' => ((isset($country['capital'])) ? $country['capital'] : null), | |
'citizenship' => ((isset($country['citizenship'])) ? $country['citizenship'] : null), | |
'country_code' => $country['country-code'], | |
'currency' => ((isset($country['currency'])) ? $country['currency'] : null), | |
'currency_code' => ((isset($country['currency_code'])) ? $country['currency_code'] : null), | |
'currency_sub_unit' => ((isset($country['currency_sub_unit'])) ? $country['currency_sub_unit'] : null), | |
'full_name' => ((isset($country['full_name'])) ? $country['full_name'] : null), | |
'iso_3166_2' => $country['iso_3166_2'], | |
'iso_3166_3' => $country['iso_3166_3'], | |
'name' => $country['name'], | |
'region_code' => $country['region-code'], | |
'sub_region_code' => $country['sub-region-code'], | |
'eea' => (bool)$country['eea'], | |
'calling_code' => $country['calling_code'], | |
'currency_symbol' => ((isset($country['currency_symbol'])) ? $country['currency_symbol'] : null), | |
'flag' =>((isset($country['flag'])) ? $country['flag'] : null), | |
)); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Illuminate\Database\Seeder; | |
class DatabaseSeeder extends Seeder | |
{ | |
/** | |
* Run the database seeds. | |
* | |
* @return void | |
*/ | |
public function run() | |
{ | |
$this->call('CountriesSeeder'); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment