Re:

感銘高き名言は「1%のひらめきがなければ99%の努力は無駄である」(トーマス・エジソン)

カテゴリ:開発 > cakePHP

カテゴリがありながら、これまでのエントリー数4。

特に内容のないエントリーばかりだ…。


仕事での開発にはCakePHPが採用されていると噂は聞いているので、少し前から自宅でもCakePHPでの開発に切り替えました。

ポケットウォーズはCakePHPへシフトしてます。

というかイチから作り直してるのでシフトもクソもないんですが!


これまでCondeIgniterで開発してたわけですが、そのシンプルさは初めてフレームワークで開発するのに向いていると思います。

ちょっと便利さもあるっちゃあるので、初中級くらいの知識と中規模サービスくらいには十分。

ただ、あれもこれもやりたいと思ったりすると不便さも多少あったりして、でも日本語ドキュメントもそれなりに整備されてたりとっつきやすいよねって。 


Cakeに関してはやっぱりアソシエーションの便利さ(対して理解度の高さが求められる)。

慣れてしまえばとは言ったもので、DBとモデルがシンプルに気持ちよく、そして簡単に処理できてしまう点は賞賛できるっしょ!

hasOne, hasMany, belongsTo & contain

で、楽チン。


ざっくりと基礎習得は終わったので、つぎは楽しくするためのフェーズ&コーディングです。

しかし…ポケットウォーズのコアとなるカードに対して、その入手手段をどのように提供すればいいか悩んでます。

単純に仮想通貨で買ったら1枚ゲットっていうのはあまりにも愛がない。


どうしたものか。悩む。


IdeaPad S9eを開発サーバとしてセットアップしてたので、PHPのバージョンを5.3に上げてみた。

ところ、数々のエラーに遭遇したのでメモっときます。


"Deprecated: Assigning the return value of new by reference is deprecated in 〜"

5.3からerror_reporting()に定義が加わり、それとE_ALL値が変更されているようです。

PHP: 定義済み定数 - Manual


なので、出力を制御する必要があります。

下記を参考。

"PHP Deprecated: Assigning the return value of new by reference is deprecated in ..." フォーラム - CakePHP Users in Japan

通常だとE_ALLですべてのエラー(E_STRICT除く)が出力されてしまうので、error_reporting()の値が6143より大きい場合、すなわちPHPのバージョンが5.3以上の場合に限ってはE_DEPRECATEDを除くエラーを出力する設定で置換、という流れです。

---
E_DEPRECATED
実行時の注意。これを有効にすると、 将来のバージョンで動作しなくなるコードについての警告を受け取ることができる。
---

将来互換を考慮して開発する必要性がなければ、この定義を無視しても構わない感じ?結構ストイックな開発を要求されなければ問題ないレベルだと思われます。

error_reporting(E_ALL^E_DEPRECATED|E_STRICT)なんてのは反してますかね…。

Shellを使う際には、cake/console/cake.phpも同様に修正したほうが良いかもしれません。


あと知らなかったのですが(知らないことは無限にある)、タイムゾーン設定をしていないとエラーが出力されます。

PHP: date_default_timezone_set - Manual

ページに書かれているとおり、PHP 5.1.0以降(日付/時刻 関数が書き直されてから)なので、環境が変わった際にはそのように対応すれば問題なさげです。

php.ini
date.timezone = Asia/Tokyo



PHP 5.3は互換が高いながらも注意が必要っぽいですね。(既に先に書いたような影響を受けてるんで)

PHP 5.3の新機能と変更点:第3回 PHP 5.3の追加機能と仕様変更 (1)|gihyo.jp … 技術評論社

Paginating child models

Paginatorの使い方。CakePHP1.2

第15回 Paginationで面倒なページ繰り処理とおさらばしよう



cakePHP 1.2から便利になりましたよね。

ページ送りは常々面倒ですから。

_IGP3346

Intuos4はMediumかLargeで散々迷ったあげく、結局Smallを買った。

届いてみれば、このサイズで十分に感じます。

ミラチェアも届きました。

あとは、ディスプレイを買えば満足です。



しばらくぶりにcakePHPに戻ってきました。

開発が楽です。

JavaScriptにも触れ始めました。

ちょっと前にブログに書いてた内容だと動作しなかったので、改めて。

以前書いた時は、参考サイトに書かれてる内容より file_get_contnets() 使った方が楽ってことで

> $mail = file_get_contents( $this->Dispatch->stdin ) ;

と直せばいいじゃん、と書いたのですが

上記だとダメで、普通に標準入力からの処理で良かった。

> $mail = file_get_contents( "php://stdin" ) ;

文字列で読み込むんだもんね・・・ハンドラでストリーム処理じゃ当然エラーになりますよ・・・。

やっぱり、朝方は脳が疲労してくるので、要らぬところでミスやら時間を要したりする。

という訳で、cakePHPのシェル機能でメール受信処理作成は一段落。

詳細は、実のところキャッシュ関連

・cake_core_dir_map
・cake_core_file_map

のパーミッション周りではまったんだけど、666 にすることで回避しつつ、Warning出力制御でやっつけ仕事。

WEBはapacheだし、メールはvpopmailだし、権限違うから・・・。

プログラムを覚えるだけで済まない難しさ。

↑このページのトップヘ