2013-02-15 25 views
5

Bu sınıfın, HTML'nin düz HTML olması gerektiğini bildiğimiz kadarıyla, bu sınıfın kullanılması performans veya güvenlik sorunlarına iyi gelir.Standart HTML üzerinden form yardımcılarını kullanmalı mıyım?

Örnek: Codeigniter çerçevesinde

:

echo form_input(array('name' => 'one')); 

iyidir

<input type="text" name="one"/> 

olarak bilinir? Phil Sturgeon Blogu'ndaki Kopyalanan

+4

Tüm görüntüleme dosyalarımı yalnızca HTML olarak tutmamı sağlayan ve onları tasarımcılara daha erişilebilir kılan bir özel şablon sistemi kullandığım için bunlardan kaçınmaya eğilimliyim. Eğer csrf jetonlarında yerleşik kod senaryosunu kullanmak istiyorsanız, formları açmak/kapamak için form yardımcısını kullanmanız gerekecek, ancak sanırım çoğunlukla kendi tercihinize göre. – Jeemusu

+2

@Jeemusu, CSRF tokenleri için form yardımcısını kullanmanız gerekmediğinden, sadece şunu yapabilirsiniz: '

+0

@cryptic ツ - Keşke bunu daha önce biliyordum: P Cheers. – Jeemusu

cevap

4

:
soyutlama ekstra katman, yardımcı uzanan kombine/ağır basan çok kolay az yaygara ile uygulama çıktı boyunca mantığın basit bit değiştirmek için yapar.

Açıklamak gerekirse, bir örnek kullanacağım.

<form action="<?php echo site_url('controller/method'); ?>" method="post"> 
vrs 
<?php echo form_open('controller/method'); 

Önce formu eylem bağlantıyı oluşturmak için kullanılan site_url() işleviyle, bunu yapmak için standart HTML yolunu göreceksiniz. İkincisi form_open() etiketini göreceksiniz - ve bu örnekte daha kısa, wahey!

Verilerimin tümünü UTF-8 in CodeIgniter tutmak için tüm formlarımda accept-charset="UTF-8" ayarlamak için bir yol istedim. Sadece HTML kullanıyor olsaydım, o zaman tüm formlarımı kullanmalı ve bunu kendime ekleyeceğim, ki bu da barda harcadığım zamanı boşa harcayacaktı.

Bunun yerine, CodeIgniter, yardımcıları genişletmenize izin verdiği için, bu mantığı içeren application/helpers/MY_form_helper.php numaralı form_open() numaralı kendi biraz değiştirilmiş.
Kullanışlı verilerimi sarmak için PHP kullanıyordum, tek bir basit değişiklik yapabilir ve tüm etiketlerimi güncelleyebilirim.

Temel sorun, kullanıcıların bu HTML yardımcı işlevlerine bakıp bunları yalnızca farklı sözdizimi olarak görmeleridir. tam makale ziyareti için

:
http://philsturgeon.co.uk/blog/2009/12/Why-CodeIgniter-HTML-helper-functions-rock

2

Bu iyi bir soru. Sonunda kişisel tercihlere inanıyorum. Şahsen form yardımcılarını kullanmayı sevmiyorum ama bunları kullanmanın yararlarını kesinlikle görebiliyorum ve büyük bir proje üzerinde çalışıyorsam bunları kullanmaya çalışıyorum. Çünkü Phil Sturgeon'un söylediği gibi, tüm form alanlarına site çapında bir değişiklik yapmak istediğinizde.

Form yardımcı işlevleri kullanılıp kullanılmadığını görmek ilgimi çekse de performansı etkiler. Kesinlikle HTML'yi oluşturmak için PHP'yi kullanarak HTML'yi normal olarak yazmaktan daha iyi bir performans vuruşu var mı?