タグ

2016年8月4日のブックマーク (1件)

  • PHP のトレイトに気をつける - tototoshi の日記

    普段 Scala でトレイトを使いまくってるけれども PHP にも 5.4 からトレイトが入った。 trait の良いところは多重継承のできない言語で多重継承っぽいことができることだ。 use, use とつけていけば、いくらでも追加できる。DRY に書けてよいことだ。 対して悪いところはいとも簡単に複雑で暗黙的な依存関係が生まれることだ。 例えばこんなの <?php trait Greeting { public function say() { if ($this->location == 'ja') { echo 'こんにちは' . PHP_EOL; } else { echo 'Hello' . PHP_EOL; } } } class Location { } class US extends Location { use Greeting; private $location

    PHP のトレイトに気をつける - tototoshi の日記
    satakesatake
    satakesatake 2016/08/04
    自分の場合、$this->locationに相当するところは、抽象メソッドのゲッターとしてtrait内で宣言し、使用箇所で実装を強制させるのが吉だと思っている。