CakePHP1.2でKtai Library利用時に、組み込まれているテストケースでエラーになる

CakePHP1.2でKtai Library for CakePHP1.2をインストールした後に最初から組み込まれているテストケース「All Core Tests」を実行するとエラーになる。
エラーメッセージはこんな感じ。
# Failed
Identical expectation [Array: 3 items] fails with [Array: 3 items] as key list [0, param, param2] does not match key list [0, 1, 2] at [/var/www/html/project/cake/tests/cases/dispatcher.test.php line 1254]
/var/www/html/project/cake/tests/cases/dispatcher.test.php -> DispatcherTest -> testDispatch

とにかくだーっといくつかエラー発生。

んで、いろいろ調べてみたらKtai Libraryをインストールした際にapp/config/routes.phpへ追加した以下の一文が悪さしている模様。
Router::connectNamed(array(), array('argSeparator' => '~'));

がこれをコメント化したらちゃんと動いた。

まあ、わざわざテストケース書くのもなあと思うので、コレで良しとしよう。
ちゃんとしたい人は、パラメータを渡す時のセパレータをコロンからチルダに変えてあげれば上手く行くはずなんだけど、cakeディレクトリに入っているテストケースを触ることになるので、ちょっと嫌だなー。

Lisa Loeb - Firecracker

Firecracker

ずーっと昔から購読していた音楽系のブログが、1年ぶりに更新という眠りから覚めた記念に音楽のエントリーを書くことに。

実は最近Lisa Loebがマイブーム。
結婚してたり、子供向けのアルバム作っていたりと意外と今でもしっかり活動していてびっくりの彼女だけど、彼女といえば、やはり「Stay」。
けど、そのアルバムを今聴くと若さを感じる。
背伸びしているのがわかるというのか、それが魅力だったのかな?
しかし、この2ndアルバムは今聴いても意外と大人。
一気に完成度が上がった感じで凄いなーと。
評判もこのアルバムが一番良いみたいだし。

最近こういうアコギの聴き易い女性シンガーの曲ってあんまり聴いてなかったので、新鮮。
あー、最新作の「Camp Lisa」欲しいなあ。
MySpace聴く分だと凄く良いんだよなー。

Lisa Loeb - MySpace

ダイレクトメッセージを通知するメールのタイトルの修正のお知らせ

2010/3/4にリリースした「TwitMailBox」ですが、早くも修正のお知らせです!


■ダイレクトメッセージを通知するメールのタイトルの修正
A) ダイレクトメッセージの作成日の表記フォーマットの変更
「YYYY-MM-DD HH:MM:DD」

「HH:MM:DD」
ほぼリアルタイムで通知しているので、年月日はいらないだろということで、年月日を削ってみました。
少しでもパケット節約!

B) ダイレクトメッセージの作成日が日本時間になっていなかったのを変更
9時間の時差が含まれていなかったので変更しました。
今まで、9時間前の時間が表示されちゃってました、すんません!


■現在の登録状況
現在の登録者数は10数名って感じです。
初日に10人程がーっと登録して頂いて、現在は早くも落ち着きました・・・。
アクセス数も落ち着いております。

んー、意外と需要無かったかしら・・・。
最近広報活動も大切なんだなと思うようになったので、Twitterでつぶやいたり広める努力もしてみたいと思います。
これも勉強勉強。

機能面でも自分が使い易いようにコツコツブラッシュアップしていけたらと思います!

CakePHP1.2のバリデーションでurlがチルダをエラーにしてしまう

ということで、タイトル通り。

http://hogehoge.com/~foo

みたいなチルダが入っている値だと、入力エラーになる。

調べてみると、ちらほら同じような人が見つかる。
CakePHPのvalidateで、チルダが入っているとURLとして認識してくれない « 15Pub
CakePHP-ja tumblr - Validation::url() が URL の ~ に反応する件への

けど、具体的な解決策が見つからなかったので、コードを晒しておく。
# app/app_model.php

function url($data, $strict = false) {
	$check = is_array($data) ? array_shift($data) : $data;

	$_this =& Validation::getInstance();
	$_this->check = $check;
	$validChars = '([' . preg_quote('~!"$&\'()*+,-.@_:;=') . '\/0-9a-z]|(%[0-9a-f]{2}))';         // 「~」を追加
	$_this->regex = '/^(?:(?:https?|ftps?|file|news|gopher):\/\/)' . ife($strict, '', '?') .
		'(?:' . $_this->__pattern['ip'] . '|' . $_this->__pattern['hostname'] . ')(?::[1-9][0-9]{0,3})?' .
		'(?:\/?|\/' . $validChars . '*)?' .
		'(?:\?' . $validChars . '*)?' .
		'(?:#' . $validChars . '*)?$/i';
	return $_this->_check();
}


参考サイトを真似してvalidCharsにチルダを追加しておいた。
cake/libs/validation.phpに手を入れるのは嫌なので、app/app_model.phpに上記を追加。

んー、チルダをURLに含むべきではないってのはそうかもしれないんだけど、柔軟に対応して欲しいところだね。

※2010/05/06 追記 1.3では無事問題ないようです

CakePHP1.2+Ktai LibraryでcakeErrorを使いたい

CakePHP1.2にてKtai Libraryを使って携帯サイトを開発中に躓いた。
僕の場合、モバイル用のviewのlayout.ctpの一行目がこんな感じ。
<?xml version="1.0" encoding="<?php echo $ktai->options['output_encoding']; ?>"?>

いきなりKtai Library用のHelper呼んでるんだよね。
んで、
Notice (8): Undefined variable: ktai 

なんてオシャレなエラーメッセージを出してくれます。
「$ktaiなんて無いよ、バカ」と言われても、こちらとしては、
「Controllerに設定しているだろ、バカ」ということになるんですが、cakeError()のソースコードを追ってみたら、Error用に独自にController用意されているみたいで、こりゃダメだわと。

んで、ネットで検索してたどりついたのがこちら。
CakePHPを本気で勉強: cakeError:ErrorHandlerで独自ヘルパーを使用する

それをちょっとカスタマイズして出来たのがコレ。
# app/app_error.php

/**
 * error 
 * 
 * @param mixed $params 
 * @access public
 * @return void
 */
function error($params){
    $this->controller->helpers[] = 'ktai';
    return parent::error($params);
}
/**
 * error404 
 * 
 * @param mixed $params 
 * @access public
 * @return void
 */
function error404($params){
    $this->controller->helpers[] = 'ktai';
    return parent::error404($params);
}

error404()もついでにやっておいた。

つうか、ネット上にこういった情報が皆無なのにビックリ。
Ktai Libraryってメジャーでしょ?
みんなエラー処理どうしてんの?
謎だわー。
≪ 前のページ 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 次のページ ≫ 9 of 165

アーカイブ

2010

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com