CodeIgniter 4のCLI(Spark)入門!コントローラーとモデルを爆速で作る方法
生徒
「CodeIgniterで新しい機能を作るとき、ファイルを手作業で作るのが大変です。もっと楽な方法はありませんか?」
先生
「CodeIgniterには『Spark(スパーク)』という便利なツールがあります。これを使えば、コマンドを入力するだけで自動的にファイルの中身まで作ってくれるんですよ。」
生徒
「コマンド?難しそうですが、初心者でもできますか?」
先生
「もちろんです!魔法の呪文を覚えるような感覚で、誰でも簡単に使いこなせます。一緒にやり方をマスターしましょう!」
1. CodeIgniterのCLIと「Spark」とは?
まずは基本から解説します。CLI(シーエルアイ)とは、「Command Line Interface(コマンドライン・インターフェース)」の略です。普段、皆さんはマウスを使ってフォルダを開いたりファイルを作ったりしていますが、CLIは「文字を入力してパソコンに命令を出す」方法のことです。Windowsなら「コマンドプロンプト」や「PowerShell」、Macなら「ターミナル」という黒い画面のアプリを使います。
そして、CodeIgniter 4に備わっているCLI専用の道具がSpark(スパーク)です。プログラミングにおいて、一からファイルを作成して「基本の形」を書き込むのは時間がかかります。Sparkを使えば、一瞬でコントローラーやモデルの雛形(テンプレート)を生成してくれるのです。これはまるで、白紙のノートに自分で線を引くのではなく、あらかじめ必要な項目が印刷された専用の用紙を一瞬で用意するような便利さがあります。
2. コマンドライン(黒い画面)を準備しよう
パソコンを触ったことがない方にとって、文字だけの画面は少し怖く感じるかもしれません。しかし、プログラミングの世界ではこの画面が「最高の相棒」になります。まずは、CodeIgniterがインストールされているフォルダ(プロジェクトのルートディレクトリと呼びます)を、コマンドプロンプトやターミナルで開きましょう。
そこで次のコマンドを打ってみてください。これが「Spark」を起動する合図です。
php spark list
これを入力してエンターキーを押すと、Sparkで使える命令の一覧がズラリと表示されます。phpは「PHPというプログラムを動かしてね」という意味で、sparkは「sparkというファイルを使ってね」という意味です。これが正常に動けば、準備完了です!
3. コントローラーを自動生成する魔法のコマンド
コントローラー(Controller)とは、Webサイトにアクセスがあったときに「どの処理を動かすか」を決める、いわば「司令塔」の役割を持つファイルです。通常、ファイルを手で作る場合は、ファイル名に注意して、さらにクラス名や継承などの難しいコードを自分で書かなければなりません。
しかし、Sparkを使えば以下の1行だけで済みます。今回は「Blog」という名前のコントローラーを作ってみましょう。
// コマンド実行の例(ターミナルで入力します)
php spark make:controller Blog
これを実行すると、app/Controllers/Blog.phpというファイルが自動で作られます。中身を覗いてみると、最初から基本的なコードが書き込まれています。自分で書く手間が省けるだけでなく、記述ミス(タイポ)も防げるのが大きなメリットです。初心者のうちは、この「自動で作ってもらう」感覚を大切にしてください。
4. モデルを自動生成してデータベースと繋ごう
次に、モデル(Model)を作ってみましょう。モデルとは、データベース(情報を貯めておく倉庫)とのやり取りを担当するファイルのことです。データの保存、読み込み、削除などはすべてこのモデル君にお願いします。
モデルを作るコマンドも非常にシンプルです。ここでは「UserModel」という名前で作ってみます。
// ユーザー情報を扱うモデルを作成
php spark make:model UserModel
実行結果として、app/Models/UserModel.phpが作成されます。生成されたコードを見てみましょう。
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model
{
protected $table = 'users'; // 使うテーブル名
protected $primaryKey = 'id'; // 主キーの名前
protected $useAutoIncrement = true; // IDを自動で増やすか
protected $returnType = 'array'; // データの形式
protected $allowedFields = []; // 保存を許可する項目
}
このように、あらかじめ「どんな設定が必要か」がコメント付きで用意されているので、あとは必要な部分を少し書き換えるだけで完成します。初心者が一からこれを書こうとすると、カッコを閉じ忘れたりしてエラーになりやすいのですが、自動生成なら安心です。
5. バッチ処理に欠かせないコマンド作成
バッチ処理という言葉を聞いたことはありますか?これは、「決まった時間に、裏側で自動的に行う処理」のことです。例えば、毎日深夜0時に売上の集計をしたり、1時間おきにメールを送信したりするプログラムです。Webブラウザでページを開くのとは違い、パソコンやサーバーが勝手に仕事をしてくれる仕組みです。
CodeIgniterでは、独自のコマンドを自分で作ることもできます。これを「カスタムコマンド」と呼びます。例えば、「Hello」と挨拶するだけの簡単なコマンドを作ってみましょう。
// 独自のコマンドファイルを作成する
php spark make:command HelloCommand
これで、app/Commands/HelloCommand.phpというファイルが生成されます。この中の処理を書き換えることで、自分専用のバッチ処理プログラムを作成できるようになります。
6. 生成されたコマンドの中身を編集してみよう
先ほど作った「HelloCommand.php」の中身を少しだけ編集して、実際に動かしてみましょう。ファイルを開くと run という名前の関数(プログラムのまとまり)があります。そこを以下のように書き換えてみます。
public function run(array $params)
{
// 画面に文字を表示する
CLI::write('こんにちは!CodeIgniterの世界へようこそ。', 'green');
}
保存したら、コマンドラインで以下のように入力して実行します。
php spark command:hello
すると、画面に緑色の文字で「こんにちは!」と表示されるはずです。このように、自分で作ったプログラムをCLIから直接呼び出すことができるようになります。これが、将来的に複雑なバッチ処理へと繋がっていく第一歩となります。
7. 初心者がハマりやすい注意点とコツ
便利なSparkですが、初心者が最初につまずきやすいポイントがいくつかあります。まず一つ目は「大文字と小文字」です。プログラミングでは、Blogとblogは別物として扱われることが多いです。コントローラーやモデルの名前を作るときは、最初の1文字を大文字にするのがCodeIgniterのルールですので、意識しておきましょう。
二つ目は、「カレントディレクトリ」です。コマンドを入力するときは、必ずCodeIgniterの「spark」というファイルが見える場所にいなければなりません。もし「ファイルが見つかりません」といった英語が出たら、今自分がどのフォルダにいるかを確認してみてください。
最後に、「ヘルプ機能」を活用しましょう。コマンドの使い方がわからなくなったら、コマンドの最後に --help をつけると、使い方の説明を表示してくれます。例えば php spark make:controller --help と打てば、どんなオプションが使えるか教えてくれます。困ったときは、このヘルプ君に聞いてみるのが上達の近道です。
8. なぜ手書きではなくCLIを使うべきなのか
「わざわざ難しい画面を使わなくても、コピー&ペーストでファイルを作ればいいのでは?」と思うかもしれません。しかし、CLIを使うことには大きな意味があります。それは「正確性」と「効率」です。
手作業でファイルを作ると、名前を間違えたり、フォルダの場所を間違えたりすることがよくあります。また、CodeIgniterが求めている「名前空間(namespace)」という、ファイルの住所のような記述を間違えると、プログラムは全く動かなくなります。Sparkを使えば、これらの住所や決まり文句を完璧な状態で自動入力してくれます。
さらに、プロの現場では「バッチ処理」の自動化が必須です。CLIでの操作に慣れておくと、将来サーバーの設定をしたり、自動テストを動かしたりするときに、その経験が必ず生きてきます。今のうちに黒い画面を「怖くないもの」にしておくことが、エンジニアへの大きなステップになります。