CodeIgniterのDocker環境構築入門!開発効率を劇的に上げるメリットと全体像を解説
生徒
「Webサイトを作りたいのですが、CodeIgniterをDockerで動かすと何がいいんですか?」
先生
「Dockerを使うことで、環境構築のトラブルを減らし、チームで同じ開発環境を簡単に共有できるメリットがあります。」
生徒
「環境構築って何ですか?パソコンが苦手でも理解できるでしょうか?」
先生
「大丈夫です。まずは基本から一緒に紐解いていきましょう!」
1. CodeIgniterとDockerの基礎知識
まずは、今回登場する主要な用語を、身近な例えで理解しましょう。CodeIgniter(コードイグナイター)は、PHPというプログラミング言語で作られた、Webサイト開発を効率化するための「枠組み(フレームワーク)」です。家を建てる時に、あらかじめ柱や土台が用意されていると楽ですよね。それと同じで、CodeIgniterを使うとWebアプリ開発が非常にスムーズになります。
次にDocker(ドッカー)です。Dockerは「コンテナ」という箱の中に、プログラムを動かすための部品を詰め込む技術です。パソコン本体の設定を直接いじるのではなく、必要な部品が入った「専用の箱」を用意して、その中でプログラムを動かすイメージです。これにより、あなたのパソコンがMacでもWindowsでも、同じ設定で動かせるようになります。
2. なぜDockerを使うのか?開発環境のメリット
プログラミング未経験の方が最もつまずきやすいのが「環境構築」です。環境構築とは、料理でいえばキッチンに調理器具や食材を揃える作業です。もし、料理のたびに新しいキッチンを一から作っていたら大変ですよね。Dockerなら、このキッチンをボタン一つで、いつでも全く同じ状態で再現できます。
主なメリットは以下の通りです。
- 環境の統一: あなたのパソコンと、サーバー(Webサイトを公開する場所)で同じ環境を作れるため、「自分のパソコンでは動いたのに、公開したら動かない」というトラブルを防げます。
- 汚れないパソコン: 不要になったらコンテナごと捨てるだけ。パソコン本体にはゴミが残りません。
- 学習効率: 複雑なインストール作業が不要なので、すぐにプログラミングの学習に集中できます。
3. Dockerの全体像とコンテナの役割
Dockerの全体像を理解するために、役割を分けてみましょう。CodeIgniterを動かすには、最低でも以下の「箱」が必要です。
- Webサーバー用コンテナ: Webサイトの入り口です。
- PHPコンテナ: プログラムを実行する心臓部です。
- データベース用コンテナ: 記事データや会員情報を保存する倉庫です。
これら複数のコンテナを連携させるために、docker-compose.ymlという設定ファイルを使います。これは、どのコンテナとどのコンテナを繋ぐかという「設計図」のようなものです。
4. PHPの基本コードに触れてみる
CodeIgniterのベースであるPHPに触れてみましょう。PHPはWebブラウザに文字を表示するのが得意です。例えば、画面に挨拶を表示するコードは以下の通りです。
<?php
$greeting = "こんにちは!";
echo $greeting;
?>
実行結果は以下のようになります。
こんにちは!
このように、PHPはHTMLの中に埋め込んで、動きのあるWebサイトを作ることができます。Docker環境ができれば、このコードを自分のブラウザで簡単に確認できるようになります。
5. 開発環境におけるデータ処理の仕組み
次に、Webアプリで必須となる「データの計算」について少し見てみましょう。PHPでは計算も簡単に行えます。変数(データを一時的に入れておく箱)を使って、合計を出すプログラムです。
<?php
$price = 500;
$tax = 0.1;
$total = $price + ($price * $tax);
echo "税込価格は" . $total . "円です";
?>
実行結果は以下の通りです。
税込価格は550円です
Docker環境でCodeIgniterを使えば、こうした計算結果をデータベースから取り出し、おしゃれなデザイン(HTML)として表示させる一連の流れを構築できるようになります。
6. フォーム入力とデータの受け取り
Webサイトには、お問い合わせフォームなどが欠かせません。ユーザーが入力した情報をプログラムがどう受け取るかを体験してみましょう。
<form method="post" action="send.php">
<input type="text" name="user_name">
<button type="submit">送信</button>
</form>
このHTMLコードは、ユーザーが文字を入力して「送信」ボタンを押すための画面パーツを作ります。CodeIgniterを使うと、この入力内容を安全にチェックし、プログラムで使いやすい形に整える処理が非常にシンプルに書けます。初心者にとっても、Docker環境で実際に動かしながら学ぶことで、何をしているのかが手に取るようにわかるはずです。
7. 繰り返し処理で効率化しよう
プログラミングの大きな利点は「面倒なことを自動化できる」ことです。例えば、メニュー項目を100個作る時、一つずつ書くのは大変です。PHPの繰り返し機能を使えば、一瞬で終わります。
<?php
for ($i = 1; $i <= 3; $i++) {
echo "メニュー項目 " . $i . "<br>";
}
?>
実行結果は以下のようになります。
メニュー項目 1
メニュー項目 2
メニュー項目 3
CodeIgniterの仕組みを知ることは、こうした効率化のテクニックをWeb開発全体でどう活かすかを学ぶことと同義です。Dockerという安全な環境の上で、まずは小さなコードをたくさん書いて、成功体験を積み上げていくことが、成長への最短ルートとなります。