カテゴリ: プログラミング, API, C/C++, Javascript/Java, PHP, CakePHP, WSH/VBScript

ページ: << 1 2 3 4 5 6 7 8 9 10 11 ... 16 >>

PEAR::Cache_Liteを使ってみる

パーマリンク 2009/11/11 23:22:13 著者: kumaold メール
カテゴリ: プログラミング, PHP

CakePHPだと標準のキャッシュ機能が便利でよく使っていますが、CakePHPの使えない環境で簡単に似たようなことができないか調べてみました。

PEARのライブラリにCache_Liteというのがあり、これで安全でお手軽なデータキャッシュが実装できます。


使い方も非常に簡単です。サンプルコードを置いときます。

// PEAR::Cache_Lite
require_once 'Cache_Lite.php';
$option = array(
    'cacheDir' => './cache/',  // キャッシュの保存場所(パーミッション707以上)
    'lifeTime' => 60 * 60,     // キャッシュの生存期間[秒]
);
$cache = new Cache_Lite($option); 

$cache_id = $url;
// キャッシュにデータがあれば利用
if ($data = $cache->get($cache_id, 'group')) {
    $html = $data;
// なかったのでデータを取得し、キャッシュする
} else {
    $tmp = file_get_contents($url);
    $cache->save($tmp, $cache_id, 'group');
    $html = $tmp; 
}

echo $html;

Cache_Lite::get ($id, 'group') 指定IDのキャッシュを返す
Cache_Lite::save ($data, $id, 'group') データを指定IDでキャッシュ

'group'でキャッシュのグループ化をすることで、同一ディレクトリに複数アプリからのデータをキャッシュをする場合での名前衝突を防ぎます。


ドキュメントには"高トラフィックな Web サイト向けに最適化されていますので、本当に高速でかつ安全です"とあるので、汎用的に使えそうです。

PEAR入門 PHP標準ライブラリを極める!PEAR入門 PHP標準ライブラリを極める!
翔泳社 2005-09-09
売り上げランキング : 121398
おすすめ平均

DB なし Model で FormHelper を使う方法

パーマリンク 2009/11/06 11:38:35 著者: kumaold メール
カテゴリ: プログラミング, PHP, CakePHP

CakePHPはDBを使用する環境で使うのがほとんどですが、そうでない場合もあります。そんなときは Model でこんな風にすればいいのはご存知かと思います。

class Example extends AppModel {
    var $useTable = false; // DBを使用しない
}

ところが、これを設定した場合でも View で FormHelper を使おうとすると、どういうわけか DB に接続しにいってしまいます。

たとえば、DB を使用しないメールフォームを作ろうとした場合などなど。
かといって便利なバリデーション機能を使わないのはもったいないです。

そこで、こんなコードを Model に設定すればいいようです。

var $_schema = array('id' => array('type' => 'integer'));

これでとりあえず FormHelper でのエラーは出なくなりました。
・・・が、今度はバリデーションのところでまた DB に接続しようとするエラー。

仕方ないので、 database.php にダミーの DB を設定したら何も出なくなりました。
根本的な解決策があったら教えてください。

参考記事
  formヘルパーをテーブルなしモデルで使用するとエラーの回避方法

type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

Javascriptでフリガナ自動入力

パーマリンク 2009/10/28 11:02:47 著者: kumaold メール
カテゴリ: 仕事, プログラミング, Javascript/Java

データ入力画面のある案件で、名前とフリガナを入力するときに2回同じワードをタイプするのは面倒だよな~と思って、フリガナ自動入力機能をつけてみました。

これを利用することで、漢字変換前の入力段階から自動的にフリガナを入力させることができます。


試しに設置してみたサンプルがこちら
 フリガナ自動入力ライブラリ autoKana.js のサンプル


参考記事
 Rubricks Project - autoRuby.jsをDISってみる


CakePHP環境での設置手順
1. prototype.js, autoRuby.js を /app/webroot/js に設置
 (autoRuby.js はPHPの出力文字コードで保存する)
2. view にhtmlヘッダにjsを読み込ませるためのコードを追加する
3. new AutoKana('name_id', 'kana_id', [options]) する

CakePHP での view の書き方

<?php $javascript->link('prototype', false); ?> 
<?php $javascript->link('autoKana.js', false); ?> 
<?php $this->addScript($javascript->codeBlock("
window.onload=function(){
    var auto_kana = new AutoKana('TestName', 'TestKana', {katakana:true, toggle:true});
}
")); ?>
<?php e($form->create('Test')); ?> 
名前:<?php e($form->text('Test.name')); ?> 
カナ:<?php e($form->text('Test.kana')); ?> 
<?php e($form->end()); ?> 


大元のサンプルどおりに new AutoKana() するとエラーで動いてくれなかったので、windows.onloadで実行するようにしたら動作するようになりました。

これで少しは入力時の操作性が向上するかな。
 

振仮名の歴史 (集英社新書)振仮名の歴史 (集英社新書)
集英社 2009-07-17
売り上げランキング : 24348
おすすめ平均

type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

<< 1 2 3 4 5 6 7 8 9 10 11 ... 16 >>

一六社で働くITエンジニアのブログ。

普段はWeb系システム開発と地元のPCサポートをやってます。いつの間にやら会社に8年目。
技術ネタ中心に日々の仕事と生活と趣味やらを気が向いたら書いてます。

2017年3月
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

検索

XMLフィード

16ブログ     powered by b2evolution free blog software