フレームワークは便利ですが、Webアプリのためのもので、コマンドラインで動作させるような処理を行わせるには苦労します。Fuelphpではoilツールから、フレーム内部を呼び出させるようになっています。
実は、この記事を書いているCMSでエディターとして、JCEを使っているのです。Joomla用のTinyMCEです。
通常の文章を書くには、とても良いのですが、プログラムのコードやhtmlを書くときに、とても苦労します。(調査も兼ね、最新の安定版を入れるようにしていますが、毎回、なにか別のバグが発生するのです。)
スペシャルキャラクターを自動的に変換してくれるのですが、特定の場所で行わなかったり、勝手に空行を増やしたり、行を削ったりで、修正に困ります。
前回の記事も、html中のコメントが変換されず、それが原因で、内容が表示されていませんでした。
そうした変換してくれるサイトがあったはずと、検索しましたが、ヒットしません。昔はたくさんあったのに、なくなっちゃったんですね。
しかたなく、自分でhtmlspecialcharsを通すだけのフィルタープログラムを作ろうと思いました。どうせなら、Fuelの機能を使ってやろうと言うわけです。
app/tasks/hs.phpです。使い方は、php oil refine hs < 入力ファイル > 出力ファイル です。
<?phpnamespace Fuel\Tasks;class Hs
{
public static function run()
{
$lines = preg_split('/\n/', file_get_contents("php://stdin"));
foreach ($lines as $line)
{
if ($line !== "")
{
$line = htmlspecialchars($line);
echo "$line\n";
}
}
}
}
簡単なプログラムですが、実務で定期的なバッチ処理なんかを実行する場合や、コマンドでフレームワークで実現しているシステムの情報を表示するようにしたい時のヒントになるでしょうから、書いておきます。
oilのrefineコマンドが、app/tasks下のプログラムを呼び出せる、それはfuelのフレームワークの中で動くので、改めてDBの情報設定したりする手間もかからない。そういうことですね。
| Fuelphpのパッケージを理解するためにTinyMCEを導入< 前 | 次 >Fuelphpのテンプレートクラス |
|---|
| < 前 | 次 > |
|---|