PHP ve HTML ayıran ...

10 Cevap php

Bu yüzden ben php ve html ayıran hakkında sorular var, çeşitli web siteleri, sayfaları ve sorular üzerine bazı yorumlar gördük.

Ben bu yapmak demektir varsayalım:

<?php

myPhpStuff();

?>

<html>

<?php

morePhpStuff();

?>

Yerine:

<?php

    doPhpStuff();

    echo '<html>';

    ?>

Ama neden bu önemli? Bunu yapmak için gerçekten önemli midir, yoksa bir tercih mi?


Ben hatalara neden olacak bir süre döngü PHP patlak gibi bir şey yapıyor PHP kullanarak başladığı da gibi görünüyor. Belki de bu artık oldu ya da hiç doğru değildir.


Ben bu kavramı ile küçük bir örnek yaptım ama benim için o kadar dağınık görünüyor:

<?php

$cookies = 100;
while($cookies > 0)
{
    $cookies = $cookies -1;
?>
    <b>Fatty has </b><?php echo $cookies; ?> <b>cookies left.</b><br>

<?php

} 

?>

Bu PHP içinde HTML için sadece iyi olduğu durumlar var mı?

<?php

$cookies = 100;
while($cookies > 0)
{
    $cookies = $cookies -1;

    echo'<b>Fatty has </b> '.$cookies.' <b>cookies left.</b><br>';
} 

?>

10 Cevap

En açık ne ayrılık değildir yapalım

  • Eğer html moduna php moduna geçmek
  • Eğer html kodu yazmak için baskı ya da eko ifadelerini kullanan
  • html dosyaları içindeki küçük php snipplets kullanın

Bunu yaparsanız blokları html veya ona başka bir yol yapmak ve html içine php kodu koymak için php den kaçış eğer, hiçbir ayrılık, hiçbir meselesi var.

İyi bir çiftleşmiş motoru bakmak, nedenleri bol vardır "niçin kullanım ...." kılavuzları parçalar. Ben özellikle http://www.smarty.net/whyuse.php www.smarty.net suggert ediyorum

It will answer all your questions now you have.

Insanlar PHP ve HTML ayıran hakkında konuşmak onlar muhtemelen oluşturmak için kullanılan kod adlı bir web sitesi sunum ayırma uygulaması başvuruyorsunuz.

Örneğin, bir DVD kiralama web sitesi vardı ve ana sayfasında mevcut DVD'lerin bir listesini gösterdi söylüyorlar. Sen bazı şeyleri yapmanız gerekir: Bir veritabanından veri almak DVD ayıklamak ve / veya bu verileri biçimlendirmek ve belki birkaç tablodan bazı verileri karıştırın. , çıkış için formatlamak kullanıcı tarayıcıda görmek için gidiyor web sayfası oluşturmak için HTML ile DVD verileri birleştirebilirsiniz.

Bu kodun geri kalanından HTML nesil ayırmak için iyi bir uygulamadır, bu kolayca iş mantığını (veri okuma ve manipülasyon) değiştirmek zorunda kalmadan HTML çıktı (sunum) değiştirebilirsiniz anlamına gelir. Ve tersi size HTML değiştirmek zorunda kalmadan, kendi mantığı, hatta veritabanı değiştirebilirsiniz, doğrudur.

A common pattern for this is called MVC (model view controller). You might also want to look at the Smarty library - it's a widely used PHP library for separating presentation and logic.

Bu projelerde sunum mantığı ayrı uygulama mantığı için çok önemlidir. Faydaları şunlardır:

  • Readability: PHP ve HTML karıştırmak olmuyorsa kod okumak çok daha kolay olacaktır. Ayrıca, HTML onun saklanan ve PHP dizeleri kaçmış, okumak zor olabilir.
  • Reusability: PHP kodu içinde sabit kod HTML dizeleri ise, kod proje için çok specifc olacak ve sonraki projelerde kodunuzu yeniden mümkün olmayacaktır. Bir seferde bir görev yapmak ve gelecekteki projeler kodunuzu yeniden, ayrı şablon dosyalarını HTML içine koymak Küçük işlevleri yazarsanız Öte yandan, mümkün ve çok daha kolay olacaktır.
  • Working in a team: Eğer geliştiriciler ve tasarımcılar içeren bir ekip çalışıyor iseniz, uygulama mantığı ve sunum şablonları ayrılması hem avantajlı olacaktır. Geliştiriciler sunum endişesi olmadan uygulama üzerinde çalışmak mümkün olacak, ve (ille PHP çok olacak bilmiyorum) tasarımcılar PHP kodu ile karışıklık olmadan şablonları oluşturmak ve güncellemek mümkün olacak.

HTML bir sürü içeren sayfalar için, sayfanın içine PHP kod gömme daha kolay olabilir. Bu PHP arkasında ilk niyetleri biridir. Zaten sadece kullanıcılara gösterilen aynı sayfalarda onları gömmek istiyorsanız çok ve mantık, bir sürü bağlantı farklı, veri işleme, ... PHP kodu çok karmaşık alır bir uygulama geliştirilirken. ve daha sonra bakım hikaye başlar. nasıl, kodda bir şey değiştirmek bir hatayı düzeltmek, yeni bir özellik eklemek için gidiyoruz?

en iyi yolu sayfası (kod çoğu HTML, XML, CSV, ...) dosyalarından farklı dosyalarda mantığı (kod çoğu PHP olduğu) (hatta dizinleri) ayırmaktır.

Bu yüzden yıllardır geliştiriciler için bir endişe kaynağı olmuştur ve tasarım kalıpları olarak adlandırılan bu genel sorunları ele öneriler vardır.

herkes deneyime sahiptir ve onun uygulama içine bu tasarım desenleri uygulamak beri, bazı deneyimli geliştiriciler bu çerçevenin duymak döşeme tüm bilgi ve deneyimini kullanmak için diğer geliştiriciler yardımcı olacağını, Altyapıları oluşturmak.

Eğer şakşakçı en çok kullanılan PHP çerçeveler baktığınızda, bu dosyaların hiçbirinde HTML bir satır göreceksiniz .... hepsi yapılandırmaları yapmak, özel dizinleri PHP sınıfları içine kodu koymak olduğunu görmek ve. ama orada kullanıcılara sonuçlarını göstermek için kullanılan özel dosyaları ve bunlar HTML bir şey var, bu yüzden kullanıcılara göstermek için bu HTML sayfaları içinde PHP değerlerini gömebilirsiniz. ancak bu değerler aynı sayfada hesaplanan olmadığını unutmayın, onlar hiçbir HTML, diğer PHP dosyalarına yazılmış diğer PHP kodları, bir çok sonuç vardır.

Nispeten derli toplu ve anlaşılır görünümlü kod bırakır gibi (MVC ile CodeIgniter çerçeve ile aferin) görünümü dosyasından ayrı uygulama mantığı o tercih bulmak. Ben de HTML elemanları PHP ayrılır eğer PHP hataları için iki yaprak daha az marjı ayıran, yanlış gidebilir PHP küçük bir miktar olduğunu bulduk.

Sonuçta ben ancak ben ayırma aşağıdaki artıları var olduğunu hissediyorum aşağı tercihi olduğuna inanıyorum:

  • Tidier Kodu
  • Bir Hata Teminat az
  • Yorumlama Kolay
  • Kolay HTML öğeleri değiştirmek için
  • Değiştirilen Uygulama Mantık kolay
  • Hızlı Yükleme (HTML Parser-> Browser gitmiyor o tarayıcısından düz gider)

Ancak bazı eksileri olabilir:

  • Sadece (gerekirse ben doğru, yanlış olabilir, Believe) PHP5 çalışır
  • Bu bir için kullanılır ne olmayabilir
  • Düzensiz yanlış yapılırsa (girinti vb olmadan, ancak bu şey ile aynıdır)

Gördüğünüz gibi, artılarını eksilerini söyledi ağır basmaktadır. Da iki, kimi ayrılık ve bazı entegrasyon karıştırmak için değil deneyin - bu kendiniz ve sizinle birlikte çalışan diğer geliştiriciler için kafa karıştırıcı alabilirsiniz.

Ben bu yardımcı umuyoruz.

(PHP ve HTML ayıran) İlk yöntemin faydaları:

  • Karakterleri kaçmak gerekmez

  • It's also possible for code editors to highlight/indent the markup.

  • Bu okumak belki daha kolay

  • There is no downside to this method, compared to the second method.

Fonksiyonel: ikisi de çalışır, bu yüzden sonuçta o bir tercihtir.

Yine, size yorum kodunuz olmadan yorum aynı derlemek ve tam olarak çalışır, hem de bir tercih olduğunu düşünebilirsiniz. Ancak insanların çoğu yorum iyi kod yazma ve korumak için gerekli olan kabul eder. Ben benzer bir konu olarak görüyorum. Uzun vadede bu iki ayrı eğer daha kolay okumak ve kodunu korumak için yapacaktır.

Yani önemli olan? Evet söyleyebilirim.

Bir WYSIWYG editörü açmak, ve hala kudreti daha kolay korumak için yapar bazı biçimlendirme görebilirsiniz ilki: Ben ile başlaması.

Bu ne yankı'' koymak ilk programlama dili tarafından işlenir ve sonra tarayıcıya gönderilen, ancak doğrudan php olmadan orada html kodunu koyarsanız dahil hiçbir programlama olduğundan, bu kodu daha hızlı yüklenmesini olduğunu söylüyor.

Ve yukarıda bahsedilen insanlar olarak ikinci nedeni sizin 'büyük programlama kodu html kodu ayrı olarak depolanır, ve html kodu sadece' echo $ değişken 'gibi sonuçlarını yazdırmak için bazı aramalar koymak sahip olmasıdır. Ya Smarty gibi bir şablon motoru (benim gibi) kullanın.

Best regards, Alexandru.

Ah!

Sorunuzun içinde tüm örneklerde okumak için mükemmel imkansız. Kendini ve kod büyük bir iyilik okumak ve sıralar, diyelim ki, Smarty bir şablon motoru kullanmak olabilir olanların, mutlaka, derdim. Bu kurmak ve kullanmak son derece kolay ve sunum kodunuzu ayrı OLACAKTIR. another birinde - Bu sınıfların her şey koymak gerekmez, sadece mantık one dosya ve sunum olduğundan emin kılar.