グローバルナビゲーションへ

本文へ

フッターへ

お役立ち情報Blog



今話題のPHPフレームワーク「Laravel」を使ってみた(準備編)

GoogleTrendsで最近のPHPフレームワークの動向を調べるてみると、目に見えて「Laravel」が群を抜いて上昇しています。

引用:GoogleTrends

弊社ソリューション事業部では主にCodeIgniter3やSymfony、Slim4などのフレームワークを用いてPHP開発を行ってきましたが、この機会に「Laravel」についても一度触れておきたいと思います。
今回は準備編として、インストールと各種機能の確認をしていきます。

筆者の環境

  • WSL2
  • Ubuntu-20.04
  • DockerDesctop-4.3.2

まずはインストール

公式ドキュメントに則ってインストールしていきます。

$ curl -s https://laravel.build/laravel-example | bash
$ cd laravel-example

$ ./vendor/bin/sail up
http://localhost/

問題なくインストールできました!

Sailコマンドって何?

インストール時にも使っている Sail コマンドとは何なのでしょうか。 ドキュメントには下記の記載があります。

Laravel Sailは、LaravelのデフォルトのDocker開発環境を操作するための軽量コマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するための優れた出発点を提供します。 Laravel 8.x インストール

とても便利そうなので、細かく見ていきます。

Bashエイリアスの設定

sailコマンドを使うたびに ./vendor/bin/sail を打つのは煩わしいのでエイリアスを設定します。

$ alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
$ sail up
 sail コマンドで ./vendor/bin/sail が使えるようになりましたが、このままではwslが再起動するたびにエイリアスが消えてしまいます。
wsl起動時に自動的にエイリアスを貼ってくれるよう、 ~/.bashrc にコマンドを追加しておくとなお良いかと思います。

$ diff -u ~/_.bashrc ~/.bashrc
--- /home/xxxxxxx/_.bashrc       2021-12-28 11:34:07.000000000 +0900
+++ /home/xxxxxxx/.bashrc        2021-12-28 11:34:46.360000000 +0900
@@ -116,3 +116,6 @@
     . /etc/bash_completion
   fi
 fi
+
+# add an "sail" alias
+alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

Dockerコンテナの起動と停止

 up コマンドで docker-compose.yml に定義されたコンテナを起動できます。 また、 -d オプションでバックグラウンド起動することも可能です。

$ sail up -d

コンテナの停止は ctrl+c です。
バックグラウンドで起動している場合は、 stop コマンドで停止します。

$ sail stop

DBへのアクセス

本記事と同様にデフォルトセットでインストールした場合、mysqlのコンテナがインストールされています。
各種設定は .env ファイルに記載があります。
初期設定のホストはlocalhostで、ポートは 3306 です。

$ sail mysql -u sail -ppassword
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 8.0.27 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| laravel_example    |
+--------------------+
2 rows in set (0.00 sec)

テストの実行

 test コマンドでテストを実行することも可能です。

$ sail test

   PASS  Tests\Unit\ExampleTest
  ✓ example

   PASS  Tests\Feature\ExampleTest
  ✓ example

  Tests:  2 passed
  Time:   0.10s

メールのプレビュー

本記事と同様にデフォルトセットでインストールした場合、mailhogのコンテナがインストールされています。
初期設定のホストは mailhog で、ポートは 1025 です。
キャッチしたメールの確認は下記のURLから行えます。

http://localhost:8025

サイトの共有

 share コマンドでサイトをGlobalに共有することが可能です。 docker環境で開発する上でプライベートネットワーク外へのサイト共有がコマンド1つで行えるように実装されているのはとてもありがたいですね!

$ sail share
Trying to use custom domain:
Thank you for using expose.
Local-URL:              host.docker.internal:80
Dashboard-URL:          http://127.0.0.1:4040
Expose-URL:             http://example.laravel-sail.site:8080
Expose-URL:             https://example.laravel-sail.site

さいごに

今回見てきた以外にも、いろいろな機能があります。

次回は実際に簡単なアプリケーションを作っていこうと思います。

この記事を書いた人

ばね
ばねソリューション事業部 システムエンジニア
東京で2年半エンジニアとしての経験を積み、浜松にUターンの後、アーティスへ入社。
ソリューション事業部のWebエンジニアとして、システムの設計・開発・保守・運用からインフラまで幅広く従事している。
フルスタックエンジニア目指して現在も勉強の日々。車が好き。
この記事のカテゴリ

FOLLOW US

最新の情報をお届けします