BrewWorks: シンプルなPHP開発環境構築

#### 注意）この記事で紹介したbreworksは、更に使いやすく便利になった[malt](https://koriym.github.io/homebrew-malt/)というパッケージに更新されました。

---

## はじめ

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3940/d0bba536-11da-adf9-40bf-e84bd002dd79.jpeg" width=50%>

PHPでWeb開発を始めようと思ったものの、環境構築で躓いた経験はありませんか？ XAMPPやDockerなど、様々なツールがありますが、初心者にとってはそれらの設定自体が大きな壁になることがあったり、簡単なものはその後の柔軟性に欠けたりします。

そこで今回は、Mac用の新しいツール「[BrewWorks](https://github.com/koriym/homebrew-brewworks)」を使って、簡単にPHP開発環境を構築する方法をご紹介します。BrewWorksを使えば、複雑な設定なしで、すぐにPHPの開発を始められ、その後の拡張も柔軟です。

## BrewWorksのインストール

まず、BrewWorksをインストールしましょう。BrewWorksはHomebrewを利用するので、まだHomebrewをインストールしていない方は最新のリリースからpkgパッケージをダウンロードしてインストールしてください。

https://github.com/Homebrew/brew/releases

Homebrewのインストールが完了したら、次にBrewWorksをインストールします。

```
brew install koriym/brewworks/brewworks
```

これだけで、BrewWorksのインストールは完了です。Web開発に必要なPHP、composer、MySQLなどのセットがインストールされました。

## PHPの開発環境のセットアップ

BrewWorksをインストールしたら、次は開発環境を設定し起動しましょう。まず、以下のコマンドを実行します：

```
. brewworks env
```

このコマンドは、BrewWorksの環境変数を現在のシェルにロードします。これにより：

1. BrewWorksがインストールしたPHPやMySQLなどのバージョンが、システムのデフォルトより優先して使用されるようになります。
2. プロジェクト固有の設定が反映され、他のプロジェクトとの競合を防ぎます。

`. brewworks env`を実行することで、BrewWorksの環境が正しく設定され、その後のコマンドやスクリプトが期待通りに動作するようになります。この手順は新しいターミナルセッションを開始するたびに必要です。

環境を設定したら、次のコマンドでサービスを起動します：

```
brewworks start
```

このコマンド群を実行すると、PHPやMySQL、Nginxなどの必要なサービスが全て起動します。

起動したら、まずブラウザで http://localhost:8080/ にアクセスしてみましょう。「It works!」というメッセージが表示されれば、環境が正しく起動しています。

次に、BrewWorksが作成した公開フォルダに移動します。

```
cd $(brew --prefix)/opt/brewworks/brewworks/public
```

この`public`フォルダが、Webサーバーのドキュメントルートとなります。ここにPHPファイルを置くことで、ブラウザからアクセスできるようになります。

## PHPの動作確認

では、PHPが正しく動作しているか確認しましょう。以下の内容で`phpinfo.php`ファイルを作成してください。

```php
echo "<?php phpinfo();" > phpinfo.php
```

ブラウザで http://localhost:8080/phpinfo.php にアクセスしてみましょう。PHPの情報ページが表示されれば、PHPが正しく動作しています。

## MySQLへの接続

次に、MySQLへの接続を確認しましょう。まず、コマンドラインからMySQLに接続します。[^mysql]

```
mysql@3306
```

[^mysql]: このコマンドは構築したデータベースに簡単に接続するために作成されました。`which mysql@3306`を実行すれば実体がどのようなものか分かります。


MySQLに接続できたら、データベースとテーブルを作成し、データを挿入してみましょう。

```sql
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users (name) VALUES ('BEAR'), ('Sunday');
```

次に、PHPからMySQLに接続してデータを取得するスクリプトを作成します。`db_test.php`というファイルを作成し、以下の内容を記述してください。

```php
<?php
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test_db', 'root', '');
$stmt = $pdo->query('SELECT * FROM users');
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
```

このファイルをブラウザで開くと（ http://localhost:8080/db_test.php ）、先ほど挿入したデータが表示されるはずです。

これはコンソールでも実行できます。`php db_test.php`と実行してください。同じ情報が表示されましたか？

## 環境の管理とリセット

BrewWorksの大きな利点の一つは、開発環境の管理が非常に簡単なことです。以下に、よく使う操作をご紹介します：

1. 環境を初期状態に戻す：

```
brewworks stop
brew reinstall brewworks
brewworks start
```

このコマンド群は、現在の環境を停止し、BrewWorksを再インストールした後、新しい環境を起動します。設定ミスをしてしまった場合や、クリーンな状態から始めたい場合に便利です。

2. サービスの停止と起動：

```
brewworks stop    # すべてのサービスを停止
brewworks start   # すべてのサービスを起動
```

作業を終えるときや、新たに作業を始めるときに使用します。これらのコマンドはどのディレクトリからでも実行できます。

3. 環境の完全削除：

```
brew uninstall brewworks
```

このコマンドで、BrewWorksとそれに関連するすべての環境（データベースを含む）が完全に削除されます。

注意点：

- BrewWorksで起動したサービスは、次回Macを再起動したときには自動的に停止します。
- 環境を再び利用したい場合は、`. brewworks env`と`brewworks start` を実行します。

## まとめ

BrewWorksを使うことで、PHPの開発環境を簡単に構築できることがお分かりいただけたでしょうか。複雑な設定なしで、すぐにコーディングを始められるのが大きな利点です。Dockerのような独立した環境をマシン本来のパフォーマンスで利用する事ができます。また、環境の管理やリセットも簡単に行えるため、初心者の方でも安心です。

PHP開発の世界は広大で、学ぶべきことがたくさんありますが、環境構築の壁を越えられたあなたは、既に一歩前進しています。ここから先は、[PHPの基本文法](https://www.php.net/manual/ja/index.php)を学び、さらに複雑なアプリケーションの開発に挑戦してみてください。

何か困ったことがあれば、AIやコミュニティに質問してみましょう。プログラミングの旅を楽しんでください！