掲題時に最初にやることがいつも大体決まっている気がするので、個人的メモがてらまとめておく。
プロジェクトの作成
- laravelコマンドを使ってアプリケーションを作成する。
-
認証機能なしの場合
laravel new your-laravel-project-name
-
認証機能ありの場合
laravel new your-laravel-project-name --auth
-
Git管理
-
Git管理に追加する。
cd your/laravel/project/path git init git add . git commit -m "Initial Commit." git remote add origin your-git-repository-url git push -u origin master
.env関連
環境別の.env.xxxファイルを配置。
-
各環境別にファイルを配置する。
cd your/laravel/project/path cp .env .env.development cp .env .env.staging cp .env .env.production
-
この辺の値を変更。
- APP_NAME
- APP_ENV
- APP_DEBUG
- APP_URL
.env.exampleを除外。
-
.envと.env.exampleは不要。
cd your/laravel/project/path rm -rf .env rm -rf .env.example
日本語化
言語を日本語に変更。
-
config/app.php
config/app.php- 'timezone' => 'UTC', + 'timezone' => 'Asia/Tokyo', - 'locale' => 'en', + 'locale' => 'ja', - 'fallback_locale' => 'en', + 'fallback_locale' => 'ja',
-
言語ファイルの生成
php -r "copy('https://readouble.com/laravel/7.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');" php -f install-ja-lang.php php -r "unlink('install-ja-lang.php');"
migrate実行(必要なタイミングで随時)
-
サーバ側でmigrateを実行。
cd your/laravel/project/path APP_ENV=development php artisan migrate または APP_ENV=development php artisan migrate:refesh
barryvdh/laravel-debugbar
- デバッグを便利に。
barryvdh/laravel-debugbarを導入。
-
composerでモジュールを追加。
cd your/laravel/project/path composer require barryvdh/laravel-debugbar
-
artisanで設定ファイルを配置。
cd your/laravel/project/path # /config/debugbar.php配置 php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
各環境のdebugbar設定を変更。
- .env.xxxのAPP_DEBUGの値を適切に設定。
predis/predis
- セッション管理をRedisに変更。
predis/predisを導入。
-
composerでモジュールを追加。
cd your/laravel/project/path composer require predis/predis
predis/predisの設定を追記。
-
.env.xxxx
.env.xxxxDB_USERNAME=root DB_PASSWORD= BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync - SESSION_DRIVER=file + SESSION_DRIVER=redis SESSION_LIFETIME=120 - REDIS_HOST=127.0.0.1 - REDIS_PASSWORD=null + REDIS_HOST=(redis-host) + REDIS_PASSWORD=(redis-password) REDIS_PORT=6379 MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null
モデルクラスの配置場所をApp\Models内へ変更。
-
app配下にUser.phpができているが、どうにも気持ちが悪い。
-
app/Models/Storage/(schema_name)を作ってその中に納めたい。
cd your/laravel/project/path mkdir app/Models/Storage/(schema_name) mv app/User.php app/Models/Storage/(schema_name)/
-
app/Models/Storage/(schema_name)User.phpのnamespaceを変更。
- IDEの呼出元参照機能を使って、先に呼出元の記述修正を行っておくと楽。
adldap2/adldap2-laravel
- ActiveDiretory/LDAP認証を行う場合のみ。
adldap2/adldap2-laravelを導入。
-
composerでモジュールを追加。
cd your/laravel/project/path composer require adldap2/adldap2-laravel
-
artisanで設定ファイルを配置。
cd your/laravel/project/path # /config/ldap.php配置 php artisan vendor:publish --provider="Adldap\Laravel\AdldapServiceProvider" # /config/ldap_auth.php配置 php artisan vendor:publish --provider="Adldap\Laravel\AdldapAuthServiceProvider"
adldap2/adldap2-laravelの設定を追記。
- 使用するActiveDiretory/LDAPの環境により異なる。
Active Directory認証でメールアドレスとパスワードを使用するケースでは、この辺を変更した。
-
config/auth.php
config/auth.php| Supported: "database", "eloquent" | */ 'providers' => [ 'users' => [ - 'driver' => 'eloquent', + 'driver' => 'ldap', 'model' => App\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users',
-
config/ldap_auth.php
config/ldap_auth.php| to the sync attributes below. It is synchronized automatically. | | This option is only applicable to the DatabaseUserProvider. | */ - 'guid_column' => 'objectguid', + 'guid_column' => 'email', /* |-------------------------------------------------------------------------- | Username Column |-------------------------------------------------------------------------- |
config/ldap_auth.php| Set this to `null` if you do not have a password column. | | This option is only applicable to the DatabaseUserProvider. | */ - 'column' => 'password', + 'column' => null, ], /* |-------------------------------------------------------------------------- | Login Fallback
-
.env.xxxx
.env.xxxxPUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + LDAP_HOSTS=xxxxx + LDAP_BASE_DN=xxxxx + LDAP_USER_ATTRIBUTE=xxxxx + LDAP_USERNAME=xxxxx + LDAP_PASSWORD=xxxxx
認証方式に合わせてusersテーブルの定義を変更。
-
database/migrations/yyyy_mm_dd_hhmmss_create_users_table.php
database/migrations/yyyy_mm_dd_hhmmss_create_users_table.phppublic function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); - $table->timestamp('email_verified_at')->nullable(); - $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } /**
ルーティングを変更。
-
routes/web.php
routes/web.php| */ +// トップページ -Route::get('/', function () { - return view('welcome'); -}); +Route::get('/', 'HomeController@index')->name('home'); +// 認証機能 -Auth::routes(); +Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); +Route::post('login', 'Auth\LoginController@login'); +Route::post('logout', 'Auth\LoginController@logout')->name('logout'); -Route::get('/home', 'HomeController@index')->name('home');
-
不要になったモジュールを削除
rm -rf app/Http/Controllers/Auth/ConfirmPasswordController.php rm -rf app/Http/Controllers/Auth/ForgotPasswordController.php rm -rf app/Http/Controllers/Auth/RegisterController.php rm -rf app/Http/Controllers/Auth/ResetPasswordController.php rm -rf app/Http/Controllers/Auth/VerificationController.php rm -rf resources/views/auth/passwords rm -rf resources/views/auth/register.blade.php rm -rf resources/views/auth/verify.blade.php rm -rf resources/views/welcome.blade.php rm -rf database/migrations/*_create_password_resets_table.php
artisanコマンド
-
コントローラ作成
php artisan make:controller YourControllerName
-
モデル作成
php artisan make:model YourModelName
-
マイグレーション定義作成
php artisan make:migration your_migration_filenames --create=YourModelName