Transitionコンポーネント1.0をリリースします。

6/19追記:@k1LoWさんが紹介記事を書いてくれました。ありがとうございます! 概要 @k1LoWさんの多大な助力もあり、多くのバグフィックスと新機能の追加がありました。 トータルで89のテストケースがパスし、実践投入が現実的になりましたので、ここに1.0を…

気絶するほど簡単な自動ログインの実装

注意 この実装はクッキーにユーザ名とパスワードを保持させていますが、パスワードを保持させるのは大変危険なので、実際のアプリケーションで動かす場合は時限つきAuthorizeトークンを発行してそれを保持させる実装にするなど、クッキー盗聴対応を必ずしま…

paginateオプションをモデルに移行する(改善・修正版)

過去記事の問題点 Paginateオプションをモデルに移行する - 24時間CakePHP http://d.hatena.ne.jp/hiromi2424/20100426/1272289702 では、paginateオプション内に"order"や"limit"が無いため、これらオプションを指定すると動作が謎になってしまいました。 …

joinsオプションを生成するMatchableビヘイビア

仕様変更しました。2010/6/06 13:00 find('matches')といった書式は破棄されました。'jointo'パラメータの指定のみで動作するようになりました。 この変更によりpaginateCountが適切に動作するようになりました ソースコード http://github.com/hiromi2424/M…

第5回CakePHP勉強会@Tokyoに参加・発表してきました。

イベント詳細ページ http://events.php.gr.jp/events/show/95 参加概要 自身初めての勉強会参加でした。にも関わらず、発表をすることになり、いきなりプレッシャーがかかりましたが、このチャンスは逃げちゃだめだ逃げちゃだめだと自分に言い聞かせなんとか…

slideshare.netのスライドの埋め込みの仕様変更

はてなダイアリーの記事にslideshare.netのスライドが埋め込めるようになっていますが、slideshare.net側でembedの仕様変更がありました。 <object id="__sse4348352" width="425" height="355"> </object>

CakePHPとPHPUnit(訳)

この訳について CakePHPのコアデベロッパーの中心となる、mark storyがCakePHP2.0のテストのフレームワークをSimpleTestからPHPUnitに変更するということについて、経緯とその有用性、移行についての悩みどころについて詳細な記事を書いてくれました。 元記…

CakePHP2.0の概要(訳)

注意 この訳は現時点(2010/5/10)での暫定的なドキュメントの対訳になります。 完全な情報は、各セクションの先頭にある元ページ(英語)を参照してください。 これらの最新の対訳を1.3のときと同様に翻訳サイトにアップするかもしれません。そのときはこのブ…

多言語化するときのConfig.languageの値

本題 カレントの言語を指定するには、次のようにすると思います。 以下、この例でいう'ja_jp'を識別子と呼びます。 さて、識別子が、l10nのカタログ(のキー)に存在するとき、l10nはそれに対応する「locale」「localeFallback」といった値を、languagePath…

Paginateオプションをモデルに移行する

注意 改善記事を書きました。この記事の例ではうまく動きません。 paginateオプションをモデルに移行する(改善・修正版) - 24時間CakePHP http://d.hatena.ne.jp/hiromi2424/20100609/1276076490 概要 Paginatorを使うとき、group byして集計関数を使った…

ClassRegistry徹底解剖

ClassRegistryについてごく詳細までまとめられている日本語の記事が見当たらないので、纏めてみようと思います。 ClassRegistryとは シングルトンパターンのクラスのオブジェクトをkeyを元に包括的に管理をします。 生成・初期化・生成済みオブジェクトの参…

CakePHP1.3 RC3とCakePHP1.2.6のベンチマーク比較

環境 OS Windows Vista 32bit Home Edition PHP5.2.6 APCなし mysql Ver 14.14 Distrib 5.1.42, for Win32 (ia32) セットアップ githubのダウンロードページからそれぞれのアーカイブを取得して展開、以下のように配置 WEBROOT/cakebench/12 WEBROOT/cakeben…

TimeHelperを使って多言語対応の日付・時刻を表示する

CakePHP1.3からは、TimeHelperでi18nFormat()というメソッドが使えます。 http://book.cakephp.org/ja/view/1566/View-と-Helper 概要 このメソッドは、strftime()の書式を与えると、アプリケーションのロケール情報に基づいて日付・時刻を返します。 setloc…

(速報)1.3のi18nFormat()はまだ使ってはいけない

CakePHP1.3では、Time Helperを使うことにより、日付/時刻の表示の多国後対応が容易になりました。 http://book.cakephp.org/ja/view/1579/Library-classes これは少なくとも自分にとって非常に嬉しいニュースでした。 というわけで嬉々として試してみたんで…

ページの遷移を管理するTransitionコンポーネント

Transitionコンポーネント1.0をリリースしました。 http://d.hatena.ne.jp/hiromi2424/20100617/1276757385 ソースはこちら http://github.com/hiromi2424/TransitionComponent 画面右上あたり「Download Sources」をクリックすると、アーカイブがダウンロー…

CodeIgniterはもっと日本で流行って欲しい

まず次のGoogleトレンドを見て欲しい。 日本の場合 世界の場合 (※なんでこれ入ってないの!?ってのがあったら教えてください。) 世界トレンド 世界トレンドでは、2009年初頭には、CodeIgniter(以下、CIと略すことがある)は他の有名フレームワークに比べ…

CakePHP1.3の新機能などについて

和訳をしていて気づいた点をあげていきます。 SessionHelper と SessionComponent 罠なのは自動的に読み込まれなくなったことです。 最悪真っ白な画面が出力されてどつぼにはまりますので注意。 Router Routerは進化しました。 何が進化したかっていうと、 …

CakePHP1.3移行ガイドの和訳 - 「移行ガイド」完了

http://hiromi2424.lv9.org/translate/cakephp13/13-migration-guide「移行ガイド」ページの和訳が完了しました。 酷い直訳と酷い意訳が入り混じっています。 わけわかんねーよ、っていう点や日本語おかしい!とか原文と意味ちげぇwってのがあったら教えて…

CakePHP1.3移行ガイドの和訳

http://hiromi2424.lv9.org/translate/cakephp13/これから順次更新していきます。よろしくお願いします。

日本語対応のFormHelper::datetime()

使い方 datetime('created'); // []年[]月[]日 $jpForm->datetime('created','YMD',null); // []時[]分 $jpForm->datetime('created',null); // []年度[]月 $jpForm->datetime('created','YM',null,null,array( 'separator' => array( 'year' => '年度', ), …

VirtualFieldsで、'Model.name'が指定できないバグ

Gitの最新版では修正されています。本家IRCで質問したところ、Gitで最新ブランチ(ダウンロード→1.3ではなく、 http://github.com/cakephp/cakephp1x/tree/1.3のdownload source)をダウンロードするか、1.3RC版を待ってくれ、とのことでした。thanks to cap…

VitualFieldsを使おう!

CakePHP1.3からは、VirtualFieldsが利用できる。 これはSQL でいったら sql_function(hoge) as aliasといったcolmunをそのままフィールドとして利用できる機能だ。それでは実例を追いながら順次説明していこう。 要求: グループの一覧を表示したい。 また、…

SessionBehaviorを作ったわけ

CakePHPのSessionの利用方法は、基本的に以下の二つです。 ControllerからSessionComponentを使う($this->Session) viewからSessionHelperを使う($session->hoge()) 基本的にMVCの理念から、ControllerとView以外でSessionを利用する機会はありません。 しか…

SessionBehavior

1:07更新

Re: 【CakePHP】フォームのデフォルト値が実際の値を上書してしまうバグ

チケット( http://www.awaresoft.jp/blog/4-cake-php/29-cakephp-bug-default-overwrite.html この件が1.3になっても修正されていなかったようなので、チケット投げました。http://cakephp.lighthouseapp.com/projects/42648/tickets/290-formhelperradio-t…

saveAll()でexists()が各レコードごとに3回呼ばれる

1.3からなのか不明。 Model::cacheQueries = true(デフォルトではfalse)とすれば各1回で済む。 ただしsave()またはsaveAll()した後read()とかexists()とかするとバグる可能性があるので、慎重にどうぞ。

HABTMの古いリンクが全て削除されてしまう問題の修正

チケット投げました http://cakephp.lighthouseapp.com/projects/42648-cakephp-1x/tickets/275-old-habtm-links-should-not-be-deleted-when-new-habtm-links-contain-these#ticket-275-3VirtualFieldsのテストをするとか言っておきながら、Model::__saveMu…

1.2.5 RC から 1.3 Betaへの移行作業

とりあえず、何も考えずに今動いてるもののcake coreを上書き保存。 つまり「cake」フォルダをそのままぶち替えてみました。 webrootのindex.phpで怒られる 1.2.5 RC $Dispatcher = new Dispatcher(); $Dispatcher->dispatch($url); 1.3 Beta $Dispatcher = …

ブログ開設

CakePHPについて色々書いていきたいと思います。 どうぞよしなに。