LoginSignup
16
13

More than 5 years have passed since last update.

FuelPHP1.8 + twig 環境を構築

Last updated at Posted at 2016-05-24

1.はじめに

Smarty もいいけど twig もね。と言われたので twig を FuelPHP で使ってみようと思い実験。VirtualBox + Vagrant + ScotchBox 環境で実行しました。

ScotchBox の取得と、インストール方法は、以下のサイトに詳しいです。
https://box.scotch.io/

2.FuelPHP を、サーバーで動くようにします。

http://fuelphp.com/ から、FuelPHP1.8 をダウンロードして解凍したものをサーバーに転送します。当方は、これだけで動きました。

3.twig を使えるようにします。

/composer.json ファイルを編集して、"require" の項目に twig/twig" : "1.*" を追加します。以下の例では、最終行に追記しています。一個前の行の行末に、"," を付けるのを忘れないようにします。

/composer.json
    "require": {
        "php": ">=5.3.3",
        "composer/installers": "~1.0",
        "fuel/core": "1.8.*",
        "fuel/auth": "1.8.*",
        "fuel/email": "1.8.*",
        "fuel/oil": "1.8.*",
        "fuel/orm": "1.8.*",
        "fuel/parser": "1.8.*",
        "fuelphp/upload": "2.0.6",
        "monolog/monolog": "1.5.*",
        "phpseclib/phpseclib": "2.0.0",
        "michelf/php-markdown": "1.4.0",
        "twig/twig": "1.*"
    },

4.cpmposer の実行

以下のコマンドを実行します。数分必要でしたが、2016/05/24 時点での最新の twig 1.24 がインストールされました。

php composer.phar update

6.config.php を更新

always_load に、parser パッケージを追加しします。

/fuel/app/config/config.php
'always_load' => array(
  'packages'  => array(
    'parser',
  ),
),

6.使ってみる

view の拡張子を .twig にします。view については、http://fuelphp.jp/docs/1.8/general/views.html が参考になります。

拡張子を.twigにする例
return View::forge('home/index.twig', $data);

面白いことに、拡張子に .twig を指定しないと、標準の方法で出力されるので、拡張子の書き方で出力方法を混在させられるようです。

7.twig 内で、FuelPHP の関数を使う

/fuel/packages/parser/classes/twig/fuel/extension.php の中に、twig で使える、FuelPHP の関数が記載されています。例えば Form::open は、form_open に置き換えられます。

標準の方法
<?php echo(Form::open(array('action'=>Uri::create('index'), 'method'=>'get'))); ?>
twigで書く場合
{{ form_open({'action':url('index'), 'method':'get'}) }}

8.twig の動作環境を設定するには

/fuel/app/config/parser.php に記載がありますので、こちらの twig 部分を変更します。

9.twig を機能拡張するには

以下に、書きました。
https://c5.yorozu-1.com/tech/fuelp/twig_extension

16
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
13