私は PHP で小さなページに取り組んできましたが、その背後には本格的なフレームワークの力は必要ありません。Ruby-on-Rails の以前の作業で本当に欠けていることの 1 つは、「content_for」を使用してコンテンツを効果的にページに渡す機能です。
私が疑問に思っていたのは、PHP でこれと同じ効果を達成するページ ライフサイクルをどのように作成できるかということです。
簡単な例を次に示します。
インデックス ページを定義するテンプレートがあり、すべてのページで使用したい繰り返しヘッダーとメニューがあるとします。したがって、index.php
ファイルは基本的に次のようになります。
...header stuff...
<body>
<?php include $file.'.php'; ?>
</body>
...footer stuff...
編集: URL セキュリティに関するヒントをありがとうございます。ただし、ユーザー リクエストを安全に取得していると仮定しましょう :)
さて、これを入れたいヘッダーに言ってみましょう:
<head>
<title><?php echo $page_title; ?></title>
</head>
インクルードされたファイルでタイトルを指定できるとよいので、http://example.com/index.php?p=test
読み込み中の URLtest.php
で、そのファイルは次のようになります。
<?php $page_title = 'Test Page'; ?>
... rest of content ...
変数が設定される前にインクルード ページ (index.php) が読み込まれるため、明らかにこれは機能しません。
Rails では、関数を使用して「ページの上に」何かを渡すことができcontent_for
ます。
私の質問は次のとおりです。PHP でこの種の「content_for」機能を実現するために、皆さんが考えることができる最も単純で無駄のない方法は何でしょうか?
理想的には、大きなフレームワークに縛り付けずに、多くの異なるアプリケーションで使用できる比較的軽いボイラープレート コードを提案してほしいと思います。