この記事の目的
今やビジネスにおいてコンピュータ・情報・通信などを中心とする「IT用語」に対する知識は欠かせません。
あまり馴染みがない各分野のIT用語を、なるべく専門用語を使わずに解説していきます。
この記事の対象読者
Web制作を始めたばかりの人。
自社のWebマーケティングを任された人。
専門用語についていろいろ知りたい人。
Webマーケティングを行なっているが、言葉の定義を再確認したい人。
など、Webに限らずDXに携わるすべての方に。
CodeIgniterとは
Webアプリケーション開発において、フレームワークは大変便利で、効率的な開発が可能になります。その中でもCodeIgniterは、PHPで開発されたオープンソースのフレームワークで、軽量で高速な特性を持っています。特に初心者にとって優れた学習材料となるでしょう。
CodeIgnierの基本情報
CodeIgniterはModel-View-Controller(MVC)モデルを採用しており、データの管理(Model)、表示(View)、制御(Controller)を分けて開発することができます。これによって、コードの保守性と拡張性が向上し、大規模なアプリケーションでも開発がスムーズに行えます。
その他にも、セキュリティ機能が充実しており、データベース操作、フォーム検証、セッション管理が容易であるなど、多くの機能が用意されています。
また、独自のライブラリやヘルパー関数を追加してカスタマイズすることもできます。
CodeIgniterの特徴
軽量で高速
CodeIgniterは非常に軽量なフレームワークで、量な設計と最適化されたコアシステムにより迅速な動作が可能です。必要な機能のみをロードし余分なリソースを消費しないことでアプリケーションのパフォーマンスが向上します。
セキュリティ
CodeIgniterはビルトインのセキュリティ機能を提供しており、安全なWebアプリケーション開発が可能です。クロスサイトスクリプティング(XSS)対策、SQLインジェクション対策、パスワードハッシュ化などの機能が搭載されています。
Model-View-Controller(MVC)モデル
CodeIgniterはMVCアーキテクチャを採用しており、データの処理(Model)、表示(View)、制御(Controller)を分離して開発できます。これにより、コードの保守性と拡張性が向上し、チームでの開発が容易になります。
CodeIgniterの注意点
CodeIgniterは比較的古いフレームワークであり、最新の技術や機能がすぐに反映されないことがあります。より最新の技術や機能を求める場合は、他のフレームワーク(例: Laravel, Symfony)を検討する余地もあるといえます。
他のPHPフレームワークとの比較
Laravel
Laravelは最新のPHP機能やパッケージをサポートしています。Eloquent ORMやBladeテンプレートエンジンなど独自の機能を持っており、開発効率が向上します。ただしCodeIgniterに比べると、学習曲線がやや急であり、リソースの消費量が多いです。
Symfony
Symfonyは大規模なエンタープライズアプリケーション向けのフレームワークで、非常に柔軟性が高いです。コンポーネントベースのアーキテクチャを採用しており、必要な機能を選択して組み合わせることができます。ただし学習曲線が急であり、設定が複雑になることがあります。
CakePHP
CakePHPは、簡潔なコードと規約に基づく開発を特徴とするPHPフレームワークです。アプリケーションの構造が一貫しており、開発が容易になります。また、多くのビルトイン機能を提供しており、効率的な開発が可能です。ただし、柔軟性が若干低く、CodeIgniterに比べると学習曲線が急です。
ヘルパー関数とは
ヘルパー関数とは、繰り返し使われる一般的なタスクを簡潔なコードで実行できるように設計された小さな関数のことです。 例えば、CodeIgniterには、以下のようなヘルパー関数が含まれています。
例えば、フォームを作成、検証するための関数、URLを操作するための関数、ファイルを操作するための関数など、特定の目的に特化した関数がひとまとめになったものです。CodeIgniterでは、これらのヘルパー関数を「ヘルパー」というグループにまとめています。ヘルパーは必要に応じてロードして使うことができ、必要ないときはロードしないことでリソースを節約することもできます。
配列ヘルパー(Array Helper): 配列の操作に関する便利な関数を提供します。
クッキーヘルパー(Cookie Helper): クッキーの設定や取得に関する関数を提供します。
ファイルヘルパー(File Helper): ファイルの読み書きや操作に関する関数を提供します。
フォームヘルパー(Form Helper): フォーム要素の生成や検証に関する関数を提供します。
HTMLヘルパー(HTML Helper): HTMLタグの生成や操作に関する関数を提供します。
セキュリティヘルパー(Security Helper): セキュリティに関する関数を提供します。例えば、クロスサイトスクリプティング(XSS)対策を行う関数などです。
文字列ヘルパー(String Helper): 文字列の操作や変換に関する関数を提供します。
URLヘルパー(URL Helper): URLの生成や操作に関する関数を提供します。
例えば、フォームヘルパーを使いたい場合は、Controllerで以下のようにロードします。
$this->load->helper(‘form’); |
これで、フォームヘルパーの関数群が使えるようになります。
ヘルパー関数は、ウェブアプリケーションの開発をよりシンプルに、そして効率的に進めるための重要なツールです。
CodeIgniter 3とCodeIgniter 4の違い
CodeIgniter 3と4の間には多くの違いがあります。CodeIgniter 4は、新しい機能、改善、そして現代のPHP開発に適応するための重要な設計変更を導入しています。主な違いは以下のとおりです。
- PHPのバージョン
CodeIgniter 3ではPHP 5.3.7以上が必要ですが、CodeIgniter 4ではPHP 7.3以上が必要です。これは、CodeIgniter 4がPHPの新しい機能を活用しているためです。
- 名前空間
CodeIgniter 4では名前空間が導入されており、クラスとファイルの整理がより簡単になりました。
- 環境設定
CodeIgniter 4では、環境設定が”.env”ファイルを使って行われるようになりました。これにより、開発、テスト、本番などの異なる環境で設定を簡単に切り替えることが可能になりました。
- データベース
CodeIgniter 4では、データベースクラスが改善され、より多くのデータベースドライバがサポートされています。また、ORM的なデータベース操作も導入されました。
- モデル
CodeIgniter 3のモデルはとてもシンプルで基本的なものでしたが、CodeIgniter 4ではモデルが強化され、データのバリデーション、自動タイムスタンプなどの新しい機能が追加されました。
- コマンドラインツール
CodeIgniter 4にはCLI(コマンドラインインタフェース)ツールが含まれており、アプリケーションの生成、マイグレーション、テストなどのタスクを行うことができます。
- テスト
CodeIgniter 4はPHPUnitを直接サポートしており、ユニットテストとフィーチャーテストを容易に実行できます。
CodeIgniterのバージョン確認方法
CodeIgniterのバージョンを確認するには、一般的に以下の方法があります
方法1: CodeIgniter.php ファイルを確認する
- プロジェクトの system/CodeIgniter.php ファイルをエディタで開きます。
- CI_VERSION という定数を探します。以下のように記載されています。
define(‘CI_VERSION’, ‘xxx’); |
ここで、xxxが現在のCodeIgniterのバージョンを表します。
方法2: コマンドラインから確認する
ターミナル(またはコマンドプロンプト)を開き、プロジェクトのルートディレクトリに移動します。そして、以下のコマンドを実行します。
php spark version |
これで現在のCodeIgniterのバージョンが表示されます。
CodeIgniterのインストールと使用方法
当記事では、CodeIgniter 4に関する解説になります。
CodeIgniterをインストール
CodeIgniterの公式サイトから最新版のCodeIgniterをダウンロードします。
ダウンロードページ:https://codeigniter.com/download
「CODEIGNITER4」の「Download」をクリックしダウンロードが完了したら、解凍して、そのフォルダをウェブサーバのルートディレクトリ(例:/var/www/html/)に移動します。ローカルの開発環境であれば、XAMPPのhtdocsディレクトリや、MAMPのhtdocsディレクトリなどに移動してください。 移動が完了したら、ブラウザからCodeIgniterのインストールディレクトリにアクセスしてみましょう。うまくいけば、CodeIgniterのウェルカムページが表示されます。
CodeIgniterのディレクトリ構造
CodeIgniterの基本的なディレクトリ構造とそれぞれのディレクトリの役割については次のようになっています
/myproject/
|– /app/
| |– /Config/
| |– /Controllers/
| |– /Database/
| |– /Filters/
| |– /Helpers/
| |– /Language/
| |– /Libraries/
| |– /Models/
| |– /ThirdParty/
| ‘– /Views/
|– /public/
|– /system/
|– /writable/
|– composer.json
‘– .env
/myproject/ |– /app/ | |– /Config/ | |– /Controllers/ | |– /Database/ | |– /Filters/ | |– /Helpers/ | |– /Language/ | |– /Libraries/ | |– /Models/ | |– /ThirdParty/ | ‘– /Views/ |– /public/ |– /system/ |– /writable/ |– composer.json ‘– .env |
それぞれのディレクトリやファイルの役割は以下の通りです:
- /myproject/:プロジェクトのルートディレクトリ。ここにはプロジェクトの全てのファイルとディレクトリが含まれます。
- /app/:アプリケーションのコードを格納するディレクトリ。以下のサブディレクトリを含みます:
- /Config/:設定ファイルを格納するディレクトリ。データベースの設定、ルーティングの設定などが含まれます。
- /Controllers/:コントローラのファイルを格納するディレクトリ。コントローラはユーザのリクエストを受け取り、レスポンスを生成します。
- /Database/:データベースのマイグレーションとシードを格納するディレクトリ。
- /Filters/:HTTPリクエストやレスポンスをフィルタリングするクラスを格納するディレクトリ。
- /Helpers/:ヘルパ関数を格納するディレクトリ。
- /Language/:多言語サポートのための言語ファイルを格納するディレクトリ。
- /Libraries/:カスタムライブラリを格納するディレクトリ。
- /Models/:モデルのファイルを格納するディレクトリ。モデルはデータベースの操作を担当します。
- /ThirdParty/:サードパーティのライブラリを格納するディレクトリ。
- /Views/:ビューのファイルを格納するディレクトリ。ビューはユーザに表示されるHTMLを生成します。
- /public/:公開用ディレクトリ。ここにはウェブサーバが直接アクセスできる静的なファイル(CSS、JavaScript、画像ファイルなど)を格納します。
- /system/:CodeIgniterフレームワークのコアコードを格納するディレクトリ。このディレクトリ内のコードは直接編集しないように注意してください。必要な機能がなければ、appディレクトリ内に新たなクラスやライブラリを作成することで、CodeIgniterを拡張します。
- /writable/:アプリケーションによって書き込まれるファイル(キャッシュ、ログ、セッションなど)を格納するディレクトリ。
- composer.json:プロジェクトの依存関係を管理するためのComposerの設定ファイル。CodeIgniterをインストールしたり、他のライブラリを追加したりする際に使います。
- .env:環境変数を設定するファイル。データベースの接続情報やAPIのキーなど、公開してはならない情報をここに設定します。このファイルは.env.exampleからコピーして作成します。
コントローラの作成
次に簡単なコントローラを作成してみましょう。app/controllersディレクトリにWelcome.phpという名前のPHPファイルを作成します。そして、以下のようなコードを記述します。
<?php
class Welcome extends CI_Controller {
public function index()
{
echo 'Hello, CodeIgniter!';
}
}
これで準備は完了です。再びブラウザからCodeIgniterのインストールディレクトリにアクセスすると、’Hello, CodeIgniter!’と表示されます。
ビューの作成
ビューは、ユーザーが見る画面を作る場所で、HTMLやCSS、JavaScriptを使ってデザインを作ります。CodeIgniterでは、ビューを使って、ユーザーに対する表示を柔軟に制御することができます。
CodeIgniterでは、ビューファイルは通常、app/viewsディレクトリに保存します。そして、コントローラからこのビューファイルを呼び出し、ブラウザに表示します。ビューファイルはPHPファイルで、通常HTMLに混ざった少量のPHPコードが含まれます。
例えば、’welcome_message’というビューを表示させるには、コントローラで以下のように書きます:
$this->load->view(‘welcome_message’); |
このコードは、app/views/welcome_message.phpというビューファイルをブラウザに表示します。また、ビューにデータを渡すことも可能です。たとえば、以下のように書くことで、ビューに$dataという名前の配列を渡すことができます。
data = array(
'title' => 'Hello, CodeIgniter!',
'message' => 'Welcome to the world of CodeIgniter!'
);
$this->load->view('welcome_message', $data);
ビューでは、この渡されたデータを以下のように使用します。
<h1><?php echo $title; ?></h1>
<p><?php echo $message; ?></p>
モデルの作成
モデルはMVC(Model-View-Controller)の中のデータ操作(Model)を担当する部分です。つまり、データベースへのクエリの実行や、データの取得、更新、削除などを行います。
モデルは通常、application/modelsディレクトリに保存されます。そして、コントローラからロードして使用します。例えば、’Book_model’というモデルをロードするには、以下のようにコントローラで書きます。
$this->load->model(‘Book_model’); |
モデルに定義されているメソッドを呼び出すことで、データベース操作を行います。たとえば、以下のように書くことで、’Book_model’モデルの’get_books’メソッドを呼び出し、その結果をビューに渡すことができます。
$data[‘books’] = $this->Book_model->get_books(); $this->load->view(‘books_view’, $data); |
モデル内では、CodeIgniterが提供するデータベースクラスを使って、SQL文を書かずにデータベース操作を行うことも可能で、より安全で効率的なコードが書けます。
以上、データベースとのやりとりが必要な場合には、必ずモデルを使います。ユーザーに見えない部分ですが、アプリケーションの核心的な機能を担っています。
まとめ
CodeIgniterはPHPで作られた軽量でパワフルなフレームワークです。シンプルで直感的な構造が特徴で、初心者が理解しやすいため、新たにWebアプリケーション開発を始める方や、学習を進めていく方におすすめのフレームワークと言えるでしょう。