Laravelの学習

こんにちは!ARですLaravel(PHP)を学習したので学んだ内容をまとめます。

  • sailによるプロジェクトの作成
  • ルーティング
  • ビュー
  • コントローラー

 

sailによるプロジェクトの作成

Sailは、Laravel公式のDocker環境を操作するためのコマンドラインインターフェースです。PHPやMySQLなどを含む開発環境をDocker上に構築できるため、比較的簡単にLaravelの開発環境を用意できます。

自分のPCはWindowsであり、WindowsからはWSL内で開発しています。WSLとDocker Desktopはすでにインストールしていたので、今回は省略します。

WSLのUbuntuからDocker上で環境を構築するため、Windows側のDocker Desktopの設定から、WSLからDocker Desktopを使用できるように設定します。

Docker設定

 

WSLのターミナルを開き、MySQLとMailpitを

 

 

一緒に使用する場合は、以下のコマンドでプロジェクトを作成できます。

コマンドを実行すると、Laravelのプロジェクトフォルダが作成され、Sailを利用するために必要な設定などが用意されます。

環境の起動には、以下のコマンドを使用します。

 

Sailコマンドは頻繁に使用するため、毎回./vendor/bin/sailと入力するのは少し手間です。

そこで、以下のようにエイリアスを設定すると、sail up -dのように短く入力できるようになります。

なお、この設定をシェルを再起動した後も使用する場合は、~/.bashrcなどに記載しておきます。

MySQLを使用する場合は、

 

データベースにLaravelで使用するテーブルを作成するため、マイグレーションを実行します。

その後、以下のコマンドでSailを起動すると、Dockerコンテナがバックグラウンドで起動します。

-dオプションを付けることで、バックグラウンドで実行できます。

 

停止する場合は、以下のコマンドを使用します。

 

 

WSLのターミナルを開き、MySQLとmailpitを一緒に環境を構築する場合は以下のコマンドでインストールするとプロジェクトフォルダとDockerのimageがインストールされる。

 

環境の起動には ./vendor/bin/sail up -d で起動できるが、sailコマンドは多用するので以下のコマンドでsailを保存すると、今後は sail up -d みたく短く打つために以下のコマンドを実行しシェルを再起動する。

 

MySQLを使用している場合は、マイグレーションが必要。以下のコマンドでマイグレーションをする

その後以下のコマンドで環境を実行すると、自動的にdockerコンテナが起動し、localhostに初期画面が表示される。(-dオプションはバックグラウンドで実行)

 

停止する場合は以下のコマンドでで停止する。

 

ルーティング

routes/web.phpにルーティングを記載します。

ルーティングとは、アクセスされたURLと、そのURLに対して実行する処理を対応付ける仕組みです。

例えば、以下のように記載します。

/にアクセスした場合はwelcomeビューを表示し、/helloにアクセスした場合はhello worldという文字列を返します。

これにより、http://localhost/helloにルーティングが設定されました。

 

ビュー

resources/views/にBladeテンプレートと呼ばれる、HTMLに似たファイルを配置します。

例えば、以下のようなテンプレートを作成します。

デフォルトテンプレート

このような共通部分をテンプレートとして用意しておくことで、複数のページで同じHTMLを繰り返し記述する必要がなくなります。

テンプレートを使用するページでは、@extends@sectionなどを使用します。

テンプレートを使用したページ

BladeテンプレートではHTMLの記述に加えて、@から始まるBlade独自の構文を使用できます。

今回は@yield@section@extendsを使用しました。

@yieldでテンプレート側にコンテンツを挿入する場所を定義し、@extendsでそのテンプレートを継承します。そして、@section@yieldに対応するコンテンツを指定します。

Bladeにはこのほかにもさまざまな構文があります。数が多いため、詳細は公式ドキュメントを参照してください。

Laravel公式ドキュメント – Blade

ページを作成しただけではURLから表示できないため、ルーティングからビューを呼び出します。

これで/curriculumにアクセスすると、resources/views/curriculum.blade.phpが表示されます。

 

コントローラー

ルートファイルには、表示だけでなく計算やDBへの保存などの処理を直接記載することもできます。

しかし、一つのファイルに多くの処理を記載するとコードが煩雑になってしまうため、実際のアプリケーションでは処理をコントローラーなどに分けて記述します。

コントローラーの作成

以下のコマンドでコントローラーを作成できます。

Sailを使用していない場合は、sailの部分をphpにします。

コマンドを実行すると、app/Http/Controllers/にコントローラーのファイルが作成されます。

作成されたコントローラーに、画面表示やデータの取得・加工などの処理を記述できます。

例えば、以下のようなコントローラーを作成します。

作成したコントローラーは、ルーティングファイルから呼び出すことができます。

このようにすることで、/world-timeにアクセスするとUtilityControllerworldTimeメソッドが実行されます。

今回の学習では、ルーティングに直接処理を書く方法から、コントローラーに処理を分離する方法まで確認しました。

 

 

About the author

Add Comment

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

By AR

最近の投稿

アーカイブ

カテゴリー

タグクラウド

コーポレートサイト