ハマログ

株式会社イーツー・インフォの社員ブログ

Laravelのartisanの自作

こんにちは、かねこです。
あたまのいいチャラ男になりたいですが、頭はなかなか良くなりません。一方で、チャラ男にはすぐになれるため、結果的にただのチャラ男になっています。どうぞよろしくお願いします。

今回は、PHPのウェブアプリケーションフレームワークLaravelの、artisanコマンドクラスの自作方法について試しました。

Laravelちょういいよ!
Welcome! – Laravel PHP Framework

はじめに

Laravelにはartisanという強力なコマンドラインインターフェースがあり、開発作業をサポートするような便利なコマンドがたくさん用意されています。
http://four.laravel.com/docs/artisan

さて、今回はartisanコマンドの自作クラスを作ってみましょう

artisanていうのは、Wikipediaでみると、

アルチザン(Artisan)とはフランス語で職人の意。

とのことです。職人!

How To Step

1. クラスファイルの作成

デフォルトで用意されているartisanコマンドをつかってartisanのためのクラスを作ります。

D:\xampp\htdocs\project>php artisan command:make HelloCommand
Command created successfully.

できました!

Screen Shot 2013-08-09 at 10.59.35

2. コマンドの登録

作成したコマンドをartisan CLIに認識させるための定義をします。
app/start/artisan.phpです。

<?php
/*
|--------------------------------------------------------------------------
| Register The Artisan Commands
|--------------------------------------------------------------------------
|
| Each available Artisan command must be registered with the console so
| that it is available to be called. We'll register every command so
| the console gets access to each of the command object instances.
|
*/

// ↓追加
Artisan::add(new HelloCommand);

認識されているか、listコマンドで確認。

Tomos-MacBook-Air:sample tomo$ php artisan list
Laravel Framework version 4.0.5

(略)

Available commands:

(略)

command
  command:make       Create a new Artisan command
  command:name       Command description.
(略)

Tomos-MacBook-Air:sample tomo$ 

いた。
HelloCommand.phpの、$name, $descriptionがそれぞれリストに表示されました。

3. コマンドクラスファイルの編集

作成されたファイルを編集します。

<?php

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;

class HelloCommand extends Command {
	protected $name = 'sample:hello';
	protected $description = "come to say hello!";
	public function __construct()
	{
		parent::__construct();
	}
	public function fire()
	{
		echo "ばーか\n";
	}
	protected function getArguments()
	{
		return array();
	}
	protected function getOptions()
	{
		return array();
	}

}

$nameがコマンド名、$descriptionが説明、fire()がartisan実行時に、実行されるメソッドです。
arguments, optionsはその名の通りで、使い方はこちら

4. 実行

実行前確認

Tomos-MacBook-Air:sample tomo$ php artisan list
Laravel Framework version 4.0.5

(略)

sample
  sample:hello       come to say hello!
(略)

Tomos-MacBook-Air:sample tomo$ 

認識されていることを確認したので、実行。とうっ

Tomos-MacBook-Air:sample tomo$ php artisan sample:hello
ばーか

できたーん(・ω<) かねこ

artisanCLIcmdcommandLaravelPHPコマンドライン

  kaneko tomo   2013年8月9日


関連記事

Carbonを利用してPHPで日付操作する

PHPで日付系の操作をするときに標準関数のdateとかstrtotimeを使うん…

LaravelでのSymfony脆弱性対応について(CVE-2015-2308)

Symfonyのコードインジェクション(CVE-2015-2308: Esi C…

laravel5をcomja5で日本語化

こんにちは。S.Iです。 梅雨があけましたね。暑い日が続きますね。 さて、この度…


← 前の投稿

次の投稿 →