Web Sitesi Yapı

8 Cevap php

Ben php için oldukça yeni ve ben onları teslim, PHP kullanarak, sayfaları düzenlemek için en iyi şekilde karar vermek çalışıyorum ve. Ben yaşadım, iki (temel) fikirler vardır:

  • Tüm PHP ile tek tek sayfaları bir demet başlık, altbilgi ve menü için içerir.

  • Bir ile birlikte menü, başlık ve altbilgi, sahip tek bir ana sayfa ana içerik bulunmaktadır. Sayfa adı URL bir değişken geliyor.

Herkes başka bir öneriniz ya da fikirleri var mı? Bu çok temel şeyler, ama herkes daha iyi fikir olup olmadığını görmek düşündüm.

Teşekkürler

8 Cevap

Daha önce her iki yönde de gittim, ve her ikisi de artıları ve eksileri var ama ben ikinci seçenek, düzenini içeren tek bir ana sayfada düşkündürler. Bu ana sayfaları, masaüstü yayıncılık uygulamaları çalışmak nasıl benzer ve ASP.NET bu fikri güzel bir uygulama var - Ben size teknolojileri geçmelisiniz söylüyorum değil.

Ancak, eğer sen yapmak yerine URL'lerinizdeki querystrings daha, PHP ana sayfa içine yolları almak için mod_rewrite kullanımı, bu yol gitmek. . Sizin htaccess dosyası gibi bir şey içermelidir:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [S=1]
RewriteRule ^(.*)$ /index.php?path=$1 [QSA]

Onlar için sorun dosya, mevcut yerine QueryString değişken olarak URL yolu ile index.php işleme bir 404 hata elini vererek olmasaydı Bu temelde diyor. Yani "http://example.com/path/to/page" için "/ / yol / sayfa" set ['path'] $ _GET ile index.php isabet biter. Oradan bir veritabanı, düz bir dosya, ya da ne var içerik indirebiliriz. Ayrıca istenen yola göre farklı şablonlar seçebilirsiniz.

Ben başlıkları ve etajer için içeren ile tek tek sayfaları gibi.

Ben orijinal geliştirici URL bir değişken tek bir sayfa kullanılır ve bir ağrı bir web sitesi korumak zorunda. Bu zor yeni ve benzer sayfalar ekleyerek dışında herhangi bir değişiklik yapmak için yapar. O da çerçeveleri kullanılmıştır rağmen, bu kadar iyi sorunun bir parçası olabilir bu yüzden.

Bu iki seçenek göz önüne alındığında sayı 2 ile giderdim Siteniz ('header.php') içeren tüm olmadan tek sayfalar hareketli, uygun bir çerçeve gereken bir seviyeye büyürse.; şeyler çok daha kolay olacaktır. Bonus puan sırasıyla db erişimi ve ekran mantığı koymak için hangi model ve görünüm klasörleri kullanmak ve bir true MVC environment yarı yolda demektir için.

koşullu içeren tek bir dizin-a eklemek düzenleyebilirsiniz da APP güvenliği için çok değerli olabilir tek bir giriş noktası verir.

Why going only half way the right direction? mevcut MVC çerçeveler birini kullanın. Onlar herhangi bir özel çözüm muhtemelen daha iyi kod yapısı güçlü araçlardır. Sunum mantığı iş mantığı ayırmak için öğrenmek, MVC için gidin ve veri yapısı, increase your value on the job market as a potential employee, zaman kazanmak ve mutlu olmak.

Muhtemelen başlamak (ama kendinizi sınırlamak değil) o hafif bir öğrenme eğrisi vardır gibi Kohana PHP gerekir.

PHP ile ana size "KEEP THE PRESENTATION AND PROGRAM LOGIC SEPARATE" ihtiyaç vardır. Veya başka bir deyişle, sen içeri iş veya işlem mantık yapmak komut ortasında ekrana html yankılanan olmadığından emin olun

İşletme ikinci çözelti soruna oldukça yaygın (ve kötü olan) bir çözümdür. Bu daha sonra işlenecek belirli sayfa içeriği da içeren düzen tüm bilgileri tek bir sayfa oluşturmak için izin verir. Eğer sonraki bir sayfa düzeni şablonu büyük bölümlerini takas gerekiyorsa Açıkçası bu kadar iyi çalışmaz. Bu durumda, ilk çözüm daha iyi çalışacak.

Son olarak, ben şiddetle Zend Framework, Symfony gibi orada çeşitli PHP çerçeveler bir göz atın, ya da CakePHP hepsi bu nasıl ele görmek için tavsiye ederim sorun. Sizin gibi birini bulursanız, o zaman sadece bunu kullanabilirsiniz. Aksi takdirde yine kendi sitenizi yapısı nasıl bazı büyük fikirler almak olasıdır.

Gerçekten tasarlarken web sitesi bağlıdır. Eğer bileşenleri reutilize istiyorsanız o yaklaşım çalışacaktır kullanarak içerir. Eğer masterpage bir tür olması için çalışın ve sadece bunu içine istediğiniz sayfayı render

Bağlıdır.

Sayfanın içeriği bir veritabanında saklanır? Eğer öyleyse, muhtemelen sadece içerik gets her içerik sayfası için şablon, başlıklar ve veritabanından meta bilgisi olan ve şablon içine sokarak kapalı iyi olurdu. Hatta bütün farklı bir şablon olabilir ki, sayfaları farklı (haber, statik içerik sayfaları, arşiv sayfaları vb) olabilir.

Içeriği daha az ya da düz dosyalar bulunuyorsa, iki önerileri işi var, ve ben ikinci bir korumak için easisest biri olduğunu düşünmek istiyorum.

Geçmişte hem teknikleri ile kullanılan sonra, ben eski daha esnek, ama kötü uygulamaları teşvik olduğunu bulduk. Tek bir yerde tüm site çapında mantık tutar ve bir-off istisnalar yapmanızı teşvik olarak ikincisi, çok daha tutarlı bir kullanıcı deneyimi sağlar.

Ben bir site dönüştürme sürecinde ben ana sayfa modeline dahil üstbilgi / altbilgi / menu modelinden yıl önce bir çift yazdı aslında değilim. Includes orijinal sistem temiz ve basit ve çok iyi çalışıyor. Ancak, oluşturulan daha fazla ek içeriği, daha ben proje DRY principle ihlal başlamıştı fark etti. Sitede her sayfa başladığı ve bittiği aynı şekilde (tekrarlama her zaman uyarı sinyalleri göndermek gerekir) ve ben içeren bireysel atlayarak standart düzeni istisnalar yapmak için cazip ve bir-off değiştirmeleri yazma ediliyordu. (Neyse ki, ben sık sık şeytana uydum değil!)

Siteyi üstlenmeden sayfaları daha tutarlı yapıyor, düzen (siz "bir bakışta" tüm şey görebilirsiniz) güncellemek için kolay ve yaratmak için yeni sayfalar daha kolay.