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.
できました!
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 ばーか
できたーん(・ω<) かねこ