カテゴリー ‘ FuelPHP

FuelPHPで使用しているバージョンを確認する方法


こんばんは、@9ensanです。

FuelPHPを利用している時にどのバージョンを利用しているのか確認する方法です。

 

php oil -v

 

よく忘れるのでこのコマンドを忘れないように書いておきました。

FuelPHP 勉強会 東京 vol.2の参加レポート


こんばんは、@9ensanです。

2012年9月23日(日)に「FuelPHP 勉強会 東京 vol.2」に参加してきました。

遅くなりましたがその時のレポートです。

 

久し振りの雨の中「VOYAGE GROUP 8F パンゲア」に到着、15分位前についたのですが100人予定がまだ空席の方が目立つ感じでした。

ん?開始時間になっても座席数は半分埋まっているかどうかぐらい、結構なキャンセル率…。

 

まぁ、そんな感じで開始

@mukakenさんからの開会の挨拶で始まり始まり、「パチパチパチパチ」

続きを読む

有力なPHPフレームワークのGoogle Insights結果 (FuelPHP,Laravel,CodeIgniter,Symfony,CakePHP)


たくさんあるPHPフレームワークの注目度ってどうなんだろうと思って「Google Insights for Search」を使用して調べてみました。

対象としたフレームワークは、

です。

フィルタ:ウェブ検索、全ての国、2012年

意外だったのが「CodeIgniter」の検索数がトップだったことです。

5年位前に「CodeIgniter 1.6」を使い出した頃には、日本では猫も杓子も「CakePHP」だったように思います。

ということで、

フィルタ:ウェブ検索、全ての国、2004年〜2012年9月

やっぱりSymphonyCakePHPが5年前には大人気CodeIgniterも人気が出てきた所ですね。

FuelPHPLavarelは最近人気が出てきているフレームワークですが3大フレームワークが邪魔をしてよく分かりません。

今年の検索量に戻して、それぞれ何処の地域で検索されているのか見てみると

FuelPHP

アメリカと日本です。

日本の検索ボリュームが実は一番あるようです。これは、意外です。

Laravel

もうアメリカでしか検索されていない…。

実は、私は最近FuelPHPよりLaravelの方を利用しています。

で、最初のグラフ良く見てください。

実はこの1ヶ月くらいはFuelPHPの検索量をLaravelが抜いています。

CodeIgniter

東南アジアで人気なんですね。なんでだろ???

Symfony

東ヨーロッパで人気なのかな。

CakePHP

おっインドすげぇ、やっぱり日本でも安定の検索量w

ちょっと思考を変えて「FuelPHP」と「Laravel」を比較してみます。

FuelPHPとLaravelの比較

先ほども言ったのですが、注目度でLaravelFuelPHPを抜いています。

Laravel大注目です!!

検索量がアメリカ日本でしか無いので、2つの国それぞれどんな検索量なのか見てみます。

アメリカ

日本

おお、残念w日本ではLaravelというフレームワークは全く人気なし。

FuelPHPが凄い人気だ。

でも、アメリカではFuelPHPに変わって、人気が出てきているLaravel

日本でも何かで火がつくと一気に追い抜く人気のポテンシャルは持っていると思います。

Laravel 大注目です。

最後に日本で他のフレームワークも含めた検索量を見てみます。

日本のフレームワーク検索量

日本では、CakePHPが大人気です。

ついでSymfonyCodeIgniterFuelPHP

Laravelは全く人気なし。

これを見るとFuelPHPは短期間でどれだけ注目されているのかがよく分かる結果になっており凄いです!

でもやっぱり、Laravelが大注目ですよ!!

検索量からの結果なので一概には言えないですが、これが「Goolge Insights for Search」から見たフレームワークの人気度です。

気になる事柄があったら検索してみても面白いと思います。

FuelPHPのキャッシュライブラリ – config以外でストレージを設定する方法


configの設定以外でのキャッシュの使用方法

今までは、configの設定に従ってキャッシュを使用してきていましたが、

今回はconfigの設定とは異なる設定で、キャッシュを使用する方法です。

以下が、configの設定とは異なる内容での使用方法の例です。

コントローラー

  public function action_forge()
  {
    // ここで使用するストレージ名と設定内容を記述する、
    // ここで設定しなかった、項目についてはcacheのconfigファイルの内容で設定される。
    // 「$config = 'file';」のように、ストレージ名のみを文字列で渡して使用する事も可能
    $config = array(
        'driver' => 'file',
        'expiration' => null,
        'file' => array(
          'path' => APPPATH.'cache_forge'.DS,
        ),
    );
    // String
    $cache = Cache::forge('string', $config);
    $cache->set('cache test');
    $data['string'] = $cache->get();

    // Array
    $a = array(1, 2, array('key' => 'value'));
    $cache = Cache::forge('array', $config);
    $cache->set($a);
    $data['array'] = $cache->get();

    // Object
    $o = new Library_Test();
    $cache = Cache::forge('object', $config);
    $cache->set($o);
    $data['object'] = $cache->get();

    return Response::forge(View::forge('cache/forge', $data));
  }

(configの設定は、fileストレージの動作を確認した時と同様にしてあります)

14,20,26行目のように、Cacheクラスのforgeメソッドを使用してCacheクラスのインスタンスを生成すると、

第2引数で渡したconfigの設定内容でキャッシュストレージに接続に行きます。

動作後のデータを確認すると、ちゃんとキャシュの情報は「cache」ではなく「cache_forge」フォルダに生成されています。

第1引数はキャッシュのキーです。

なんとなく違和感を感じる設定だな…。

キャッシュクラスのインスタンスを生成する時に使用するキー値を設定しているので、すごく違和感があります。なぜ「get」「set」などのメソッドの引数に、キャッシュのキーを取るようになぜ設計されていないのかすごく不思議です。

ちなみにコメントにも記述していますが、第2引数のconfigは配列でなく、ストレージ名を文字列で渡しても大丈夫です。

その場合、設定されていないconfigの情報はcacheのconfigから取得するようになります。

次回は、Redisのストレージを使用している時に気がついた、cacheのsectionについてまとめてみたいと思います。

FuelPHPのキャッシュライブラリ – redis編


今回は、redisストレージ

Redis

まず、cacheのコンフィグファイルをapp配下にコピーします。

cp fuel/core/config/cache.php fuel/app/config/

以下のように「fuel/app/config/cache.php」の内容を設定します。

return array(
  'driver' => 'redis',
  'expiration' => null,
  'cache_id' => 'fuel',
  'redis'  => array(
    'database' => 'default'
  ),
);

4行目の「cache_id」は初期のconfigに入っていませんが、redisストレージのソースの中で、key値を保存しているキーの名前に使用されています。(設定していない場合は「fuel」と言う値が使用されます)

これで「redis」ストレージをキャッシュに使用する設定ができました。

とりあえず、キャッシュを生成して試してみます。

コードの内容は、

コントローラー

public function action_redis()
{
    // String
    Cache::set('string', 'cache test');
    $data['string'] = Cache::get('string');

    // Array
    $a = array(1, 2, array('key' => 'value'));
    Cache::set('array', $a);
    $data['array'] = Cache::get('array');

    // Object
    $o = new Library_Test();
    Cache::set('object', $o);
    $data['object'] = Cache::get('object');

    return Response::forge(View::forge('cache/redis', $data));
}

View

<html>
<body>
<p>Cache - Redis</p>
<div>String:<?php var_export($string) ?></div>
<div>Array :<?php var_export($array) ?></div>
<div>Class :<?php var_export($object) ?></div>
</p>
</body>
</html>

こんな感じです。

この時に使用したLibrary_Testオブジェクトのソースは、

<?php
class Library_Test {
  public static function _init()
  {
  }

  public function __toString()
  {
    return 'Library_Test';
  }

}

こんな感じです。

(Library_Testの設置場所は「fuel/app/classes/library/test.php」です)

でアクセスしてみると、

恒例のエラーがでました。redisをインストールしてませんでした。

ということでインストール(epelリポジトリなので、もしかすると環境によってはyumのリポジトリが見つからない可能性があります。その場合は、こちらを参考にリポジトリを追加するか、自力でphpのmemcached extensionをインストールしてください)

sudo yum install redis
sudo /etc/init.d/redis start

で、再度アクセス

こんな感じになります。

登録されているキャッシュのデータを確認すると

こんな感じでした。

キーの管理が少し他のストレージと違いましたがデータの保存は同じ形で登録されていました。

次回は、configの設定以外でのcacheの使用方法をやってみたいと思います。

return top