0


0

慣用的なPHP Webページの作成

私のPHPの経験はかなり限られています。 私は奇妙に見えるものをいくつか継承しましたが、これが物事を行う標準的な方法であるかどうかを知りたいです。 ブラウザの場所に表示されるページ(例: www.example.com/example_page)のようなものがあります:

<?
$title = "Page Title";
$meta = "Some metadata";
require("pageheader.inc");
?>

次に、pageheader.incには次のようなものがあります。

<?
@$title = ($title) ? $title : "";
@$meta = ($meta) ? $meta : "";
?>


<?=$title?>

他の人はこのスタイルが便利だと思うかもしれませんが、私を混乱させます。 これは初歩的なコンテンツ管理システムへの一歩かもしれないと思いますが、ここでの動作方法は、Web開発者の負荷を十分に減らすことなく、サーバーがしなければならない処理に追加すると思います。

だから、これはPHPでページを作成する通常の方法ですか? それとも、より良いアプローチを支持して、これらすべてを引き出す必要がありますか?

また、「 <?」(vs。 "")は望ましくありません。私はただコードにあるものを再現しています。

6 Answer


3


まあ、それは確かにそれを*無効*にする方法ではありません-しかし、それを読んで維持するのは少し面倒かもしれません。 PHPでこのようなことを行う「通常の」方法があるとは言いません。 結局のところ、変数をHTMLに出力しているので、専用のテンプレートエンジンを使用せずにさまざまなオプションを用意することはできません(および/またはhttps:// stackoverflow.com/questions/2648182/idiomatic-php-web-page-creation/2648223#2648223[ryeguy])。

私の提案:好みのスタイルに合わない場合は、変更してください。 最も重要なことは、あなたがそれを開発し維持しようとするなら、あなたがそれを快適かつ効率的に使用できるということです。


3


これは、MVCに向けた正しい軌道に乗っている_種類の_です。 MVCは、懸念事項の分離に関するものです。 ここでの考え方は、最初のスニペットが値を設定してから、「pageheader.inc」が値を出力するというものです。 これにより、ロジックが表示されなくなります。

それは非常にだらしないです。


2


PHPは非常に断片化されたコミュニティで、「標準的な」方法はありません。 とはいえ、投稿したpageheader.incの例は単純化できるようです。 一番上のコードは、あなたに何の役にも立ちません。 これだけで十分です:

アーキテクチャとベストプラクティスに関する方向性を探している場合は、CodeigniterやKohanaなどの人気のあるPHPフレームワークを確認することを強くお勧めします。


1


使用できるアプローチは本質的に2つあり、それらは互いに逆です。 ヘッダー、フッター、およびその他の一般的なデータを含めるために各ページが独自のコンテンツを持っている、1つのアプローチの例があります。 このアプローチには特に問題はありません。 2番目のアプローチは、ヘッダー、フッター、およびコンテンツを含む単一のページを作成することです。 これは、一般的なPHPフレームワークを使用したはるかに一般的なアプリケーションです。


0


いくつかの変数からメニューやページヘッダーを作成するなど、いくつかの集中コードが必要な5〜10ページのパンフレット製品サイトのような単純なサイトでそのスタイルをよく使用しましたが、本格的なMVC構造は必要ありませんやりすぎです。


0


oreilly.comでこの記事をご覧ください。