【CakePHP】1.2→1.3のマイグレーションガイド

cake-logo先日発表された待望のCakePHP1.3(-dev)ですが、現バージョンの1.2から移行するための情報が公開されました。

▼Migration Guide from 1.2 to 1.3
http://code.cakephp.org/wiki/1.3/migration-guide

基本的にはそれほど困難なく移行できそうな雰囲気ですが、次の点について注意しなければならないようです。

  • app/webroot/index.phpはリプレースしなければならない(改造している人は注意!)
  • app/config/core.phpは、新しい設定を追加しなければならない(PHP5.3関連)
  • 「session.php」「socket.php」「schema.php」「bihavior.php」はそれぞれ「cake_session.php」「cake_socket.php」「cake_schema.php」「model_behavior.php」に変わっている
  • 「Model::del()」「Model::remove()」は推奨されなくなった。「Model::delete()」に置き換える必要がある
  • ビューの拡張子「.thtml」は標準で認識しなくなった。どうしても使いたい場合は、$this->ext = ‘thtml’とする必要がある
  • JavascriptHelperとAjaxHelperが推奨されなくなった。HtmlHelper内に代替メソッドがある

ほかにもあるのですが、一般的に大きく影響しそうなのはこのあたりでしょうか?
バグ報告が出始めてきたのでまだまだこれからかもしれませんが、そろそろ移行の準備を始める必要があるかもしれませんね。

ちなみに「SmartyView Plugin」は、どうやら1.3用として別バージョンを提供しなければならなくなりそうです。KtaiLibraryに関しては、ちょっと調査が必要ですが、こちらも同じくCakePHP関連コードに関しては別バージョンを用意しなければならない可能性が出てきました。まだ当方も1.3を動かしたことがないので何とも言えませんが、別途詳しく調査して情報を公開したいと思います。

【戯れ言】Firefox3.5は確かに速いぞ!

nowprintingつい気まぐれで、先ほどFirefox3.5にアップグレードしてみました。
以前よりページがさくさく動く感じがします。
JavaScriptの高速化はかなり効いている気がします。

現在インストールしているアドオン…とりわけFireMobileSimuratorが動かなくなってしまうと困るなと思っていましたが、それも問題なさそうです。FireBugやSQLite Managerも大丈夫っぽい(SQLiteの方はアップデートが入り、connect listが消えてしまったのは残念ですが)。

基本的にそれほど機能が変わっているようには思えないのですが、最近もっさり動くようになってきた感のあったものが解消されたように思えるので、その点に関してだけ言えばインストールの意義はありました。あとは不具合なく動いてくれることを祈ります。

【CakePHP】PHP5.3へのアップグレードが悩ましい件

cake-logoネットニュースによると、PHP5.3がいよいよ今月30日に公開らしいですね。
新しもの好きの私としては、是非試したいところなんですけど、今回はちょっと勝手が違うというか、いくつかの問題点があって慎重にいきたいところです。

▼『PHP 5.3』が30日に公開の見通し
http://headlines.yahoo.co.jp/hl?a=20090626-00000008-inet-sci

まず一つは、現在いろいろと公開しているものがあるため、出来ればサーバを止めたくない点。
まあ初物ですから不具合は多少はあるでしょうし、今までのソース(5.2)と互換がとれているかも心配。
今回はKtai Libraryも公開していることですし、慎重にいきたいところです。

それから、CakePHPで動作できるのか、という点も心配事です。最近の制作物はすべてCakePHPを使っていますので、動かなくなると正直困ります。この辺は人柱な人が現れるのを待ちたいと思います(他力本願でごめんなさい)。

そして、これが一番の理由なのですが…
前回の記事で多少触れていますが、ナイショ案件を現在抱えていまして、時間がとれないこと、そしてこの案件は5.2での利用がおそらく最適と思われますので、出来ればバージョンアップを急ぎたくない、という点があります。もう少し5.3の実績が出てからだったら良かったんですけどね。

あ~、もう少し良いサーバが欲しいなぁ…
今のサーバですと、バーチャルサーバとかやるとおそらく重くて仕方がないので、設定できないんですよね。でも今は金銭的に厳しいので、すこし自重しないといけませんね(^^;;;。

【KtaiLibrary】ちょっと開発はストップしています

icon_ktai現在0.2.0RC1として公開していますKtai Libraryですが、ちょっといろいろと忙しくて開発の方を中断している状態です。正式版を待たれている方もいらっしゃるかもしれませんが、ちょっとお時間がかかるかもしれませんので、RC1をお使いになることを一応オススメさせていただきます。申し訳ないです。

ちなみにKtai Libraryがらみでは、いくつか水面下で進行しているものがあります。

一つは決定事項がありますが、これはちょっとトップシークレットでして(笑)。
もう少ししましたら告知させていただきます。というかまだ全然出来ていないので(^^;。

それから来週、とある方にKtai Libraryをご説明する機会があり、これがどういう話の流れになるのかは分からないのですが、特定に対してKtai Library単品でご説明したりお話を伺うのは今回初めてですので大変に楽しみにしております。

あとは、これは皆さんに直接関係があるかもしれませんが、Ktai Libraryを快適に使っていただくための「外部ツール」を現在企画しております。現在技術検証段階ですのでそれ次第になりますけど、携帯サイト開発に無くてはならないものだと思いますので、おそらくKtai Libraryの価値が格段に高まるかと。それくらい価値のあるツールであると考えています。こちらも是非お楽しみに。

その他、ちょっともやっとしているものがあり、これをどうしようかと悩んでいるところがあります。今後のKtai Libraryの方針に左右されるところがあり、かなり慎重にいきたい反面、基本的に「Ktai Libraryは私一人で作っているものではない」気持ちのため、出来ればそうしていきたい…そういった、技術的というものではなくコンセプト的なところでの課題点なのですが。でも、最終的には利用される皆さんが満足できるような方向で行きたいと考えています。
あ、ちなみに有料化するとか、どこかの企業の管轄になるとか、そういった話ではないのでご安心を。

【KtaiLibrary】0.2.0RC1版公開!

icon_ktaiお待たせいたしました。「Ktai Library」の最新バージョンである0.2.0RC1版を公開いたします。
本バージョンで、0.1.0版で発生していました大きな不具合が解消されていると思います。
上記メニュー「Ktai Library for CakePHP1.2」からダウンロード可能です。

先のご案内通り、今回から正式バージョンの公開前に「リリース候補版」として公開させていただくことにしました。今までの機能が安定してきたことと、目に見えない部分をいち早く試していただいて、何か問題がありましたらすぐにご連絡いただくことで、少しでも良いものを使っていただこう、というのが今回の趣旨です。

今回は2桁目の番号をインクリメントしています。機能的にはそれほど変化はないように見えるかもしれませんが、ソースをご覧いただくとお分かりになるかと思いますが、構造が大きく変化しております。とはいえ、基本的には丸ごと入れ替えていただくだけで大丈夫かと思いますのでご安心ください。

今回大変だった点は、何と言っても「URL処理」です。CakePHPでお使いの場合に、1つのドメインでいろいろ置いている人向けに、URLをしっかりRouter::url()に通すようにしました。lib3gkで無理矢理呼び出すために、「コールバック関数」を駆使しています。もう少し良い実装方法があるかもしれませんが、とりあえず許してください。基本的に「他のプラットホームでも動く」様に作っていますので、そもそも無理があるのかもしれませんけど… 先のバージョンで見直していきたいと思います。

とりあえず公開が先とのことで、見送った新機能があります。その辺は後のお楽しみということで(^^;;;。

【KtaiLibrary】次バージョンの進捗状況

icon_ktai今週はある意味大仕事だったというのか、いろいろと大変でした。
とりあえず週末は時間が作れましたので、「Ktai Library」の続きをやらないとですね。

新バージョンについては進行中でして、現在50%程修正が完了しています。構造的には大きく変化していまして、かねてからやりたいと思っていました「絵文字情報と機種情報のクラス分割」を今回行いました。まあデータ部分を外に追い出しただけですので、関連メソッドまでを分割するかどうかはまだ迷っていますけど、これで更に必要な部分だけを読み出すことが出来るようになって効率が上がるのではないかと考えています。
残り50%の大半は「AU関連の絵文字データの追加」で、数値表現の際の必要データの追加です。既に作ってしまったデータを際挿入するので結構面倒なんですよね。あとは「アクセスキー付きリンクでバイナリ文字列を生成しない」件と「Router::url()を考慮する」件がありますが、こちらの方も多少技術的に解決しなければならない点がありますので面倒なところですが、それほどは時間がかからないと思います。

というわけで、目標は一応日曜日中に目処をつけるといったところです。
一応機能追加も若干考えています。
そして、今回からは正式リリース版を出す前に「リリース候補バージョン(RC)」を先行で公開することを考えています。今までは「テストサイトでまず試してもらって、確実に動くものを提供」の方向だったのですが、全体的に機能が安定してきたことと、テストサイトだけでは分かりにくい機能も出てきましたので、全体的に組み込んでもらって試していただく方がこれからはよいかもと思った次第です。基本的には正式バージョンを使っていただく方が良いかと思いますが、新しい機能を体験したい方やもう少しコアな部分でのテスト参加をしてみたいという方向けに解放してみたいと思います。

そんなわけで、月曜日にRC版をリリースする予定です。
いくつかの大きな不具合が全て直る予定ですので、どうぞご期待ください。

【KtaiLibrary】バージョンアップ延期と他の不具合報告

icon_ktaiKtai Libraryについて、後ろ向きな情報が連続してしまい申し訳ないです。

まず、前回のKtai Library関連記事で発表したバージョンアップする件なのですが、後述する理由で延期したいと考えています。といっても何ヶ月も後ろというわけではなく、出来れば来週中という短い期間でおさめたいと思います。付近になりましたらまたご連絡いたします。

そして、その理由なのですが…

前回の記事以外にも不具合が報告されてきまして、その対処が結構大がかりなためです。
とりあえず簡単に項目だけ上げておきます。

  • (たぶんAuthの)リダイレクトを経由した場合、SIDが二重につく
  • UTF-8の場合、AUの数値表現(&#xxxx)が文字化けする
  • 同様の理由で、AUの場合、UTF-8にてアクセスキー付きリンクが文字化けする
  • UID入手で、対応していない携帯からのアクセスでNoticeが出る

特に2番目と3番目の問題がかなり深刻で、結果としてファイルサイズがまた大きくなりそうです。簡単に説明すると、AUの数値表現(&#xxxx)用のデータを追加しなければならないためです。

また、新機種携帯の機種情報ですが、そろそろ更新をしなければならないのですが、まだ各キャリア出揃っていないのと、仕様変更をもくろんでいるため、もう少し後になると思います。

ご迷惑をおかけいたします。

でも、最近になってようやくいろんな方に使われ始めて来たようで、こちらとしてもいろいろな情報をいただけて大変に助かっております。
本来なら、BTS等で公開させていただき、すぐに反映できるような体制を整えたいのですが、現時点でものすごく忙しいため、ちょっと見送っています。
できることならcandycaneの事例第一号になりたいなとか思ったり(笑)。
candycaneでコミットできる環境が整ったら、ダメもとで一緒にKtai Libraryを開発していただける方も募集したいなーとか思ったり。
あと、他のフレームワーク用の利用モジュールなどを作っていただける奇特な方も募集したいなーとか思ったり。
ええ、思っているだけです(^^;;;。

【KtaiLibrary】0.1.1で少々深刻な不具合見つかりました

icon_ktai勉強会でご紹介して興味を持たれた方もいらっしゃったかと思いますが(いや、思いたい)、その噂のKtai Libraryに少々深刻な不具合が報告されました。勉強会の報告を書こうと思いましたが、先にこちらの方をお知らせさせていただきます。

▼[cakephp]Ktai-LibraryをComponentで使う時にSessionがスタートしないことがある
http://d.hatena.ne.jp/aroundthedistance/20090520/1242791429

ごめんなさい、完全に私のミスです。
バージョン0.1.1リリース直前に少々修正を施した部分で、しっかりテストせずに出してしまったのが原因です。本当に申し訳ございません。以後このようなことがないようにします。

とりあえず緊急的な対応は上記ブログ記事でOKだと思います(ただし、Session.saveをcakeにしてOKな場合)。
本格的な対応につきましては、月曜日(5/25)のお昼ぐらいまでには最新版(0.1.2)をリリースさせていただく予定でいます。

また、解凍イメージ中に「emoticons」ディレクトリとすべきところを「emoicons」としてしまっているため、これも今回修正します。

皆様にはご迷惑をおかけしたことをお詫びいたします。
そして、不具合をブログにて公開していただいたaroundthedistanceさんには大感謝です。ありがとうございます。

【KtaiLibrary】勉強会前にバージョン0.1.1が出るかも…

icon_ktaiセッション周りで現在不具合が報告されていて、それを対処するバージョンが勉強会前に出るかもしれません。
先日の「世界一~」の通りに作っていただければたぶん不具合は出ませんが、session.saveを「php」ではなく別のものにするとセッションキーが張り付かないようです。これについては対処をしました。
その他、現象が分からないものがあるため、現在調査しています。その結果次第で、現在不具合が出ているものを全て直したバージョンとして0.1.1を出します。その際に、app_controller.phpを上書きしないように、拡張子を変更する対処を行いますので、新規インストールで若干手間は増えますが安全性は高まると思います。
現在勉強会の準備の方を優先していますので、間に合うかどうかは分かりませんが、出来るだけ間に合わせるように頑張りたいと思います。

また、ちょっとKtaiLibraryからは話がずれるのですが…
これは現時点で本決まりではないので、勉強会でのサプライズには間に合わないのですが(汗)、近日ビッグな報告が出来るかもしれません。今日はそのうち合わせで出かけてきたのですが、なかなか良いお話を貰えたため、モチベーション上がっています。とはいえまだまだ先の話なので、こちらの方は進展ありましたらまたご連絡いたします。