CodeIgniterの命名規則とは?コントローラとモデルの整理で開発を効率化しよう
生徒
PHPフレームワークのCodeIgniterを使いたいのですが、コントローラやモデルの名前をどう決めたらいいのか分かりません。
先生
CodeIgniterには開発をスムーズにするための推奨される命名規則があります。これに従うと、あとからプログラムを見直したときに迷わなくなりますよ。
生徒
なるほど!整理整頓のようなものですね。具体的にはどうすればいいのでしょうか?
先生
それでは、初心者がまず押さえておきたいコントローラとモデルのファイル名やクラス名のルールを詳しく解説していきますね。
1. CodeIgniterにおけるMVCモデルとは?
CodeIgniterはMVCモデルという仕組みを採用しています。これは、プログラムを役割ごとに3つのパーツに分ける考え方です。初めてパソコンを触る人でも分かるように例えると、レストランの厨房と接客に似ています。
- Controller(コントローラ):お客さんの注文を聞いて、指示を出すホールスタッフの役割です。
- Model(モデル):料理を作る厨房の役割です。データの計算やデータベースへのアクセスを行います。
- View(ビュー):完成した料理をお客さんに届けるお皿の役割です。画面に表示されるHTMLの部分です。
それぞれの役割をきっちり分けることで、プログラムがぐちゃぐちゃになるのを防ぎます。この整理整頓をするための重要なルールが、これから解説する命名規則です。
2. コントローラの命名規則をマスターする
コントローラは、URLから直接呼び出される大切なファイルです。CodeIgniterでは、コントローラのクラス名は先頭を大文字にする必要があります。例えば、ユーザー管理を行うコントローラなら、ファイル名はUser.php、クラス名はUserとなります。
このルールを守ることで、CodeIgniterはURLから自動的にどのコントローラを動かせばいいか判断してくれます。ファイル名とクラス名は完全に一致させることが鉄則です。
class User extends CI_Controller {
public function index() {
echo 'ユーザー管理画面です';
}
}
このように、クラス名がファイル名と同じ「User」になっていることが分かるでしょう。これが基本中の基本です。
3. モデルの命名規則とディレクトリ構成
モデルは、データを扱うための心臓部です。コントローラと区別するために、モデルのファイル名にはModelというサフィックス(接尾辞)をつけるのが一般的です。例えば、商品データを扱うならProduct_model.phpという名前にします。
ディレクトリ構成も重要です。CodeIgniterでは、app/Modelsフォルダの中にすべてのモデルファイルを格納します。ファイルを機能ごとにフォルダ分けして整理すると、大規模な開発でも迷子になりません。
class Product_model extends CI_Model {
public function get_product($id) {
return '商品ID:' . $id . 'の情報を取得します';
}
}
ここでポイントなのは、クラス名の後ろに必ず_modelとつけることです。これにより、プログラムを見ただけで「これはデータを扱うモデルだ」と一目で判断できるようになります。
4. キャメルケースとスネークケースの使い分け
プログラムの世界には、単語をつなげる書き方にルールがあります。CodeIgniterの命名規則では、キャメルケースとスネークケースをうまく使い分けることが求められます。
- キャメルケース(CamelCase):単語の区切りを大文字にする方法です。クラス名によく使われます。例:
UserProfile - スネークケース(snake_case):単語の間をアンダースコア(_)でつなぐ方法です。ファイル名やメソッド名によく使われます。例:
user_profile_data
ファイル名は小文字でスネークケース、クラス名は先頭を大文字にしたキャメルケースと覚えておくと混乱しにくいでしょう。
5. URL設計とメソッドの命名規則
コントローラの中にある関数をメソッドと呼びます。URLでアクセスした際に、どのメソッドが動くかは非常に重要です。メソッド名は、その機能がひと目で分かるような動詞から始まる名前をつけるのがコツです。
class Order extends CI_Controller {
public function show_cart() {
// カートの中身を表示する処理
}
public function add_item() {
// 商品を追加する処理
}
}
show_cartやadd_itemのように、何をするのかを具体的に書くことで、開発効率が劇的に向上します。自分以外の人がプログラムを見たときにも、意図がすぐに伝わるきれいなコードを書く意識を持ちましょう。
6. コードの可読性を高めるディレクトリ設計
最後に、プロジェクト全体を整理するディレクトリ設計について説明します。CodeIgniterの設計方針では、機能ごとにコントローラとモデルを対応させるのが美しい形とされています。例えば、「ログイン機能」を作るなら、Login.phpというコントローラとLogin_model.phpというモデルを作る、というイメージです。
<!-- ビューファイルも同様に構成を揃える -->
views/
login/
form.php
success.php
このように、機能ごとにフォルダをまとめることで、プロジェクトが成長してもメンテナンスしやすい状態を保つことができます。整理整頓はプログラミングにおいて最強のスキルといえるでしょう。