レイアウトとコンテンツ生成を分離して HTML ページを構築したいと考えています。div 要素 (3*3 など) のマトリックス構造を持つ layout.php ページを作成する予定です。場所 (1,3 - 最初の行、3 番目の列) の div について、旅行広告を返す広告モジュールを呼び出したいと思います。location(2,3) の div に対して、同じモジュールが呼び出されますが、今回は電子製品の HTML が返されます。
ここでの意図は、コンテンツ生成からレイアウトを分離することです。だから、レイアウトを簡単に変更できます。たとえば、場所 (2,3) については、静的な広告の代わりに、天気データを示す HTML を返す天気モジュールを呼び出すことができます。
私が考えることができる 1 つの方法は、次のような php コードを使用して、適切な広告 HTML を返すクラスとメンバー関数を持つ adv_module.php を用意することです。
include_once(adv_module.php);adv1 = new ADV_MODULE(); echo adv1->getAd(category=travel)
:
:
include_once(adv_module.php);adv2 = new ADV_MODULE(); echo adv2->getAd(category=electronics
)
ただし、HTML はメンバー関数内で構築する必要があります。これにより、HTML の構築を支援するために HEREDOC 要素が散在する多くの醜い php コードが発生します。HEREDOC は条件、ループなどを許可しません
これを行うより良い方法はありますか?可能であれば、テンプレート化 (Smarty のようなパッケージ) は避けたいと考えています。