CodeIgniter入門!設定ファイル(Config)の役割と基本設定を優しく解説
生徒
「CodeIgniterをインストールしてみたのですが、最初に何をすればいいんですか?」
先生
「まずは『設定ファイル(Config)』を確認しましょう。これはアプリのルールを決める大事な場所です。」
生徒
「設定ファイルって難しそうですね…。初心者でも触って大丈夫ですか?」
先生
「大丈夫ですよ!どこに何が書いてあるか、基本的な役割さえ分かれば怖くありません。一緒に見ていきましょう!」
1. CodeIgniterの設定ファイル(Config)とは?
CodeIgniter(コードイグナイター)というPHPのフレームワークにおいて、Config(コンフィグ)は、Webアプリケーション全体の「司令塔」や「ルールブック」のような役割を果たします。プログラミング未経験の方にとって「フレームワーク」という言葉は聞き慣れないかもしれませんが、これは「Webサイトを効率よく作るための土台」のことです。
例えば、あなたが新しいスマートフォンを買ったとき、最初に言語を日本語にしたり、Wi-Fiに繋いだり、通知のオン・オフを決めたりしますよね?それと同じように、CodeIgniterで作るシステムも「サイトの名前は何にするか」「インターネット上の住所(URL)はどこか」「どんなデータベースに繋ぐか」といった情報を最初に教えてあげる必要があります。その情報を書き込む場所が設定ファイルなのです。
2. 設定ファイルが置かれている場所を探してみよう
パソコンを初めて触る方にとって、ファイルがたくさん並んでいる画面は迷路のように見えるかもしれません。CodeIgniterでは、大事な設定ファイルはすべて決まった場所に整理整頓されています。基本的には、以下の場所を確認してください。
app/Config というフォルダの中に、設定に関するPHPファイルがぎっしりと詰まっています。このフォルダを開くと、App.phpやDatabase.phpといった名前のファイルが見つかるはずです。それぞれのファイルが、特定の機能(全体設定やデータベース設定など)の責任を持っています。
初心者のうちは、すべてのファイルを覚える必要はありません。まずは「アプリ全体の動きを決めるファイル」と「データベースに繋ぐためのファイル」の2つがあることだけを覚えておきましょう。
3. 最も重要な「App.php」の基本設定
一番最初に触ることになるのが、app/Config/App.phpです。ここには、WebサイトのURLや、使用する言語の設定が書かれています。例えば、自分のサイトの住所を登録する「Base URL」という項目があります。ここを正しく設定しないと、画像が表示されなかったり、リンクが動かなかったりすることがあります。
実際のコードを見てみましょう。PHPでは public $baseURL という部分の横に、自分のサイトのURLを書き込みます。
namespace Config;
use CodeIgniter\Config\BaseConfig;
class App extends BaseConfig
{
// Webサイトのトップページの住所(URL)を設定します
public $baseURL = 'http://localhost:8080/';
// 使用する言語を日本語に設定します
public $defaultLocale = 'ja';
// タイムゾーン(時間)を日本に合わせます
public $appTimezone = 'Asia/Tokyo';
}
このように、URLや言語、時間の設定を行うことで、システムが「あ、今は日本で動いているんだな」と理解してくれるようになります。
4. データベース接続設定「Database.php」の役割
Webサイトには、ユーザーの情報やブログの記事など、たくさんのデータが保存されます。そのデータを保管しておく大きな倉庫のようなものが「データベース」です。CodeIgniterがこの倉庫にアクセスして「データを取ってきて!」と頼むためには、倉庫の鍵(ユーザー名やパスワード)が必要になります。
その鍵の情報を書き込むのが app/Config/Database.php です。プログラミングが初めてでも、以下の項目を埋めるだけなので簡単です。
public $default = [
'DSN' => '',
'hostname' => 'localhost', // 倉庫がある場所(通常はそのままでOK)
'username' => 'my_user', // 倉庫に入るための名前
'password' => 'secret_pass', // 倉庫に入るための合言葉
'database' => 'my_database', // 使う倉庫の名前
'DBDriver' => 'MySQLi', // 倉庫の種類
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => true,
];
この設定を間違えると、システムが「倉庫が見つかりません!」とエラーを出して止まってしまいます。非常に重要な設定項目です。
5. 設定値をプログラムの中で使う方法
設定ファイルに書いた内容は、ただ置いておくだけではなく、プログラムのあちこちで「呼び出して」使うことができます。例えば、設定ファイルに書いたURLを画面に表示させたいときに使います。これを「設定値の取得」と呼びます。
初心者の方は「どうやって呼び出すの?」と不安になるかもしれませんが、CodeIgniterには便利な命令(関数)が用意されています。config() という命令を使うだけで、設定した内容をすぐに取り出せます。
// App設定を読み込む準備をします
$myConfig = config('App');
// 設定されているBaseURLを表示してみます
echo $myConfig->baseURL;
実行結果は次のようになります。
http://localhost:8080/
このように、一度設定ファイルに書いておけば、プログラムのどこからでも同じ情報を使えるので、管理がとても楽になります。
6. 開発環境と本番環境の切り替え(.envファイル)
プログラミングの世界には「開発環境」と「本番環境」という2つのステージがあります。開発環境は自分のパソコンの中だけで動かして練習する場所、本番環境は実際にインターネットに公開して世界中の人が見る場所です。それぞれの場所で設定を変えたいとき、いちいちファイルを書き換えるのは大変ですよね。
そこで登場するのが .env(ドットエンブ)というファイルです。これは設定ファイルの「上書き用メモ」のようなものです。このファイルを使うと、プログラム本体を書き換えずに、環境に応じた設定(例えばエラーを画面に表示するかどうかなど)を簡単に切り替えることができます。
例えば、開発中はエラーがどこにあるか詳しく知りたいので、デバッグモードを「開発中(development)」に設定します。
# 開発中はこれを使ってエラーを詳しく表示させます
CI_ENVIRONMENT = development
# 本番公開するときはこれに変えて、エラーを隠します
# CI_ENVIRONMENT = production
このように設定を使い分けることで、安全にWebアプリを公開することができるようになります。
7. セキュリティを高める設定のコツ
Webサイトを作る上で、セキュリティ(安全対策)は避けて通れません。設定ファイルの中には、悪意のある攻撃からサイトを守るための設定も含まれています。例えば、App.php の中にある indexPage という項目や、Security.php というファイルにある設定です。
特に「CSRF保護」という設定は重要です。これは、他人が勝手にあなたのサイトを操作するのを防ぐ仕組みです。設定ファイルで $CSRFProtection を有効にすることで、サイトの安全性がぐんと高まります。最初は難しく感じるかもしれませんが、「設定一つでサイトを守れるんだ」と知っておくだけでも立派な前進です。
8. 独自のルールを作ってみよう(カスタム設定)
CodeIgniterでは、あらかじめ用意されている設定だけでなく、自分で新しいルールを追加することも可能です。例えば、サイトの運営者のメールアドレスや、一ページに表示する記事の数などを自分の好きな名前で保存しておくことができます。
新しい設定ファイルを作らなくても、既存の App.php に項目を追加するだけでOKです。自分の思い通りにシステムをカスタマイズできるのは、プログラミングの醍醐味ですね。まずは基本的な設定に慣れてから、少しずつ自分専用の設定を増やしていきましょう。
パソコン操作に不慣れな方でも、メモ帳に文字を書くような感覚で設定ファイルを編集していけば、自分だけのWebアプリケーションが形になっていきます。エラーが出ても、それは設定が間違っているだけで、あなたが悪いわけではありません。一つずつ設定を確認していく作業が、プログラミング上達の第一歩です。