Last active
June 21, 2018 10:51
-
-
Save boomhq/71466e0d90bed511c800ba2c1a6aff0f to your computer and use it in GitHub Desktop.
Laravel-monogb ReplicaSet Atlas
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
APP_NAME=Laravel | |
APP_ENV=local | |
APP_KEY=base64:9dgqNCTqX6F3yUisJuldVDX+UQ0BOKAxaSBxHydIRh8= | |
APP_DEBUG=true | |
APP_LOG_LEVEL=debug | |
APP_URL=http://localhost | |
DB_CONNECTION=mongodb | |
DB_PORT=27017 | |
DB_DATABASE=MADB | |
DB_USERNAME=Mashphere | |
DB_PASSWORD=Password | |
DB_MONGO_REPLICA1=cluster0-shard-00-00-hu11b.mongodb.net | |
DB_MONGO_REPLICA2=cluster0-shard-00-01-hu11b.mongodb.net | |
DB_MONGO_REPLICA3=cluster0-shard-00-02-hu11b.mongodb.net | |
DB_MONGO_REPLICA_NAME=Cluster0-shard-0 | |
DB_MONGO_USE_SSL=true | |
BROADCAST_DRIVER=log | |
CACHE_DRIVER=file | |
SESSION_DRIVER=file | |
QUEUE_DRIVER=sync | |
REDIS_HOST=127.0.0.1 | |
REDIS_PASSWORD=null | |
REDIS_PORT=6379 | |
MAIL_DRIVER=smtp | |
MAIL_HOST=smtp.mailtrap.io | |
MAIL_PORT=2525 | |
MAIL_USERNAME=null | |
MAIL_PASSWORD=null | |
MAIL_ENCRYPTION=null | |
PUSHER_APP_ID= | |
PUSHER_APP_KEY= | |
PUSHER_APP_SECRET= |
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
1 a new laravel install | |
2 install: composer require jenssegers/mongodb | |
3 Add in config/app.php to the next of Service ¨Provider list : | |
Jenssegers\Mongodb\MongodbServiceProvider::class, | |
4 In config/database.php add the mongodb connexion | |
5 Add in .env new config : | |
6(option) Replace the User Models in app/User.php for use the auth ou of the box. |
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
///config/app.php | |
<?php | |
return [ | |
/* | |
|-------------------------------------------------------------------------- | |
| Application Name | |
|-------------------------------------------------------------------------- | |
| | |
| This value is the name of your application. This value is used when the | |
| framework needs to place the application's name in a notification or | |
| any other location as required by the application or its packages. | |
*/ | |
'name' => env('APP_NAME', 'Laravel'), | |
/* | |
|-------------------------------------------------------------------------- | |
| Application Environment | |
|-------------------------------------------------------------------------- | |
| | |
| This value determines the "environment" your application is currently | |
| running in. This may determine how you prefer to configure various | |
| services your application utilizes. Set this in your ".env" file. | |
| | |
*/ | |
'env' => env('APP_ENV', 'production'), | |
/* | |
|-------------------------------------------------------------------------- | |
| Application Debug Mode | |
|-------------------------------------------------------------------------- | |
| | |
| When your application is in debug mode, detailed error messages with | |
| stack traces will be shown on every error that occurs within your | |
| application. If disabled, a simple generic error page is shown. | |
| | |
*/ | |
'debug' => env('APP_DEBUG', false), | |
/* | |
|-------------------------------------------------------------------------- | |
| Application URL | |
|-------------------------------------------------------------------------- | |
| | |
| This URL is used by the console to properly generate URLs when using | |
| the Artisan command line tool. You should set this to the root of | |
| your application so that it is used when running Artisan tasks. | |
| | |
*/ | |
'url' => env('APP_URL', 'http://localhost'), | |
/* | |
|-------------------------------------------------------------------------- | |
| Application Timezone | |
|-------------------------------------------------------------------------- | |
| | |
| Here you may specify the default timezone for your application, which | |
| will be used by the PHP date and date-time functions. We have gone | |
| ahead and set this to a sensible default for you out of the box. | |
| | |
*/ | |
'timezone' => 'UTC', | |
/* | |
|-------------------------------------------------------------------------- | |
| Application Locale Configuration | |
|-------------------------------------------------------------------------- | |
| | |
| The application locale determines the default locale that will be used | |
| by the translation service provider. You are free to set this value | |
| to any of the locales which will be supported by the application. | |
| | |
*/ | |
'locale' => 'en', | |
/* | |
|-------------------------------------------------------------------------- | |
| Application Fallback Locale | |
|-------------------------------------------------------------------------- | |
| | |
| The fallback locale determines the locale to use when the current one | |
| is not available. You may change the value to correspond to any of | |
| the language folders that are provided through your application. | |
| | |
*/ | |
'fallback_locale' => 'en', | |
/* | |
|-------------------------------------------------------------------------- | |
| Encryption Key | |
|-------------------------------------------------------------------------- | |
| | |
| This key is used by the Illuminate encrypter service and should be set | |
| to a random, 32 character string, otherwise these encrypted strings | |
| will not be safe. Please do this before deploying an application! | |
| | |
*/ | |
'key' => env('APP_KEY'), | |
'cipher' => 'AES-256-CBC', | |
/* | |
|-------------------------------------------------------------------------- | |
| Logging Configuration | |
|-------------------------------------------------------------------------- | |
| | |
| Here you may configure the log settings for your application. Out of | |
| the box, Laravel uses the Monolog PHP logging library. This gives | |
| you a variety of powerful log handlers / formatters to utilize. | |
| | |
| Available Settings: "single", "daily", "syslog", "errorlog" | |
| | |
*/ | |
'log' => env('APP_LOG', 'single'), | |
'log_level' => env('APP_LOG_LEVEL', 'debug'), | |
/* | |
|-------------------------------------------------------------------------- | |
| Autoloaded Service Providers | |
|-------------------------------------------------------------------------- | |
| | |
| The service providers listed here will be automatically loaded on the | |
| request to your application. Feel free to add your own services to | |
| this array to grant expanded functionality to your applications. | |
| | |
*/ | |
'providers' => [ | |
/* | |
* Laravel Framework Service Providers... | |
*/ | |
Illuminate\Auth\AuthServiceProvider::class, | |
Illuminate\Broadcasting\BroadcastServiceProvider::class, | |
Illuminate\Bus\BusServiceProvider::class, | |
Illuminate\Cache\CacheServiceProvider::class, | |
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, | |
Illuminate\Cookie\CookieServiceProvider::class, | |
Illuminate\Database\DatabaseServiceProvider::class, | |
Illuminate\Encryption\EncryptionServiceProvider::class, | |
Illuminate\Filesystem\FilesystemServiceProvider::class, | |
Illuminate\Foundation\Providers\FoundationServiceProvider::class, | |
Illuminate\Hashing\HashServiceProvider::class, | |
Illuminate\Mail\MailServiceProvider::class, | |
Illuminate\Notifications\NotificationServiceProvider::class, | |
Illuminate\Pagination\PaginationServiceProvider::class, | |
Illuminate\Pipeline\PipelineServiceProvider::class, | |
Illuminate\Queue\QueueServiceProvider::class, | |
Illuminate\Redis\RedisServiceProvider::class, | |
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, | |
Illuminate\Session\SessionServiceProvider::class, | |
Illuminate\Translation\TranslationServiceProvider::class, | |
Illuminate\Validation\ValidationServiceProvider::class, | |
Illuminate\View\ViewServiceProvider::class, | |
/* | |
* Package Service Providers... | |
*/ | |
Laravel\Tinker\TinkerServiceProvider::class, | |
/* | |
* Application Service Providers... | |
*/ | |
App\Providers\AppServiceProvider::class, | |
App\Providers\AuthServiceProvider::class, | |
// App\Providers\BroadcastServiceProvider::class, | |
App\Providers\EventServiceProvider::class, | |
App\Providers\RouteServiceProvider::class, | |
//MongoDb | |
Jenssegers\Mongodb\MongodbServiceProvider::class, | |
], | |
/* | |
|-------------------------------------------------------------------------- | |
| Class Aliases | |
|-------------------------------------------------------------------------- | |
| | |
| This array of class aliases will be registered when this application | |
| is started. However, feel free to register as many as you wish as | |
| the aliases are "lazy" loaded so they don't hinder performance. | |
| | |
*/ | |
'aliases' => [ | |
'App' => Illuminate\Support\Facades\App::class, | |
'Artisan' => Illuminate\Support\Facades\Artisan::class, | |
'Auth' => Illuminate\Support\Facades\Auth::class, | |
'Blade' => Illuminate\Support\Facades\Blade::class, | |
'Broadcast' => Illuminate\Support\Facades\Broadcast::class, | |
'Bus' => Illuminate\Support\Facades\Bus::class, | |
'Cache' => Illuminate\Support\Facades\Cache::class, | |
'Config' => Illuminate\Support\Facades\Config::class, | |
'Cookie' => Illuminate\Support\Facades\Cookie::class, | |
'Crypt' => Illuminate\Support\Facades\Crypt::class, | |
'DB' => Illuminate\Support\Facades\DB::class, | |
'Eloquent' => Illuminate\Database\Eloquent\Model::class, | |
'Event' => Illuminate\Support\Facades\Event::class, | |
'File' => Illuminate\Support\Facades\File::class, | |
'Gate' => Illuminate\Support\Facades\Gate::class, | |
'Hash' => Illuminate\Support\Facades\Hash::class, | |
'Lang' => Illuminate\Support\Facades\Lang::class, | |
'Log' => Illuminate\Support\Facades\Log::class, | |
'Mail' => Illuminate\Support\Facades\Mail::class, | |
'Notification' => Illuminate\Support\Facades\Notification::class, | |
'Password' => Illuminate\Support\Facades\Password::class, | |
'Queue' => Illuminate\Support\Facades\Queue::class, | |
'Redirect' => Illuminate\Support\Facades\Redirect::class, | |
'Redis' => Illuminate\Support\Facades\Redis::class, | |
'Request' => Illuminate\Support\Facades\Request::class, | |
'Response' => Illuminate\Support\Facades\Response::class, | |
'Route' => Illuminate\Support\Facades\Route::class, | |
'Schema' => Illuminate\Support\Facades\Schema::class, | |
'Session' => Illuminate\Support\Facades\Session::class, | |
'Storage' => Illuminate\Support\Facades\Storage::class, | |
'URL' => Illuminate\Support\Facades\URL::class, | |
'Validator' => Illuminate\Support\Facades\Validator::class, | |
'View' => Illuminate\Support\Facades\View::class, | |
], | |
]; |
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
///config/database.php | |
<?php | |
return [ | |
/* | |
|-------------------------------------------------------------------------- | |
| Default Database Connection Name | |
|-------------------------------------------------------------------------- | |
| | |
| Here you may specify which of the database connections below you wish | |
| to use as your default connection for all database work. Of course | |
| you may use many connections at once using the Database library. | |
| | |
*/ | |
'default' => env('DB_CONNECTION', 'mongodb'), | |
/* | |
|-------------------------------------------------------------------------- | |
| Database Connections | |
|-------------------------------------------------------------------------- | |
| | |
| Here are each of the database connections setup for your application. | |
| Of course, examples of configuring each database platform that is | |
| supported by Laravel is shown below to make development simple. | |
| | |
| | |
| All database work in Laravel is done through the PHP PDO facilities | |
| so make sure you have the driver for your particular database of | |
| choice installed on your machine before you begin development. | |
| | |
*/ | |
'connections' => [ | |
//MongoReplicaset | |
'mongodb' => [ | |
'driver' => 'mongodb', | |
'host' => [ | |
env('DB_MONGO_REPLICA1'), | |
env('DB_MONGO_REPLICA2'), | |
env('DB_MONGO_REPLICA3'), | |
], | |
'port' => env('DB_PORT', 27017), | |
'database' => env('DB_DATABASE'), | |
'username' => env('DB_USERNAME'), | |
'password' => env('DB_PASSWORD'), | |
'options' => [ | |
'ssl' => env('DB_MONGO_USE_SSL'), | |
'replicaSet' => env('DB_MONGO_REPLICA_NAME'), | |
], | |
], | |
], | |
/* | |
|-------------------------------------------------------------------------- | |
| Migration Repository Table | |
|-------------------------------------------------------------------------- | |
| | |
| This table keeps track of all the migrations that have already run for | |
| your application. Using this information, we can determine which of | |
| the migrations on disk haven't actually been run in the database. | |
| | |
*/ | |
'migrations' => 'migrations', | |
/* | |
|-------------------------------------------------------------------------- | |
| Redis Databases | |
|-------------------------------------------------------------------------- | |
| | |
| Redis is an open source, fast, and advanced key-value store that also | |
| provides a richer set of commands than a typical key-value systems | |
| such as APC or Memcached. Laravel makes it easy to dig right in. | |
| | |
*/ | |
'redis' => [ | |
'client' => 'predis', | |
'default' => [ | |
'host' => env('REDIS_HOST', '127.0.0.1'), | |
'password' => env('REDIS_PASSWORD', null), | |
'port' => env('REDIS_PORT', 6379), | |
'database' => 0, | |
], | |
], | |
]; |
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
//app/User.php | |
<?php | |
namespace App; | |
use Illuminate\Notifications\Notifiable; | |
use Jenssegers\Mongodb\Auth\User as Authenticatable; | |
class User extends Authenticatable | |
{ | |
use Notifiable; | |
/** | |
* The attributes that are mass assignable. | |
* | |
* @var array | |
*/ | |
protected $fillable = [ | |
'name', 'email', 'password', | |
]; | |
/** | |
* The attributes that should be hidden for arrays. | |
* | |
* @var array | |
*/ | |
protected $hidden = [ | |
'password', 'remember_token', | |
]; | |
protected $collection = 'users'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment