もしドラアニメ化に備えて、一読しておきたいのだが、本で読むか、電子書籍で読むべきか迷ってるプログラマ中島です。
130万も売れてるなら古本屋には溢れるほどが在庫があり、在庫処分の為に投げ売りされてそうだ。
だがしかし、ここで電子書籍を体験しておくのも一興かと。。。。。。
ムムッ、悩ましい。
最近、実装中に思っている事。。。。。
SQLの結果をmysql_fetch_arrayで受け取って、引数と配列項目名を書いて値を出力!引数と配列項目名を書いて値を出力!引数と配列項目名を書いて値を出力!引数と配列項目名を書いて値を出力!引数と配列項目名を書いて値をsy・・・・・めんどくせぇえええ!!
同じ配列項目名何度書けばいいのだ!!
DBの入出力とフォームの入出力ぐらいEclipseで補完入力させてくれ!!楽させろー!!
ということで、せっかくのPHP5、せっかくのオブジェクト指向なので、ひんまがった理由でカプセル化しよう!
カプセル化ってなんぞや?
- 直接データにアクセスする事を回避したい
- publicな値は隠したい
必要な値だけpublicな値に落として、加工したものを戻してあげるのがベターである。
複数人で開発した場合、カプセル化したオブジェクトを使いまわす事によって引数名も共通化できて、誰かが勝手なルールで値を変更することもできる。
よく使う引数をオブジェクト化すれば、何度も同じ引数名を書かなくて済むッ!!
個人的な理由で、クラス化したことにより、入力に補完が効いて作業効率が良くなる!
どうやって書くの?
1 |
<?php |
1 2 3 4 5 6 7 |
class Entry { private $title; public function getTitle() { return $this->title; } |
1 2 3 4 5 6 7 8 |
public function setTitle($title) { $this->title = $title; } ツꀀ /* setter/getter が続く */ } $entry = new Entry(); $entry->setTitle("title"); |
1 2 |
echo $entry->getTitle(); ?> |
privateな変数があり、その変数の捜査としてgetter/setterが存在する形である。
とある変数に数値しか入れたくなれば、setterに数値かどうかチェックを入れればいい。
カプセル化を使うとなると、このgetter/setterを何度も書くはめになる!!めんどくさい。
Eclipseのプラグインなら、getter/setterの自動生成機能があるのだが、生憎Javaにしかない。
PHPにもあると思ったに。。。。
「プラグインがなければ、コードテンプレートを作ればいいじゃない」 by google先生
というわけで探したらありましたよ。PDTでsetter/getterを作るtemplate
これさえあればカプセル化は楽勝だね!!
しかし、PHPにはカプセル化する文化は流行ってないのかな?
元javaプログラマとしては、当たり前のことかと思っていた。
参考サイト:REDLINE MAGAZINE PHP修行 「setter/getter」を知るの巻