CakePHPのビューで共通部分を使い回す

レイアウトで共通して使いたい部分はエレメントとして呼び出してあげると便利です。

以下ではdefault.ctpでbase_header.ctpをエレメントとして呼び出しています。

<?php
  if($is_login){
    $status = true;
  }else{
    $status = false;
  }
  //header.ctpの呼び出し
  echo $this->element('base_header', ['status'=>$status]);
 ?>
 <div class="content">
 <p>コンテンツ</p>
</div><!-- content -->

以下が/src/Template/Element/base_header.ctpの中身です。

<?php
?>
<div class="header">
<?php if($status){
  ?><p>ログイン中</p>
 <?php } ?>
</div><!-- header -->