カテゴリ: Symfony 更新日: 2026/02/04

Symfonyで独自のコンソールコマンドを作成する方法を完全解説!make:commandで始めるバッチ処理入門

Symfonyで独自のコマンドを作成する方法(make:command)
Symfonyで独自のコマンドを作成する方法(make:command)

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

生徒

「Symfonyって、画面を作るだけじゃなくて、裏で動く処理も作れるんですか?」

先生

「作れます。Symfonyにはコンソールコマンドという、ボタンを押さずに実行できる仕組みがあります。」

生徒

「それは何に使うんですか?」

先生

「毎日自動で動かしたい処理や、大量のデータをまとめて処理するバッチ処理に使います。今回はその作り方を見ていきましょう。」

1. Symfonyのコンソールコマンドとは?

1. Symfonyのコンソールコマンドとは?
1. Symfonyのコンソールコマンドとは?

Symfonyのコンソールコマンドとは、ブラウザを使わずに、キーボードから命令を入力して実行する仕組みです。Windowsで言うとコマンドプロンプト、Macではターミナルと呼ばれる画面から操作します。

画面の裏側で動く処理なので、メールの一括送信古いデータの削除定期的な集計処理などに向いています。このようにまとめて実行する処理を、一般的にバッチ処理と呼びます。

2. make:commandで何ができるのか

2. make:commandで何ができるのか
2. make:commandで何ができるのか

Symfonyには、コマンド作成を助けてくれるmake:commandという便利な機能があります。これは、コマンドのひな形を自動で作ってくれる道具です。

プログラミング初心者にとって、最初から全部書くのは大変ですが、make:commandを使えば、最低限必要なファイルや構造が最初から用意されます。料理で言えば、下ごしらえが終わった状態から始められるイメージです。

3. コマンドを作成してみよう(make:command)

3. コマンドを作成してみよう(make:command)
3. コマンドを作成してみよう(make:command)

まずは、Symfonyのプロジェクトフォルダで、ターミナルを開きます。そして、次の命令を入力します。


php bin/console make:command

すると、コマンドの名前を聞かれます。例えば、app:helloのように入力します。appはアプリ用という意味で、helloは内容を表します。

この操作だけで、src/Commandフォルダの中に、新しいコマンド用のPHPファイルが自動で作成されます。

4. 生成されたコマンドファイルの中身

4. 生成されたコマンドファイルの中身
4. 生成されたコマンドファイルの中身

作成されたファイルを開くと、Commandクラスというものがあります。クラスとは、処理をまとめた設計図のようなものです。


protected function execute(InputInterface $input, OutputInterface $output): int
{
    $output->writeln('こんにちは、Symfonyコマンドです');
    return Command::SUCCESS;
}

executeメソッドの中が、実際に動く処理です。writelnは、画面に文字を表示する命令です。returnは「正常に終わりました」という合図になります。

5. 作成したコマンドを実行してみる

5. 作成したコマンドを実行してみる
5. 作成したコマンドを実行してみる

作っただけでは動きません。次は実行してみましょう。次のように入力します。


php bin/console app:hello

実行すると、次のような結果が表示されます。


こんにちは、Symfonyコマンドです

これで、独自のSymfonyコンソールコマンドが動いたことになります。

6. 引数を使って動きを変える

6. 引数を使って動きを変える
6. 引数を使って動きを変える

コマンドには、引数を渡すことができます。引数とは、命令と一緒に渡す追加情報です。名前を渡して、表示を変えてみましょう。


protected function execute(InputInterface $input, OutputInterface $output): int
{
    $name = $input->getArgument('name');
    $output->writeln($name . 'さん、こんにちは');
    return Command::SUCCESS;
}

これにより、実行時に指定した内容に応じて、表示が変わるコマンドになります。

7. バッチ処理でよく使われる場面

7. バッチ処理でよく使われる場面
7. バッチ処理でよく使われる場面

Symfonyのコンソールコマンドは、毎日決まった時間に動かす処理と相性が良いです。例えば、夜中にデータを整理したり、不要な情報を削除したりする処理です。

人が操作しなくても動くため、ミスが減り、作業時間も短縮できます。これが、Symfonyでバッチ処理を作る大きなメリットです。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

初めてSymfonyのコマンドを作ると、エラーが出て驚くことがあります。その多くは、コマンド名の入力ミスや、ファイル保存忘れです。

落ち着いて、表示されているエラーメッセージを読むことが大切です。Symfonyは、比較的わかりやすい文章で原因を教えてくれます。

カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyのコントローラで例外処理を追加する方法をやさしく解説!初心者でも安心して学べる
New2
Laravel
LaravelでEloquentのリレーションを扱う!withとloadで関連データを取得する方法
New3
Symfony
Twigとは?Symfony標準テンプレートエンジンの特徴と魅力を初心者向けに徹底解説
New4
Symfony
Symfonyでコントローラのコードをリファクタリングする方法をやさしく解説!初心者向けガイド
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.2
Java&Spring記事人気No2
Laravel
Laravelでログイン中ユーザー情報を取得する方法を完全解説!Auth::user()を初心者向けにやさしく説明
No.3
Java&Spring記事人気No3
Laravel
Laravelのコントローラとは?役割と使い方の基本を解説
No.4
Java&Spring記事人気No4
Laravel
LaravelでHello Worldを表示する方法を完全解説!初心者向けにルーティングと画面表示をやさしく説明
No.5
Java&Spring記事人気No5
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.6
Java&Spring記事人気No6
Symfony
Symfonyのインストール方法!CLIとComposerの導入手順まとめ
No.7
Java&Spring記事人気No7
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelで外部キー制約を設定する方法(foreign, onDelete)をやさしく解説!