Laravelでコントローラを作成する方法(artisanコマンド)
生徒
「Laravelでコントローラを作りたいんですが、どうやって作るんですか?」
先生
「Laravelには便利な『artisanコマンド』というツールがあって、それを使うと簡単にコントローラが作れますよ。」
生徒
「artisanコマンドって何ですか?どうやって使うんですか?」
先生
「artisanはLaravelに標準で付いているコマンドラインツールのことです。プログラムの作成や管理を手助けしてくれます。今回はコントローラを作る方法を、わかりやすく説明しますね!」
1. artisanコマンドとは?
artisan(アーティザン)コマンドは、Laravelに標準で備わっている“開発を助けるための自動生成ツール”です。ターミナルという黒い画面に文字を入力して操作しますが、慣れてくるとクリック操作より素早く作業できるため、多くの開発者が日常的に利用しています。
例えば「コントローラを作りたい」「データベースのテーブルを準備したい」という作業も、artisanで命令を1行入力するだけでLaravelが必要なファイルを自動生成してくれます。プログラミング初心者でも、複雑な設定を意識せずに作業を進められるのが大きな魅力です。
試しに、今のプロジェクトで利用できるコマンド一覧を確認したい場合は次のように入力します。
php artisan list
このコマンドを実行すると、Laravelが用意しているたくさんの機能が一覧表示されます。「コントローラを作る」「モデルを作る」「キャッシュを削除する」など、Webアプリを作るうえで役立つコマンドがまとめて確認できます。まずは artisan に触れてみて、“Laravelを支える便利な道具”という感覚をつかむと理解が進みます。
2. コントローラを作成するartisanコマンド
実際にコントローラを作るときは、artisanコマンドに「コントローラを作ってください」と命令を出します。マウス操作ではなく、ターミナル(黒い画面)に文字を入力して実行するイメージです。最初は少し緊張するかもしれませんが、書く内容は1行だけなので、慣れてしまえばとても簡単です。
まず、Laravelプロジェクトのフォルダ(artisanファイルがある場所)でターミナルを開き、次のコマンドを入力します。
php artisan make:controller コントローラ名
例えば、「SampleController」という名前のコントローラを作りたいときは、次のように入力します。
php artisan make:controller SampleController
コマンドの意味を分解すると、php は「PHPを実行する」、artisan は「Laravelのツールを使う」、make:controller は「コントローラを作る」、その後ろの SampleController が「作りたいファイル名」です。1行の中に「何をどう作るか」がすべて含まれているイメージです。
このコマンドを実行すると、app/Http/Controllers フォルダの中に SampleController.php というファイルが自動で作成されます。自分で新規ファイルを作ってクラス名を書いて……といった手作業をしなくても、Laravelが雛形を用意してくれるので、初心者でもコントローラ作成の最初の一歩をスムーズに踏み出すことができます。
3. コントローラ名の決め方
コントローラの名前は、あとから自分や他の人が見たときに「このクラスは何をするのか」がすぐ分かるように付けることが大切です。Laravelでは基本的に、扱いたい対象(ユーザー、商品、記事など)の名前に「Controller」を付けるルールにしておくと、全体の見通しが良くなります。
例えば、ユーザー情報を扱うならUserController、商品データを扱うならProductController、ブログ記事を扱うならArticleControllerのように、「〇〇Controller」という形で名前を付けます。クラス名の最初の文字は大文字にするのがPHP・Laravelの一般的な書き方です。
実際のコントローラ作成コマンドも、名前の付け方さえ決まっていれば迷わず書けます。
php artisan make:controller UserController
php artisan make:controller ProductController
php artisan make:controller ArticleController
このように、コントローラ名と役割をそろえておくことで、「ユーザー関連の処理はUserController」「記事関連の処理はArticleController」とすぐに判断できるようになります。小さなプロジェクトのうちは違いが分かりにくいかもしれませんが、画面やAPIが増えてきたときに、名前の付け方を統一しておくかどうかでLaravelアプリの読みやすさが大きく変わります。
4. 作成されたコントローラの中身
artisanコマンドでコントローラを作成すると、まっさらな空ファイルではなく、Laravelが基本となるコードの“ひな形”を自動で書き込んでくれます。まずは、その中身がどうなっているのかをざっくり眺めてみましょう。
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class SampleController extends Controller
{
//
}
一見すると記号だらけで難しそうに見えますが、やっていることはシンプルです。1行目の <?php は「これからPHPのコードを書きます」という宣言、namespace App\Http\Controllers; は「このクラスは App\Http\Controllers というグループに属しています」という“住所”のような情報だと考えてください。
use App\Http\Controllers\Controller; の行では、Laravelが用意している共通の Controller クラスを読み込み、「この機能をベースにします」と宣言しています。そして、class SampleController extends Controller の部分で「SampleController という新しいコントローラを、元の Controller を土台にして作ります」という意味になります。
中括弧 { } の内側には、今は // だけが書かれており、「ここに処理を書いてください」というコメントのような状態です。実際のアプリでは、このブロックの中にメソッド(関数)を追加していきます。例えば、次のように枠だけ用意しておくこともできます。
class SampleController extends Controller
{
// トップページ用の処理を置く場所のイメージ
public function index()
{
// ここに画面表示や処理の内容を書いていく
}
}
まだ中身は空でも、このように「メソッドの入れ物」を用意しておくだけで、後から処理を足しやすくなります。まずは、「artisanでコントローラを作ると、このクラスのひな形が用意され、その中に自分の処理を書き足していく」という流れをイメージできれば十分です。
5. メソッドを追加する例
コントローラを作成しただけの状態では、まだ何も処理が書かれていない「空の箱」のようなものです。この箱の中に、実際に動かしたい処理をメソッド(関数)として追加していきます。メソッドは「この画面を表示する」「このURLに来たらこの処理をする」といった役割ごとに分けて書くイメージです。
例えば、トップページ用の処理を担当するメソッドとして、よく index という名前が使われます。SampleController の中に次のようなメソッドを追加してみましょう。
public function index()
{
// welcome というビュー(画面)を表示する
return view('welcome'); // resources/views/welcome.blade.php を表示
}
この index メソッドは、「このメソッドが呼び出されたら welcome という名前の画面を表示する」という意味になります。view('welcome') は、resources/views/welcome.blade.php というテンプレートファイルを読み込んでブラウザに返してくれるLaravelの機能です。
同じコントローラの中には、トップページ以外の処理用に別のメソッドを増やしていくこともできます。例えば「お問い合わせページ」を表示したい場合は、次のようにメソッドを追加するイメージです。
public function contact()
{
// contact というビューを表示する想定のメソッド
return view('contact');
}
このように、「どの画面や処理を担当するのか」を1メソッドずつ分けて書いておくと、あとから自分でコードを読み返すときにも分かりやすくなります。コントローラは複数のメソッドをまとめて管理する“司令塔”のような役割を持つので、まずは index や contact といったシンプルなメソッドを追加するところから練習してみるとよいでしょう。
6. artisanコマンドの便利なオプション
artisanコマンドには、さらに便利なオプションもあります。例えばリソースコントローラを作成すると、一覧表示、詳細表示、作成、編集などよく使う処理がセットで作られます。
php artisan make:controller SampleController --resource
このように、複数の処理をまとめて管理したいときに便利です。
7. artisanコマンドを使う前の準備
artisanコマンドはLaravelプロジェクトのルートディレクトリで実行します。まだLaravelをインストールしていない場合は、まずインストールが必要です。
また、ターミナルの使い方に慣れていない方は、簡単なコマンドの入力練習をしておくとスムーズです。
8. ポイント整理
Laravelのartisanコマンドを使うと、簡単にコントローラを作成できるため、開発がスピードアップします。コントローラはウェブアプリケーションの中心的な役割を持つため、最初にしっかり理解しましょう。
これからコントローラを自分で作って、ルートやビューと連携して動くWebアプリを作っていきましょう!
まとめ
ここまでLaravelでコントローラを作成する手順や、artisanコマンドの基本的な使い方、その役割や便利なオプションなどを一つずつ確認してきましたが、あらためて振り返ってみると、コントローラという存在がLaravelの開発においてどれほど重要な位置を占めているかがよく理解できたと思います。とくに、ウェブアプリケーションの処理の流れを整理するうえで、コントローラはビューとルートの間に立ち、役割ごとに処理をまとめて管理しやすくするための中心的な仕組みです。artisanコマンドを使って自動生成することで、余計な作業を減らし、必要な構造が整った状態から開発を始められるのはとても大きなメリットであり、初心者でも迷わずスムーズに作業に取り組めるようになります。
また、コントローラ名の付け方や役割に応じたメソッドの追加など、Laravelの開発では基本的な規則に沿って作るだけで読みやすさや扱いやすさが大きく向上します。名前の付け方が統一されていると、どのファイルがどんな機能を担当しているのか直感的に把握できるため、チームで開発する際にも共通の理解が生まれやすくなります。さらに、メソッドを整理しながら必要な処理を追加していけば、アプリ全体の構造がわかりやすく整っていき、修正や拡張もしやすい状態を保てます。コントローラ内のメソッドには、画面表示を担当するものやデータ処理を行うものなどさまざまな役割がありますが、Laravelの流れに沿って書くことで自然に整理された構造が保てるのも特徴です。
さらに便利な点として、artisanコマンドにはリソースコントローラを生成するオプションがあり、一覧表示、作成、更新、削除といった一般的な操作をまとめて自動生成できます。これにより、同じような処理を書く手間が省け、アプリ全体の流れに一貫性が出て、規模が大きくなっても混乱しづらい構成を簡単に作ることができます。とくにCRUD処理が多いアプリでは、このリソース構成を取り入れることで設計が整い、コードの見通しもぐっと良くなります。こうした便利な仕組みは、Laravelが多くの開発者に支持されている理由のひとつでもあり、初心者から上級者まで幅広く使われている重要な機能です。
ここでは、今回の学びを整理するために、サンプルとして基本的なコントローラの構造を載せておきます。
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class SampleController extends Controller
{
public function index()
{
return view('welcome');
}
public function show($id)
{
return view('sample.show', ['id' => $id]);
}
}
このようにメソッドを追加しながら、画面ごとの処理を整理してまとめていくことで、アプリケーションの構造が理解しやすくなり、保守性も大幅に向上します。artisanコマンドを使って効率よくファイルを作成し、Laravelの標準的な書き方に沿って開発を進めることで、自然とわかりやすいアプリケーションへと成長していきます。コントローラ作成の流れをしっかり押さえておけば、ルートやビューとの連携もスムーズになり、ひとつひとつの作業のつながりがはっきり見えてくるはずです。
生徒「コントローラってただのファイルだと思っていたけれど、Laravel全体の流れをつなぐ大事な仕組みなんですね。」
先生「その通りです。アプリの処理をひとまとめにしてわかりやすく整理できるので、設計にも役立ちますよ。」
生徒「artisanコマンドで自動生成されるのも便利ですね。最初の構造ができていると安心して書き始められます。」
先生「そうですね。必要なメソッドを追加しながら、役割に応じて整理すれば自然と読みやすいコードになります。」
生徒「リソースコントローラも使ってみたいです。CRUDがまとめて作れるのはすごく助かりそうです。」
先生「ぜひ使ってみてください。Laravelの開発がもっと快適になりますよ。」