4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel 7.xでアプリケーション開発を始める時の手順まとめ

Last updated at Posted at 2020-04-19
掲題時に最初にやることがいつも大体決まっている気がするので、個人的メモがてらまとめておく。

プロジェクトの作成

  • 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.xxxx
      DB_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.xxxx
    PUSHER_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.php
          public 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
    
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?