
CakePHPの標準関数のpr($vars)は
な感じの関数でとても重宝しています。
ただ、pr関数を使いまくっていると「どこで呼び出したっけ?」というのが分からなくなって探す・・・といったことがたまに起きてしまいます。
ってわけでpr関数の呼び出しもとの行数も一緒に出力する新版を書いてみました。
CakePHP1.2系ではbakeの挙動が大幅に変わっていて、一時期それが理由でCakePHP1.2系を使うのをためらっていました。
複数のプロジェクト(標準はappってことでいいんでしょうか?)を入れることが出来るようになったのはいいのですが、CakePHP1.1系と同じように扱うためのまとめを書いておきます。
CakePHP のおいしい食べ方: [1.2]Easy Bake on Windows
にてすでに書かれてはいるんですが、CakePHP1.1系からもっと簡単に乗り換えるために。
DreamHostに移行してまだ3日ですが、やはり海外サーバーということで、日本サーバーとの違いが出てきました。
DreamHostサーバーは海外にあるので、タイムゾーンの設定が違い、ブログの投稿時間がかなりずれていました。
今まではCakePHP+kcaptchaコンポーネントでコメントスパムを撃退していたのですが、自分でコメントを書くときに「人間でもこのCaptcha読めないじゃん・・」と思いました。
コメントスパムを撃退することは必要ですが、それによってコメントしてくださる方まで撃退していては本末顛倒かと思ったので、日本語CAPTCHAを導入しました。
CakePHPアプリのモデルにおいて、UserBookモデルとBookモデルがあり、主キーは両方ともID。しかし両テーブルともASINというフィールドを持っていて、ASINフィールドを用いてJOINしたい場合のTips。
テーブルの意味的にはUserBook(user_books)テーブルがユーザが持っているテーブル、Book(books)テーブルが書籍情報を管理するテーブル。
テーブル構成としては
| Book | UserBook | |
|---|---|---|
| id(主キー) | id(主キー) | |
| asin | ⇔ | asin |
| その他 | その他 | |
となっています。
CakePHPのベータ版(こないだまではプレベータ版)がついにリリースされました。1月2日にリリースされていたんですね("ついに1.2ベータのリリース!&Stable: 1.1.19.6305" フォーラム - CakePHP Users in Japan)
新規で開発中の書籍管理アプリはプレベータ版を使っていたので早速ベータ版に切り替えて調査がてら開発していきます。
・・・ちなみに簡単な$form->inputがベータ版にアップグレードしたとたんにエラーを吐いたのでその報告を。。
CakePHP1.2のデータベースの設定値には
4種類のプロパティが追加されました。
persistentは持続的接続のON/OFF、portは接続の際のポート番号が、schemaが何に使われるプロパティか分からなかったのでちょっと調べてみました。
CakePHP1.2で使える便利な5つの新機能 - yandodの日記
CakePHP1.2系で使える新機能について紹介されています。
内容は
となっています。
以前から指摘されていたRSSの投稿日時(pubDate)を修正しました。
このブログはCakePHP1.2系で構築されているのですが、RSSの出力にはFeedCreatorを用いているのですが、そのTIME_ZONEの指定が問題でした(というかデフォルトのまま使っていました)。
最新版のver1.7.2だとクレジット表記の後に
define("TIME_ZONE","+01:00");
とあるのですが、このままだと日本時刻で本当の投稿日時の8時間後になってしまうので、
define("TIME_ZONE","+09:00 GMT");
とすることで対応できました。
ついにコメントスパムが500件を突破してしまい放っておけない状況になったのでCAPTCHA機能を付けました。
ちなみにCAPTCHAとは、「Completely Automated Public Turing test to tell Computers and Humans Apart」の略だそうです(Wikipedia Captcha)。まぁ要するにコンピュータによる自動コメント投稿をはじくための画像認証機構です。
今回はCakePHPでのCAPTCHA機能の付け方についてです。