EthnaでCLI(コマンドラインインターフェース)用のプログラムを書く

  • このエントリーをはてなブックマークに追加

Ethnaではゲートウェイを変更することでwebアプリ用のプログラムだけではなくて、サーバーで定期稼働させたりするコマンドラインのプログラムを作ることもできる。
ethnaコマンドを使ってスケルトン作成。feedcrawle2というプログラムの名前で作ってみる。

% ethna add-entry-point --gateway=cli feedcrawle2

file generated [/Users/〜/pj/feeddown/skel/skel.entry_cli.php -> /Users/〜/pj/feeddown/bin/feedcrawle2.php]
action script(s) successfully created [/Users/〜/pj/feeddown/bin/feedcrawle2.php]
file generated [/Users/〜/pj/feeddown/skel/skel.action_cli.php -> /Users/〜/pj/feeddown/app/action_cli/Feedcrawle2.php]
action script(s) successfully created [/Users/〜/pj/feeddown/app/action_cli/Feedcrawle2.php]

これを実行すると、Ethnaのプロジェクトディレクトリに上の実行結果の通りファイルが作成される。

  • ~/bin/feedcrawle2.php
  • ~/app/action_cli/feedcrawle2.php

あとは、webアプリをEthnaで書くときと同じ様にapp/action_cli/以下のModelをコーディングしていけばよい。
プログラムの実行は、

とすればよい。
ActionClassを継承しているので、$this->backend等々、普通に使える。
ただし、コマンドラインの引数を取得する仕組みは無い*1ので、グローバル変数 $_SERVER['argv']から取得する形になりそう。(これが正しいのかは現状、謎。)

今までこの仕組み使わずにそのまま直書きしていたのは愚かであった。徐々に書き直して行こうと思う。

*1:無いように思われる。というのが正解。

(Visited 10 times, 1 visits today)
  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*

意味があるのか無いのか〜

  • このエントリーをはてなブックマークに追加

必要以上に強烈なバスのポンピングブレーキ。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*