ReaDouble Laravel 9.xの個人的メモ【利用開始-インストール】

PHP Laravelの学習に際し、ReaDoubleを読み進めていく中で出会った「単語、技術、考え方」などについて、個人的に関心を持ったトピックを中心に取り上げていきます。

本シリーズは、ReaDoubleの補足資料的に利用するのがおススメです。

  • 参照するReaDouble

 

  • 対象読者
  • 初めてLaravelを勉強する人
  • ReaDoubleでLaravelを勉強している人

 

  • 参考資料

Composerとは?

最初のLaravelプロジェクトを作成する前提として、ローカルマシンにPHPとComposerをインストールする必要があります。

 

Composerとは、PHPで依存関係を管理するためのツールです。そのプロジェクトが依存しているライブラリ/パッケージを自動で管理(インストール/更新)できます。

開発で使用するライブラリ/パッケージは通常、そのまた別のライブラリ/パッケージに依存することで機能します。しかし、インストールしたライブラリが依存してるライブラリ(が依存しているライブラリ...)を手作業でインストールしたり更新するのは面倒です。

そこで多くの場合、PHPなら「Composer」、JavaScriptなら「npm」、rubyであれば「bundler」のようなパッケージ管理ツールを使用します。

 

公式が認めている通り、Composerはnpmやbundlerに強く影響されているためか使用するコマンドもよく似ています。

npm composer
プロジェクト作成 npm init composer init
パッケージインストール npm install composer install
開発のみインストール npm install --save-dev composer require --dev
グローバルインストール npm install -g パッケージ名 composer global require ベンダー名/パッケージ名
インストールディレクトリ node_modules vender
パッケージ更新 npm update composer update
パッケージ一覧 npm list composer show
パッケージ削除 npm uninstall composer remove
スクリプト実行 npm run スクリプト名 composer スクリプト名

 

Composerのインストール方法|Introduction - Composer

composer.json

composerで管理する依存パッケージを定義するためのファイルですcomposer installをするとcomposer.jsonの情報を基にパッケージ/ライブラリをインストールします。

npmであればpackage.jsonが似た役割を果たします。

 

アプリ開発では様々なパッケージをcomposer installして、インストールされたパッケージは「venderフォルダ(後述)」に格納されます。しかし、本番環境にはvenderフォルダを持っていくことができないので、どのようなパッケージを使用したかが分かるファイルのみを持っていき、それをもとに再度composer installすることでアプリに必要なパッケージをインストールします。そのファイルの役割を担うのがcomposer.jsonです。

composer.lock

最初にパッケージやライブラリをインストールした時に参照したパッケージやパッケージのバージョン情報が記載されるファイルです。

composer installを行うと同時に生成されます。

 

二回以上composer installをする場合、二回目以降はcomposer.jsonではなくcomposer.lockの情報を基にパッケージをインストールします。インストールしたいパッケージやバージョンを変更したいときは、composer.jsonに変更情報を書き込んだ後にcomposer updateを行うことで、変更情報を反映したパッケージがインストールされます。

 

composer.lockファイルはチーム開発などで役立ちます。composer.lockファイルをGitなどで共有すれば、パッケージやバージョンを統一した状態で開発を進められます。

venderフォルダ

venderフォルダにはcomposer installでインストールされたパッケージやライブラリが格納されます。ただし、composer.jsonにて任意のパスが指定されている場合には格納先を変更することも可能です。

npmであればnode_moduleフォルダが似た役割を果たします。

Dockerとは?

ReaDoubleではできるだけ簡単にLaravelを始められるように、Dockerを使用しています。

Dockerは、ローカルマシンにインストールしているソフトウェアや構成に干渉しない、小型で軽量の「コンテナ」でアプリケーションとサービスを実行するためのツールです。

ReaDouble

つまり、Dockerを使用すれば個々に異なるローカルの環境に影響を受けずに、アプリケーションの実行環境を整えることができます。

仮想マシンと同じでは?

「あたかも別のマシンが動いているように見える」という点では、VirtualBoxなどの仮想マシンと同じです。

VirtualBoxではホストOS上でHyperVisor(コンピュータを仮想化するソフトウェア)を利用してゲストOS(ホストOSとは別のカーネル)を動かし、その上で複数のアプリケーションを実行したりします。

対して、DockerはホストOSのカーネルを利用しており、Docker Engineによってプロセスやユーザーなどを区別することで、並行して複数のアプリケーションを実行できます。

 

得てしてDockerはVirtualBoxなどの仮想マシンよりも軽量で高速に起動、停止できます。

Docker入門(第一回)~Dockerとは何か?何がいいのか?

その他の利点

また、Dockerではミドルウェアのインストールや各種環境設定をコード化して管理しています。

先ほど、Laravelのcomposer.lockを利用することでインストールするパッケージやバージョンを共有して開発環境を統一できる、という話をしましたが、それと同じことをサーバーの各種設定やミドルウェアにも適用したのがDockerです。このような考え方をInfrastracture as Code(IaC)と呼びます。

IaCがもたらす主なメリットは次の通りです。

  • コード化されたファイルを共有すれば、誰でも同じ環境が作れる
  • 作成した環境を配布しやすい
  • スクラップ&ビルドが容易

 

このような特性からDockerは、個々に異なる開発環境、本番環境との差異、それらに起因する環境整備のトラブルや面倒を最小化するツールとして広く使用されています。

Laravel Sailとは?

ReaDoubleではできるだけ簡単にLaravelを始められるように、Laravel Sailも使用しています。

 

Sail provides a Docker powered local development experience for Laravel that is compatible with macOS, Windows (WSL2), and Linux. Other than Docker, no software or libraries are required to be installed on your local computer before using Sail. Sail's simple CLI means you can start building your Laravel application without any previous Docker experience.

laravel/sail: Docker files for running a basic Laravel application.

 

Laravel Sailは、Dockerを使用してLaravelの開発環境を提供してくれるツールで、Sailを使用するためにDocker以外のソフトウェアやライブラリをインストールする必要はありません。macOS、Windows(WSL2)、Linuxに対応しています。

具体的には、LaravelのデフォルトのDocker構成と、それを操作するためのコマンドラインインターフェースを提供しています。これによりDockerの経験がなくてもLaravelアプリケーションの開発環境を簡単に整えることができます。

まとめ

以上です。

Laravelの勉強、頑張りましょ。

 

コメントを残す

CAPTCHA