🙄

Laravelを教えてみた(Getting Started編)

2021/07/19に公開

未経験のメンバーからLaravel教えてほしいと言われる機会を得たので、Laravelを使った開発のオンボーディングを考えてみることにしました。

まずは最小限の準備をして、ローカル起動するまでをやってみることにしました。

なんとかうまくいきましたが、やはり想定とギャップがあったのでまとめてみます。

やったこと

前提

対象者はこんな2名でした

  • Sさん:社会人10年目、IT未経験
    • MacOS
  • Kくん:学生1年目、IT未経験
    • Windows

zoomでつなぎながら進めました。

予定

こんな予定で考えていました。

  • 事前準備
    • composerのインストール
    • パスを通す
  • 「Laravelクイックスタート」を進める
    • composer create-project でスケルトン作成
    • そのまま php artisan serve する
    • WEBブラウザからアクセスして、welcomeページが見れることを確認

実績

最終的にこうなりました

  • 事前準備
    • zoomの権限設定 追加
      • zoomで画面共有ができる設定を行う
    • zoomの画面共有方法の説明 追加
    • PHPのインストール 追加(Kくんのみ)
    • PHPのパスを通す 追加(Kくんのみ)
    • PHP.iniの設定変更 追加 (Kくんのみ)
      • fileinfoの有効化
    • composerのインストール
      • brewでインストール(Sさんのみ)
      • インストーラを利用してインストール(Kくんのみ)
    • パスを通す
  • 「Laravelクイックスタート」を進める
    • composer create-project でスケルトン作成
    • そのまま php artisan serve する
    • WEBブラウザからアクセスして、welcomeページが見れることを確認

結果

いくつか想定とギャップがありました

zoomの権限設定が必要だった

  • 事前準備
    • zoomの権限設定 追加
      • zoomで画面共有ができる設定を行う

→zoomで画面共有したことがなかったようで、設定のために再起動が必要になりました

zoomの画面共有方法の説明が必要だった

  • 事前準備
    • zoomの画面共有方法の説明 追加

→画面全体を共有するのと、ウインドウだけ共有する2つの方法があることについて認識が祖語っていて、欲しい情報が見えるようにするためにちょっと手間取りました

PHPのインストールが必要だった

  • 事前準備
    • PHPのインストール 追加(Kくんのみ)
    • PHPのパスを通す 追加(Kくんのみ)

→事前確認漏れでしたが、以下のサイトを参考にセットアップしてもらいました。

参考記事:

PHPのダウンロードとインストール - Windows10 - PHP入門 - Webkaru https://webkaru.net/php/windows-php-instal/

やったこと:
  • PHPのインストーラをダウンロード
  • インストーラを c:\php に展開して実行
  • 環境変数Pathの設定
  • PHPの動作確認
    以下を実行してバージョンが表示されることを確認
$ php -v

php.iniの設定変更が必要だった

  • 事前準備
    • PHP.iniの設定変更 追加 (Kくんのみ)
      • fileinfoの有効化

composer create-project で次のエラーが出ました。

C:\Users\ユーザー>composer create-project laravel/laravel your-project-name --prefer-dist
Creating a "laravel/laravel" project at "./your-project-name"
Installing laravel/laravel (v8.5.21)
  - Downloading laravel/laravel (v8.5.21)
  - Installing laravel/laravel (v8.5.21): Extracting archive
Created project in C:\Users\ユーザー\your-project-name
@php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - laravel/framework[v8.40.0, ..., 8.x-dev] require league/flysystem ^1.1 -> satisfiable by league/flysystem[1.1.0, ..., 1.x-dev].
    - league/flysystem[1.1.0, ..., 1.x-dev] require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension.
    - Root composer.json requires laravel/framework ^8.40 -> satisfiable by laravel/framework[v8.40.0, ..., 8.x-dev].
To enable extensions, verify that they are enabled in your .ini files:
    - C:\php\php.ini
You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.

調べてみると、phpでfileinfoという拡張機能が有効化されていなかったので、処理に失敗していたようです。
php.iniを編集して有効化したところ、解決しました。

参考記事:

Laravel new でエラー | HABATAKIブログ@翔 https://habataki-blog.com/laravel-new-error/

やったこと:
  • php.iniの場所を確認
C:\Users\ユーザー> php --ini
  • php.iniを編集

before

;extension=fileinfo

after

extension=fileinfo
  • コマンドプロンプトの再起動

その他

その他、全然詰まらずに系2時間ほどでローカルのwelcomeページが見れる状態になって逆にビビりました。

それから、間違って自分が超古い「Laravelクイックスタート」(v4.2)を使って進めてしまっていました。。

学び

再現性がありそうなノウハウをまとめてみますと、

  • zoom等で画面共有できるかどうかは最初に確認しておく
    • 途中で気づいたので時間をロスしました
  • 参照するドキュメントのバージョンはよく確認する
    • 「Laravelクイックスタート」を使って進めていましたが、間違って自分が超古いバージョン(v4.2) を使って進めてしまっていました。。(最もインパクトのあった失敗である。まじごめん。)
  • WindowsユーザやMacユーザなどOSの多様性があると、予想しないケースが見つかりやすい
    • ここに書ききれない細かい部分でサポートが必要でした。

おわりに

次は、welcomeページをいじってみたりとLaravelアプリの実装方法についてやっていこうと思っています。
なのでこのシリーズ続きます。

Discussion