ここで起こっていることは、テンプレートにロジックを挿入しようとしていることです。これは必ずしも間違っているわけではありませんが、より混乱し、保守が難しいコードを生成します。この問題は<title>
タグだけでなく、ページがますます動的で複雑になるにつれて発生し続けます(動的ナビゲーション、ページ固有のレイアウトなど)。
MVCアプローチは、この問題を完全に解決します。MVCは、データソース(MySQL、Redisなど)と通信してロジックを処理するモデルで構成されています。HTMLをレンダリングするビュー。モデルとビューの間の接着剤のようなものであるコントローラー。ユーザーが行う各リクエストは、最終的にコントローラーにルーティングされ、次にコントローラーのアクションメソッドにルーティングされます(たとえば、コントローラーとアクション/users/login
にマップされる場合があります)。User
login
コントローラのactionメソッドでページタイトル(またはその他のメタ情報)を設定します。これは、リクエストが何であるかを認識していますが、ビューがレンダリングされる前に呼び出されます。
$request->setTitle('Home page');
そして、あなたのビューで、単にそれをレンダリングします:
<title><?php echo $request->getTitle(); ?></title>
PHPを始めたばかりの場合は、MVCを学ぶ絶好の機会です。これにより、PHP開発だけでなく、他の開発にも影響を与えるいくつかの良い習慣を身に付けることができます。
シンプルで優れたドキュメントについては、CodeIgniterをチェックすることをお勧めします。私はしばらくの間CodeIgniterを使用していましたが、自分のニーズに合った独自のフレームワークを作成することになりました。