カテゴリ: CodeIgniter 更新日: 2026/07/13

CodeIgniterの命名規則とは?コントローラとモデルの整理で開発を効率化しよう

CodeIgniterでコントローラ・モデルを整理する命名規則
CodeIgniterでコントローラ・モデルを整理する命名規則

先生と生徒の会話形式で理解しよう

生徒

PHPフレームワークのCodeIgniterを使いたいのですが、コントローラやモデルの名前をどう決めたらいいのか分かりません。

先生

CodeIgniterには開発をスムーズにするための推奨される命名規則があります。これに従うと、あとからプログラムを見直したときに迷わなくなりますよ。

生徒

なるほど!整理整頓のようなものですね。具体的にはどうすればいいのでしょうか?

先生

それでは、初心者がまず押さえておきたいコントローラとモデルのファイル名やクラス名のルールを詳しく解説していきますね。

1. CodeIgniterにおけるMVCモデルとは?

1. CodeIgniterにおけるMVCモデルとは?
1. CodeIgniterにおけるMVCモデルとは?

CodeIgniterはMVCモデルという仕組みを採用しています。これは、プログラムを役割ごとに3つのパーツに分ける考え方です。初めてパソコンを触る人でも分かるように例えると、レストランの厨房と接客に似ています。

  • Controller(コントローラ):お客さんの注文を聞いて、指示を出すホールスタッフの役割です。
  • Model(モデル):料理を作る厨房の役割です。データの計算やデータベースへのアクセスを行います。
  • View(ビュー):完成した料理をお客さんに届けるお皿の役割です。画面に表示されるHTMLの部分です。

それぞれの役割をきっちり分けることで、プログラムがぐちゃぐちゃになるのを防ぎます。この整理整頓をするための重要なルールが、これから解説する命名規則です。

2. コントローラの命名規則をマスターする

2. コントローラの命名規則をマスターする
2. コントローラの命名規則をマスターする

コントローラは、URLから直接呼び出される大切なファイルです。CodeIgniterでは、コントローラのクラス名は先頭を大文字にする必要があります。例えば、ユーザー管理を行うコントローラなら、ファイル名はUser.php、クラス名はUserとなります。

このルールを守ることで、CodeIgniterはURLから自動的にどのコントローラを動かせばいいか判断してくれます。ファイル名とクラス名は完全に一致させることが鉄則です。


class User extends CI_Controller {
    public function index() {
        echo 'ユーザー管理画面です';
    }
}

このように、クラス名がファイル名と同じ「User」になっていることが分かるでしょう。これが基本中の基本です。

3. モデルの命名規則とディレクトリ構成

3. モデルの命名規則とディレクトリ構成
3. モデルの命名規則とディレクトリ構成

モデルは、データを扱うための心臓部です。コントローラと区別するために、モデルのファイル名にはModelというサフィックス(接尾辞)をつけるのが一般的です。例えば、商品データを扱うならProduct_model.phpという名前にします。

ディレクトリ構成も重要です。CodeIgniterでは、app/Modelsフォルダの中にすべてのモデルファイルを格納します。ファイルを機能ごとにフォルダ分けして整理すると、大規模な開発でも迷子になりません。


class Product_model extends CI_Model {
    public function get_product($id) {
        return '商品ID:' . $id . 'の情報を取得します';
    }
}

ここでポイントなのは、クラス名の後ろに必ず_modelとつけることです。これにより、プログラムを見ただけで「これはデータを扱うモデルだ」と一目で判断できるようになります。

4. キャメルケースとスネークケースの使い分け

4. キャメルケースとスネークケースの使い分け
4. キャメルケースとスネークケースの使い分け

プログラムの世界には、単語をつなげる書き方にルールがあります。CodeIgniterの命名規則では、キャメルケーススネークケースをうまく使い分けることが求められます。

  • キャメルケース(CamelCase):単語の区切りを大文字にする方法です。クラス名によく使われます。例:UserProfile
  • スネークケース(snake_case):単語の間をアンダースコア(_)でつなぐ方法です。ファイル名やメソッド名によく使われます。例:user_profile_data

ファイル名は小文字でスネークケース、クラス名は先頭を大文字にしたキャメルケースと覚えておくと混乱しにくいでしょう。

5. URL設計とメソッドの命名規則

5. URL設計とメソッドの命名規則
5. URL設計とメソッドの命名規則

コントローラの中にある関数をメソッドと呼びます。URLでアクセスした際に、どのメソッドが動くかは非常に重要です。メソッド名は、その機能がひと目で分かるような動詞から始まる名前をつけるのがコツです。


class Order extends CI_Controller {
    public function show_cart() {
        // カートの中身を表示する処理
    }
    public function add_item() {
        // 商品を追加する処理
    }
}

show_cartadd_itemのように、何をするのかを具体的に書くことで、開発効率が劇的に向上します。自分以外の人がプログラムを見たときにも、意図がすぐに伝わるきれいなコードを書く意識を持ちましょう。

6. コードの可読性を高めるディレクトリ設計

6. コードの可読性を高めるディレクトリ設計
6. コードの可読性を高めるディレクトリ設計

最後に、プロジェクト全体を整理するディレクトリ設計について説明します。CodeIgniterの設計方針では、機能ごとにコントローラとモデルを対応させるのが美しい形とされています。例えば、「ログイン機能」を作るなら、Login.phpというコントローラとLogin_model.phpというモデルを作る、というイメージです。


<!-- ビューファイルも同様に構成を揃える -->
views/
  login/
    form.php
    success.php

このように、機能ごとにフォルダをまとめることで、プロジェクトが成長してもメンテナンスしやすい状態を保つことができます。整理整頓はプログラミングにおいて最強のスキルといえるでしょう。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルートとコントローラを対応付ける方法(名前付きルート)を初心者向けに解説
New2
Symfony
Symfonyで画像やファイルをアップロードする時のバリデーション完全ガイド!初心者でもわかる入力チェックの基本
New3
Laravel
Laravelで言語切替UIを作る!多言語対応(ローカリゼーション)実践ガイド
New4
CodeIgniter
CodeIgniterでローカル開発環境を構築する方法!初心者向け完全ガイド
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのキャッシュ管理を完全ガイド!初心者でもわかるメリットと注意点
No.2
Java&Spring記事人気No2
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
No.3
Java&Spring記事人気No3
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.4
Java&Spring記事人気No4
CodeIgniter
CodeIgniterとは?特徴・できること・他PHPフレームワークとの違いを完全解説
No.5
Java&Spring記事人気No5
Laravel
Laravelローカリゼーション入門!言語の取得と切り替え(App::getLocale / setLocale)を徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelの条件分岐とループ処理をBladeで書く方法
No.7
Java&Spring記事人気No7
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterのビュー共通化ガイド!初心者でもわかる部分ビューの読み込みとinclude設計