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

ぽかぽかウンティの自由帳

ぽかぽか動物園から投稿します。

どうしても view にロジックを書きたいときの埋め込みタグの書き方について

職場で久々に PHP 書くことになって Javascript CSS PHP HTML すべてが 1ファイルに詰まったレガシーコードを触った。

HTML 内に PHP のロジックがあって以下のような感じで PHP ブロックが書かれていた。

<?php
  $excludeObjectKeys = $hoge->getConfig()->getExcludeObjectKeys();
  $objects = array_filter($fuga->getObjects(), function($object) use($excludeObjectKeys) { return !in_array($object->getKey(), $excludeObjectKeys); });
?>
<div>
  <?php foreach($objects as $object): ?>
    <?php echo $object->getName() ?>
  <?php endforeach; ?>
</div>

これを以下のように冒頭の PHP コードブロックを単行毎に分けて書いたら他のプログラマに怒られた。

<?php $excludeObjectKeys = $hoge->getConfig()->getExcludeObjectKeys() ?>
<?php $objects = array_filter($fuga->getObjects(), function($object) use($excludeObjectKeys) { return !in_array($object->getKey(), $excludeObjectKeys); }) ?>
<div>
  <?php foreach($objects as $object): ?>
    <?php echo $object->getName() ?>
  <?php endforeach; ?>
</div>

リファクタリングしている訳ではないので、そもそも view にロジックを書くなという指摘は置いといて、
なぜか私は view で複数行に渡る php コードを見たら単行ごとの php ブロックに分けたがる症候群が発病する。

ロジックと view とが判別しにくくなってね? これおまえの癖? というのが指摘の内容だったが、確かに仰るとおりだ。

でもなんか気持ち悪いんだよなぁ。