1回のTCP接続で複数のHTTPリクエストを処理する機能。セッションを提供します。handshaking」の節約です。画像やCSSが多いサイトではKeepAliveをonにすることによりその恩恵を受けることができるでしょう。KeepAlive関連ディレクティブは、以下のとおりです。下記のディレクティブを設定することでKeepAlive機能を制御します。持続的な接続を有効にします。時に有効で、持続的な接続で次のリクエストが来るまでサーバが待つ時間(秒)を設定します。時に有効で、持続的な接続上で許可されるリクエストの数を設定します。以下の設定について考えてみましょう。handshaking」の節約と説明しました。Webサーバとの間で確立した接続が転送終了後も維持され、2回目以降のリクエストではこの接続をそのまま使用できる。良いことだらけに見えるこのKeepAliveにも欠点があります。ひとつの要求が完了してから、コネクションを切断しないで次の要求を受け入れるまでの時間。言い方を変えると「クライアントからのリクエストがなくてもKeepAliveを維持する秒数」ということになります。「リクエストがなくてもKeepAliveを維持する秒数」ここがポイントです。15のままだと、15秒間接続をキープしたままになり、このプロセスは無駄になってしまうということです。短くするほど無駄な接続を減らせますが、短くしすぎると必要なコネクションまで閉じてしまいます。クライアントがコネクションを確立し直す場合が増えます。結局は環境に合わせて適切な値を見つけてくださいってことです。小規模のサイトではあまり気にしない(設定を変えても効果はないと思います)KeepAliveの設定。アクセスが増え、パフォーマンスが低下してきたら一度見直してみると良いかもしれません。苦手という人をよく見かけます。いう私も少し前までは苦手でなるべく避けて通っていたクチです。何が嫌だったのかと思い返すと、単に慣れていなかったのが原因だったような気がします。いう事で、覚えることもそんなに多くないのでサクッと苦手意識を無くしてしまいましょう。最短マッチ+*と組み合わせれば次の文字が最初に現れるまでこの辺りが基本ではないかと思います。あとは習うより慣れろということで実戦で使っていけば苦手意識は無くなっていくはずです。一つだけ、気をつけるポイントは「.(ドット)」はなるべく使わないといったところでしょうか。何でもいい一文字は思わぬものをヒットさせて不具合の原因になります。正規表現は様々なプラットフォームで使えます。phpやjavascriptなどはもちろん、mod_rewriteやmysql、postgresなどのwhere句など。多少の文法は違いはありますが、基本を覚えておけばどんなプラットフォームでもいけます。覚えておいて損はない技術です。2012年8月3日coretechテクログSmartyとCakeの連携についてみなさんこんにちわ☆彡技術ブログ初投稿のni-yoです。cakePHPの連携についての内容です。当社のサイトは言語もフレームワークも様々なものがありますが、その中のサイトの1つにこんな環境があります。■言語:PHP■フレームワーク:cakePHP1.3系■view:Smarty:2.6.26ディレクトリ構造は基本的にはcakeの構造にし、cakeのapp/vendersのしたにsmartyライブラリを設置します。上記のような構造にすると、結果は以下のようになります。?>というお決まりのphpタグを記述する必要はありません。値の引渡しは簡単ですね。Controllerでなくview側でphp関数を使いたい時もあるかと思います。view側でphp関数を用いてencodingをかけたい場合は以下のように記述します。上記のように関数処理をかけたい変数に対して『|mb_convert_encoding:'SJIS':'UTF-8'』とつなげてやると変数に対して関数処理を終了した結果がviewに反映されます。viewでヘルパー使いたい時はCakeのヘルパーも形を変えれば使用できますが、弊社では折角なのでSmartyのヘルパーを使ってます。ヘルパーを用いてセレクトボックスを使いたい場合は以下のように記述します。上記のように記述すると、出力したソースを見ると指定した配列分だけoptionを持ったセレクトボックスが作成されます。ヘルパー等については以下のサイトが参考になります。MB表示側はSJISで記述しないといけない場合もあるかと思いますが、その際に問題が起こります。スマーティの基本的なphp変数の呼び出しは上記したとおり『{』と『}』を使うわけですが、SJISは「{」(0x007b)と「}」(0x007d)に相当するコードをふくんでいることがあります。閲(897B)、顎(8A7B)、宮(8B7B)などがこれに該当します。上記コードはデリミタに含む7Bを含んでいるので、Smartyは{が入っていると判断してしまい、正しく解析できなくなり激しく文字化けします。回避策はググるとだいたい2パターンです。'}}';上記の例はview側のこれはPHPだよってタグを{{と}}に変更してやる方法、これはもうPC側とか管理側をガッツリ{}で組んでたので断念...2プリフィルタとポストフィルタを設定するSmartyテンプレのコンパイル時と出力結果ファイル保存時にエンコーディングを指定する方法です。この方法もフォルダ構成上SmartyライブラリはPC/SP含む全てのviewに影響を与えるので、全てのviewをSJIS変換されてしまうと困るためこれも断念...ですので、弊社としての対策はリテラルタグの挿入です。上記のように、デリミタコードを含む閲のような文字を入れても、リテラルタグを挿入すると文字化けしません。これは、『{literal}』タグで囲まれた中はPHPの変数はありませんよ~っていう意味に出来るからです。あと、Smartyはキャッシュが強力なので開発中は変更部分が切り替わらない、ヘルパーがうまく動作しないなどの不具合をちょいちょい起こしてくれます。うまく動かない時はキャッシュ削除を一度試してみてください。fuelPHPControllerからView::forgeを用いてViewへ値を渡す方法を以下に記載しておきます。問題なく参照することが出来ます。している場合、renderの第2引数で、配列に入れなおすことで対応できます。面倒くさいので、以下のように設定して対応します。上記対応時、以下のエラーが発生する場合があります。その場合、以下のファイルの指定場所を設定することで解決します。