Olması aynı anda iki yerde değişkenler ile birlikte içerir

1 Cevap

Ben burada küçük bir situaton var. Benim web siteleri biri için özel bir CMS inşa ediyorum.

Aşağıda ana indeks sayfası için kod:

<?php
require("includes/config.php");   
include("includes/header.php");  
 if(empty($_GET['page'])) {     
     include('pages/home.php'); 
	 } else {
	  if(!empty($_GET['page'])){ 
$app = mysqli_real_escape_string($db,$_GET['page']);
$content = mysqli_fetch_assoc(mysqli_query($db, "SELECT * FROM pages_content WHERE htmltitle = '$app'")) or die(mysqli_error($db));
$title = $content['title'];
$metakeywords = $content['htmlkeywords'];
$metadesc = $content['htmldesc'];
?>
<h1><?php echo $content['title']; ?></h1><hr /><br />
<div id="content"><?php echo $content['content']; ?></div>  			
<? } else { include('includes/error/404.php');} }
include('includes/footer.php'); ?>

Dosya / header.php sayfa başlığı ve meta malzeme gibi değişkenleri echo kodu içeren içerir.

Sorun bunun dışında, nerede include("includes/header.php"); olduğu zaman şartlar olursa, tabii ki, ancak, ben, aksi takdirde durumda ev dahil koyamazsınız, varables yankı olmaz Herhangi url değişkenleri gerektirmez sayfa, bu koşullar olmadan gösterecektir.

Ben ne yapmalıyım?

1 Cevap

Gerçekten çok uzun süre bu gibi bir kod yazamaz. Bu başlangıç ​​için ok, ama yakında onu korumak zor gerçekleştirecek. Her zamanki gibi bir kaç adımda bölmek olduğunu.

  • İlk giriş kontrol ve hangi sayfa üzerinde belirlemek
  • Eğer ana olduğunu biliyorsanız, böyle bir şey include includes/templates/homepage.php
  • Otherwise try to load the page from the database
    • Eğer o amele, include includes/templates/page.php
    • Aksi halde bulunmaktadır includes/templates/404.php

includes/templates, hepsi başlığını içerir, yani çıktı tam sayfa olacak bir şey yapmak dosyaların her biri ve altbilgi içerir. Örneğin kullanabilirsiniz Smarty yaklaşım bariz yapacak, PHP dosyaları yerine şablonları.

Bu sahip olduğunuzda, size daha kod ayırabilirsiniz. Bunun yerine index.php doğrudan sayfa yükleme, load_page($name) gibi bir işlevi tanımlar ve sayfa ayrıntılarını verir başka bir dosya içerir.

Daha sonra bir kaç değişiklik ve size MVC yaklaşımı kullanıyor biliyoruz. :) Veritabanından veri yüklemek fonksiyonları için Models, Smary şablonları Views ve onları bir araya koymak PHP dosyaları Controllers vardır.