By Hoshino

0

FuelPHPでLESSを使えるようにする

Categories : FUELPHP

CSSの記述が5倍速くなると言われているLESSをFuelPHPに入れてみようというお話です。

今回はこちらのFuelPHP用にパッケージ化されたfuel-lessを使用します。クローンしておきましょう。
⇒ https://github.com/kriansa/fuel-less

git clone –recursive git://github.com/kriansa/fuel-less.git

7ステップに分けて実装していきます。

1.assetsまでのパスをdefineしておく

まずはassetsまでのパスを次のようにASSETSPATHとして定義しておきます。

public/index.php

/**
* The path to the framework core.
*/
define(‘COREPATH’, realpath(__DIR__.’/../fuel/core/’).DIRECTORY_SEPARATOR);

/**
* The path to the assets.
*/
define(‘ASSETSPATH’, realpath(__DIR__.’/../public/assets/’).DIRECTORY_SEPARATOR);

2.assetsにlessとccssディレクトリを作成

lessはLESSファイルを置く場所で、
ccssはコンパイルされたCSSファイルが作成される場所となります。名前は任意で結構です。

3.クローンしたfuel-lessをpackagesディレクトリに追加

ディレクトリ名をfuel-lessからlessに変更したほうがなんかスッキリするのでしましょう。

4.LESSで使うディレクトリを指定する

先ほどassets内に用意したディレクトリを指定します。
fuel/packages/less/config/less.phpをfuel/app/config/less.phpにコピーし次のように書き換えてください。

fuel/app/config/less.php

return array(
        ‘asset’ => array(
                ‘less_source_dir’ => ASSETSPATH.’less/’,

                ‘less_output_dir’ => ASSETSPATH.’ccss/’,

                ‘less_compiler’ => ‘Less\\Compiler_Node’
        )
);

5.LESSをAlways Loadに追加

appのconfigに次のように追記し、lessパッケージを読み込むようにします。
デフォルトだと配列が全体的にコメントアウトされているのでそれを解除してください。

fuel/app/config/config.php

/**************/
/* Always Load */
/**************/
‘always_load’ => array(
        ‘packages’ => array(
                ‘less’,
                //’orm’,
        ),

6.assetの読み込みディレクトリに追加

ccssからもcssファイルを取得出来るようにします。
fuel/core/config/asset.phpをfuel/app/config/asset.phpにコピーし、foldersのcssの配列にassets/ccssを追加してください。

fuel/app/config/asset.php

‘folders’ => array(
        ‘css’ => array(‘assets/ccss’),
        ‘js’ => array(),
        ‘img’ => array(),
),

7.パーミッションの整理

実行ファイルとか書き込みディレクトリがあるのでそのパーミッションを変更します。

nodeに実行権を与える。(お使いのサーバーに合わせたものだけで大丈夫です。だいたいlinux。)

chmod +x fuel/packages/less/vendor/node/linux/node
chmod +x fuel/packages/less/vendor/node/mac/node
chmod +x fuel/packages/less/vendor/node/win32/node.exe

ccssを777に変更する。

chmod 777 public/assets/ccss/

※余談ですが、fuelPHPを初期インストールした場合fuel/app/cache、fuel/app/logs、fuel/app/tmpのパーミションも777に変更しましょう。

Node.jsが動かなければLessphpを

Node.jsが動かない時は、Lessphpをコンパイラーに指定してください。

fuel/app/config/less.php

return array(
        ‘asset’ => array(
                ‘less_source_dir’ => ASSETSPATH.’less/’,

                ‘less_output_dir’ => ASSETSPATH.’ccss/’,

                ‘less_compiler’ => ‘Less\\Compiler_Lessphp’
        )
);

以上で準備完了です。
lessディレクトリ内にLESSファイルを作成し、viewファイルとかで

echo Asset::less(‘test.less’);

なんかを呼んでみましょう。
無事にコンパイルされたccss内のCSSファイルが呼ばれていればOKです♪

LESSはコーディング速度も速くなるし、
CSSの記述にミスがあればエラー通知してくれるし、
なんかカッコいいしの良いこと尽くめなので重宝しております。

fuelPHPでLESSを使ってみたい!
なんて方の参考になれば幸いです。

ではでは♪