2011-07-18 5 views
0

I)は、(IS_MOBILEをテストされて:FuelPHP - エージェント:: IS_MOBILE()メモリ問い合わせ

PHPプロファイラは、それが返すために(アプリ内IS_MOBILE()関数を使用していない差し引いた後)2.25メガバイトを取って報告

if (Agent::is_mobile()) 
{ 
    $content = View::factory('mobile\viewname'); 
} 
else 
{ 
    $content = View::factory('standard\viewname'); 
} 
正しいか間違っているか。

私のbrowscap.cacheファイルのサイズは433KBです。チェックするために、この機能のメモリ使用量を少なくする計画はありますか?今では、アプリにあまりにも多くのメモリを追加していたので、この関数を削除する必要がありました。

答えて

1

最良の解決策は、php.ini(http://www.php.net/manual/en/misc.configuration.php#ini.browscap)を使ってbrowscapファイルを使用するようにPHPを設定することですエージェントクラスはget_browser()を使用します。

これが不可能な場合、エージェントクラスではこの関数をシミュレートし、browscapファイル自体を取得できます。 Jelmer氏によると、設定されたURLを変更することで、このファイルをlightバージョンで置き換えることができます。

ただし、デフォルトでは、このファイルは1週間に1回しか取得されません。フェッチした後は、ローカルで解析、最適化、キャッシュされます。ルックアップを行うには、このキャッシュファイルをロードする必要があります。このキャッシュファイルは、表示されるメモリ使用量を考慮に入れることができます。メモリに保存されていないので、memory_get_peak_usage()をチェックするだけでメモリ使用量を確認してください。

ルックアップの結果もキャッシュされるため、同じブラウザが次に来るときに情報がキャッシュから取り出され、ブラウズキャッシュはロードされません。

1

このような特定の燃料に関する質問をするのは本当に最適な場所ではありません。私たちは非常にその理由のためにフォーラムを開催しています。

つまり、agents.php設定ファイルをapp/configにコピーし、http://の代わりに "http://browsers.garykeith.com/stream.asp?Lite_PHP_BrowsCapINI"を使用するように編集することができますbrowsers.garykeith.com/stream.asp?BrowsCapINI "はファイルサイズの50%強を節約します。それはより少ないブラウザを認識します。

これはWanWizardによって書かれたので、あなたが確かに知りたいのであればフォーラムで彼に尋ねる必要があります。しかし、私が知る限り、これはユーザーのブラウザについてもっと知る最も信頼できる方法です。私はライト版をデフォルトにするようにWanWizardに提案します。