Mojolicious::Commands - コマンドラインインターフェース
使い方
Usage: APPLICATION COMMAND [OPTIONS]
mojo version
mojo generate lite_app
./myapp.pl daemon -m production -l http://*:8080
./myapp.pl get /foo
./myapp.pl routes -v
Tip: CGI and PSGI environments can be automatically detected very often and
work without commands.
オプション (for all commands):
-h, --help 特定のコマンドのより多くの情報を取得する
--home <path> アプリケーションのホームディレクトリのパス
デフォルトはMOJO_HOMEの値か、自動的に検知される
-m, --mode <name> アプリケーションのオペレーティングモード。デフォルトは
MOJO_MODE/PLACK_ENVの値か「development」
説明
Mojolicious::CommandsはMojoliciousフレームワークへの対話式のコマンドラインインターフェースです。Mojolicious::Command名前空間の中にある利用できるコマンドを自動的に検知します。
これはコアのコマンドです。いつでも有効になっていて、 これをフォークして新しいコマンドの構築を学ぶための、よいサンプルになっています。
デフォルトで利用可能なコマンドの一覧についてはMojolicious::Commandsのコマンドの項目をみてください。
コマンド
以下のコマンドがデフォルトで利用できます。
cgi
$ script/myapp cgi
CGIをバックエンドにしてアプリケーションを開始するためにMojolicious::Command::cgiを使用します。 通常は自動的に検知されます。
cpanify
$ mojo cpanify -u sri -p secr3t Mojolicious-Plugin-Fun-0.1.tar.gz
ファイルのCPANへのアップロードするためにMojolicious::Command::Author::cpanifyを使用する。
daemon
$ ./myapp.pl daemon
スタンドアロンのHTTP 1.1サーバーをバックエンドにして アプリケーションを開始するためにMojolicious::Command::daemonを使用します。
eval
$ ./myapp.pl eval 'say app->home'
アプリケーションのコードを実行しするためにMojolicious::Command::evalを使用します。
generate
$ mojo generate $ mojo generate help $ ./myapp.pl generate help
Mojolicious::Command::Author::generate::appを使って、短い説明と共に利用できる生成コマンドをを一覧表示します。
$ mojo generate help <generator> $ ./myapp.pl generate help <generator>
短い説明と共に生成コマンドの利用できるオプションを一覧表示します。
generate app
$ mojo generate app <AppName>
完全な機能を備えたMojoliciousアプリケーションのために アプリケーションのディレクトリ構造を生成するためにMojolicious::Command::Author::generate::appを使用します。
generate lite_app
$ mojo generate lite_app
完全な機能を持つMojolicious::Liteアプリケーションを生成するためにMojolicious::Command::Author::generate::lite_app を使用します。
generate makefile
$ mojo generate makefile
アプリケーションのためにMakefile.PLファイルを生成するために、 Mojolicious::Command::Author::generate::makefileを使用します。
generate plugin
$ mojo generate plugin <PluginName>
完全な機能を持つMojoliciousプラグインのディレクトリ構造を生成するために、 Mojolicious::Command::Author::generate::pluginを使用します。
get
$ mojo get http://mojolicio.us $ script/myapp get /foo
リモートホストあるいはローカルアプリケーションにGETリクエストを実行するために、 Mojolicious::Command::getを使用します。
help
$ mojo $ mojo help $ ./myapp.pl help
短い説明と共に利用できるコマンドを一覧表示します。
$ mojo help <command> $ ./myapp.pl help <command>
短い説明とともにコマンドの利用できるオプションを一覧表示します。
inflate
$ myapp.pl inflate
DATAセクションの埋め込みファイルを 本当のファイルに変換するためにMojolicious::Command::Author::inflateを使用します。
prefork
$ ./myapp.pl prefork
スタンドアロンのプリフォークのHTTPとWebSocketサーバーでアプリケーションを開始するために Mojolicious::Command::preforkを使用します。
psgi
$ ./myapp.pl psgi
PSGIをバックエンドにしてアプリケーションを開始するために、 Mojolicious::Command::psgiを使用します。
routes
$ myapp.pl routes $ script/myapp routes
アプリケーションのルートを一覧表示するためにMojolicious::Command::routesを使用します。
version
$ mojo version $ ./myapp.pl version
インストールされているコアあるいはオプショナルなモジュールのバージョン情報 を一覧表示するためにMojolicious::Command::versionを使用します。デバッグのときにとても便利です。
属性
Mojolicious::CommandsはMojo::Commandからすべての属性を継承しており、 次の新しい属性を実装しています。
hint
my $hint = $commands->hint;
$commands = $commands->hint('Foo');
利用可能なコマンドが一覧表示された後に表示される短いヒント
message
my $msg = $commands->message;
$commands = $commands->message('Hello World');
利用できるコマンド一覧表示の前に、表示される短い使用方法です。
namespaces
my $namespaces = $commands->namespaces; $commands = $commands->namespaces(['Mojolicious::Commands']);
利用できるコマンドを検索する名前空間。 デフォルトはMojo::CommandとMojolicious::Commandです。
# コマンドをロードするための他の名前空間を追加
push @{$commands->namespaces}, 'MyApp::Command';
メソッド
Mojolicious::CommandsはMojo::Commandからすべてのメソッドを継承しており、 次の新しいメソッドを実装しています。
detect
my $env = $commands->detect;
環境を検出します。検出できなかった場合はundefを返します。
run
$commands->run; $commands->run(@ARGV);
コマンドをロードし、実行します。デプロイ環境の自動検知は環境変数 MOJO_NO_DETECT により無効にされます。
start_app
Mojolicious::Commands->start_app('MyApp');
Mojolicious::Commands->start_app(MyApp => @ARGV);
アプリケーションをロードし、そのコマンドライン・インターフェースを開始します。 -h/--help, --home,-m/--modeオプションは、 すべてのコマンドで共有され、コンパイル時に@ARGVから解析される ことに注意してください。
# アプリケーションを常に daemon で開始します
Mojolicious::Commands->start_app('MyApp', 'daemon', '-l', 'http://*:8080');
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年6月5日更新)
Mojoliciousドキュメント日本語訳