ろむのシ的メモ+α

Web系のブラウザゲーのツールとか作ったりつくらなかったりしてます

cakephpのCacheを使ってみた

cake1.2で拡張されたらしいcacheを使ってみた
コントローラ内で

<?
$ary = array();

$data = new stdClass;
$data->test = hoge;
$ary[] = $data;
$ary[] = $data;
$ary[] = $data;
Cache::write('key',$ary);

こんな感じで書き込みはできたんだけど

<?php
$read = Cache::read('key');

で戻ってきた値をdumpすると

array(3) {
  [0]=>
  object(stdClass)#1 (1) {
    ["test"]=>
    string(4) "hoge"
  }
  [1]=>
  object(stdClass)#1 (1) {
    ["test"]=>
    string(4) "hoge"
  }
  [2]=>
  object(stdClass)#1 (1) {
    ["test"]=>
    string(4) "hoge"
  }
}

が期待値だったんだけど

array(3) {
  [0]=>
  string(6) "object"
  [1]=>
  string(6) "object"
  [2]=>
  string(6) "object"
}

だった
なんで?
使い方間違ってんのかな・・・
他に探してもあんまり良い情報無いし・・・
やっぱバグ?謎だ

cakephpのAuthComponentについて

cakeでユーザログインとかを自動でしたくて
authコンポーネント使ったんだけど
authさせたくないアクション等が出てきた。

actionMapから消せば良いかなーと思って
色々やったんだけど駄目だった

で、順を追って色々調べていくと
allowというメソッドがあってそれに配列でアクションをしてやれば良いみたい
denyもあったけど何に遣うんだろ・・・
使う機会があれば調べよう・・・

cakephpのメモ

なんでかcakephpをやる事になったのでメモ
使用バージョンは1.2
んでDB作ってcakeの設定してviewとかmodelとかを

#./cake bake

で作成
ここまでは良いんだけどcontroller作る時に
scaffoldを使うほうにしてはまった

これを使うとカスタムビューは使えないっぽい?
(多分なにかしらの設定方法があるんだろうけど・・・)

なのでcontrollerをscaffold使わずに作り直した

jcode.pl

今日自分のサイトのBBSのスクリプトを修正してた。
自分のサイトのBBSといっても1から作った物ではなく
CJ-ClubさんのCBBSを改造したもの

perl自体嫌いな方の言語なので放置プレイだったのだが
修正が必要になった&今回の修正無駄に時間かかってしまったのでメモ代わりに書いておく。

今回作ってた物は、スパム対策フィルタ。
まぁ、簡単に言うと禁止ワードがあったらエラーを返すやつ
時間かかったのはjcode.plによる文字列変換でちょっとはまったから。
まぁperlでマトモニ何か書くの初めてだから仕方ないよね・・・


内容はこんな感じ。

$str = 'ABC';
jcode::tr( \$str, '0-9A-Za-z ', '0-9A-Za-z ' );

こんな感じで投げて
期待値としてはABCだった。
しかし戻ってきたのはまったくの別物だった
まぁファイルがSJISだったてーのと
trの中に書いてある'0-9A-Za-z 'がSJISなのが原因らしい
自動で文字コードの統一してくれたらいいのに・・・

で、変更したのがこれ

$str = 'ABC';
$trStr = '0-9A-Za-z ';
jcode::convert(\$trStr,'euc');
jcode::convert(\$str,'euc');
jcode::tr( \$str, $trStr, '0-9A-Za-z ' );
jcode::convert(\$str,'sjis');

やっと期待する結果が返ってきた。

amazonさんからのプレゼント

そうそう今日欲しかった物が2つ届いた
送ってくれた人はAmazonさん
送ってくれた物は↓の2つ
amazon:Sound Blaster 5.1 SB5.1
amazon:ダークブラウン JCM-561/TD

簡単に言うと
サウンドカードとコーヒーメーカー

サウンドカード:オンボードのサウンドチップが落雷により破壊
コーヒーメーカー:前から欲しいと願っていたから

2ヶ月ぶりのサウンドも良いし、コーヒーメーカーで入れたコーヒーもうまい
評価より個人的にはよかったので満足いってる

おち・・・難しいので諦めよ・・・

メソッドの呼び出しの違い

スタティックなメソッド呼び出しと
インスタンスを生成してメソッドを呼び出す場合の違い

以前にちょっとどれぐらい処理に差があるか
気になったので調べてみた
因みにphpのバージョンは5.1.6
書いたコードは以下

<?php
class Hoge {
    function fuga() {
        return;
    }
}

// スタティックな呼び出し
$time_start = microtime(true);
for($i = 0; $i < 10000;$i++) {
    Hoge::fuga();
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo $time.'<br />';

// インスタンス生成した呼び出し
$hoge = new Hoge();
$time_start = microtime(true);
for($i = 0; $i < 10000;$i++) {
    $hoge->fuga();
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo $time;
  ┃スタティックコール        ┃インスタンス生成       ┃
01┃0.062727928161621┃0.023082971572876┃
02┃0.063868999481201┃0.023293972015381┃
03┃0.062108993530273┃0.022778987884521┃
04┃0.064042091369629┃0.023115873336792┃
05┃0.062854051589966┃0.023226022720337┃
07┃0.063203096389771┃0.02252197265625 ┃
08┃0.062053918838501┃0.022697925567627┃
09┃0.061697959899902┃0.022702217102051┃
10┃0.062878131866455┃0.022661924362183┃

大体3倍の差がありました
これ初めて結果を見たときはびっくりしました
逆にした場合もほぼ変わらない感じです