以下の例は、私が現在どのように作業しているかを示しています。MVC - URLから表示するより良い方法をお探しください
index.phpにはindex_controller.phpとindex_template.phpが含まれます。
$uri = explode('/', $_SERVER['REQUEST_URI']);
$action = $uri[1];
$call = $uri[2];
$tmp = explode('?', $call);
$call = $tmp[0];
$call = preg_replace('/-/', ' ', $call);
switch ($action) {
case "about":
$page = "about.inc.php";
$title = "About Us";
$description = "Description of page";
break;
case "category":
try {
//PDO query to make sure category ($call) exists
}
catch (PDOException $e) {
logError($e->getMessage());
}
if (query->rowCount() < 1) {
$page = "404.inc.php";
$title = "404 Error";
}
else {
//Meta information for selected category pulled from DB and put into variables.
$page = "category.inc.php";
break;
default:
$page = "404.inc.php";
$title = "404 Error";
}
index_controller.php上記の例では、switch文で約12の異なるページ・オプション2を示しています。簡単なリクエスト(about)とより複雑なリクエスト(category)。
index_template.php
には、すべて私のhead、body、およびfooter HTMLがあります。誰かがmysite.com/category/booksindex_controller.php
に行く場合は、ページのメタデータを設定サイト構造を設定し、$page
変数は上記の例を使用index_controller.php
にに設定されているものは何でもファイルが含ま書籍カテゴリが存在するかどうかを確認し、それがある場合はcategory.inc.php
が含まれます。
category.inc.php
選択したカテゴリのアイテムのリストを表示するために必要なすべてのアイテムと情報を取得するための別のPDOクエリを実行します。また、返された項目の表示を構造化するためのテンプレートファイルも含まれています。
私はMVC型構造(CodeigniterやCakePHPのようなフレームワークを使用しない)を実現しようとしていますが、モデルの終了は実際にはありません。
現在使用しているインクルードのすべてではなく、クラスや関数を使用してURLからビューにユーザーを移動させるにはどうすればよいですか?
上記の他のファイルについて説明してもらえなかったと感じたら、それらのファイルのコード例も提供できます。
ご意見、ご提案、ご感想をお待ちしております。
EDIT:下記のコメントごとに明確な質問。
このかなり広い質問です。 「MVCフレームワークを構築するにはどうすればいいの?質問のタイトルはもう少し具体的なことを示唆していますが、あなたはそれを本当に明確にしません。まだあなたが[ヘルプ]を見ていない場合は、このサイトと通常のフォーラムとの違いを理解することが重要です。あなたは会話を開始していないので、特定の質問に集中する必要があります。それがサイトの「話題になっている」ことを確認してください。 – IMSoP
@IMSoP広い質問を申し訳ありません。実際の質問を明確にするために編集しました。これが私が探しているものをよりよく理解するのに役立ちます。 – Jay