nazolabo

フリーランスのWebエンジニアが近況や思ったことを発信しています。

symfonyでrhacoのテンプレートエンジンを使うプラグイン

sfRhacoViewPluginを作りました!

インストール

http://highfreq.net/dev/sfRhacoViewPlugin-0.1.tgz
から直接ダウンロードしてください。PEARチャンネルは作ってないのでsymfonyコマンドでのインストールはできません。
ダウンロードしたものをプロジェクトのpluginsフォルダに入れてください。

設定

apps/[アプリケーション名]/config/app.ymlに以下を追加(パスはrhaco本体があるフォルダ)

all:
  sfRhacoView:
    class_path: /path/to/rhaco

apps/[アプリケーション名]/config/module.ymlに以下を追加(ファイルがない場合は作成)

all:
  view_class: sfRhaco

もちろんグローバルのconfigに設定してもmodule単位のconfigに設定しても大丈夫だと思います。

使用

テンプレートの拡張子はhtmlになります。注意してください。

layout.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<?php echo include_http_metas() ?>
<?php echo include_metas() ?>

<?php echo include_title() ?>

<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
{$sf_data->getRaw('sf_content')}
</body>
</html>
actions.class.php(一部)
  /**
   * Executes index action
   *
   */
  public function executeIndex()
  {
    $this->msgs = array('rhaco', 'template');
  }
indexSuccess.html
<rt:loop param="msgs" var="msg">
{$msg}
</rt:loop>

ヘルパーは今のところいい呼び出し方がなかったのでphpコードで直接呼んでください。

注意

  • sfSmartyViewPluginやsfPHPViewPluginからのコピペが多いのでライセンスはそのあたりに準拠してるつもりです。まずい場合はこっそり教えてください。
  • partialやcomponentの挙動は確認してません。
  • キャッシュは一応settings.ymlのon/off設定が反映されます。ヘルパーはキャッシュされません。