このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

プロパティプロシージャが書けないからメソッドで実装するという方針

CakePHP に関連しつつ、どちらかというと PHP 全般の話題なのかもしれません。

CakePHP の Model クラスには入力規則に沿わないフィールドの一覧を返す invalidFields() というメソッドがあるのですが、なぜこれが getInvalidFields() という名前ではないのか?という疑問の声に興味を持ちました。

おそらく「名前に動詞がひとつもないから何をするメソッドなのかわからない」ということなのだと思われますが、もしかしたら CakePHP の設計者はこのメソッドをプロパティプロシージャのような位置づけにしたかったのかもしれません。たしかに invalidFields がプロパティ名ならあまり不自然さは感じません。しかしながら PHP でプロパティプロシージャは作りづらいのです。

ただ、 PHP5 なら __set や __get などを駆使して目的が達成できるかもしれません。自分自身もさらなる検証が必要に感じました。

back to top