読者です 読者をやめる 読者になる 読者になる

はむはむエンジニアぶろぐ

このブログのコンセプトは"ハッキングの為なら愛する家族を傷つけることをいとわない" 自分にとってエンジニアリングは "手段ではなく生きる目的" である

PHPでメソッドチェーンをやってみた

f:id:secret_hamuhamu:20150404170600p:plain
最近のPHPフレームワークは、メソッドチェーンを多用するのが流行りみたいなので流行りに乗ります。
メソッドチェーンをすることで、コードが簡潔になると思うので覚えて損はないはず。

環境構成

PHPにおけるメソッドチェーン

メソッドチェーンが出来るhuman.php

<?php

class Human
{
  private $_height;
  private $_weight;

  public function __toString()
  {
        return sprintf('身長 : %scm / 体重 : %skg', $this->_height, $this->_weight);
  }

  public function setHeight($height)
  {
      $this->_height = $height;

      return $this;
  }

  public function setWeight($weight)
  {
      $this->_weight = $weight;

      return $this;
  }
}

セッターで、 return $this としているところがミソですね。

こいつをメソッドチェーンで呼び出すクライアント

<?php
require_once 'human.php';

$humnan = new Human();
echo $humnan
    ->setHeight(170)
    ->setWeight(60);

マジックメソッドの__toStringを使用しているので、オブジェクトを文字列かのように扱えます。

実行結果
身長 : 170cm / 体重 : 60kg

最近読んだ本

Laravelエキスパート養成読本[モダンなPHP開発を実現するノウハウ満載!] (Software Design plus)

Laravelエキスパート養成読本[モダンなPHP開発を実現するノウハウ満載!] (Software Design plus)

PHPエンジニア養成読本 〔現場で役立つイマドキ開発ノウハウ満載! 〕 (Software Design plus)

PHPエンジニア養成読本 〔現場で役立つイマドキ開発ノウハウ満載! 〕 (Software Design plus)