PHPでPHPを前処理しようとしたけれど・・・・・・

高木です。おはようございます。

PHPでの前処理に取り組んでいる私は、いろいろな可能性を模索しています。
そのうちのひとつが、PHPでPHPを前処理できないかということです。

このアイデアを最初に思いついたときに考えたのは、前処理用のコードは<?php ~ ?>でコードを記述し、後処理用のコードは<% ~ %>でコードを記述してはどうかというものでした。

前処理の段階では、asp_tagsを0にしておけば、<% ~ %>で囲まれた部分はPHPのコードとみなされません。
そして、前処理が終わった段階でasp_tagsを1にすれば、<% ~ %>がPHPのコードとして解釈されます。

前処理と後処理を同じプログラミング言語で記述できることには一定のメリットがあります。
その意味ではT4テキストテンプレートなんかはその最たるものですね。

同じプログラミング言語で記述することのデメリットもあって、パッと見では前処理なのか後処理なのかが分かりづらいことがそうです。
言語が違えば、前処理なのか後処理なのかは一目瞭然ですからね。

一長一短はあるものの、PHPでPHPを前処理するというのは、私にとってはそれなりに魅力的なテーマでした。

ところが、PHP 7以降、asp_tagsが仕様から削除されてしまいました。
もう、<% ~ %>でPHPのコードを記述することはできなくなったのです。
<script language=”php”> ~ も同様に削除されてしまいました。

これでは当初のアイデアはまったく使えなくなります。
どうしてもやりたければ、独自のタグを定義して、前処理時に後処理のために自力で変換してあげる必要があります。
あるいは、Smartyのようなテンプレートエンジンを使ったファイルだけを前処理するかですが、それではPHPでPHPを前処理したことにはなりません。

もうひとつの発想としては、現代的な設計方針ではデザインとロジックを分離するのが当然になっているので、いっそのこと後処理部分には<?php ~ ?>を書かないという手もあります。

と、このあたりまで考えて、これでは私が嫌いなWebアプリケーションの開発技法に取り組んでしまっていることに気づきました。
そうなると、もはやモチベーションを維持することができません。

よって、この計画はいったんボツにすることにしました。