Görünümleri kullanmak veya görünümleri kullanmak için değil

6 Cevap php

Ben görüşlerimi hiçbir yararları olduğunu düşünüyor bu proje üzerinde başka bir programcı ile bir tartışma karışmış olması için şu anda görünüyor. O, PHP şöyle bir sistem önermektedir:

$draw = new Draw;
$nav = $draw->wideHeaderBox().
$draw->left().
    $draw->image().
    	Image::get($image,60,array('id'=>'header_image')).
    $draw->imageEnd().
$draw->leftEnd().
$draw->left(10).
    '<div id="header_text">'.
        self::defaultSectionText().
    '</div>'.
$draw->leftEnd().

ve böylece (bu btw denetleyicisi olan). Şimdi bu onun argümanlar aslında biraz mantıklı, o bir yeniden varsa yapmamız gereken tek bir yerde HTML değiştirmek olduğunu ve her yerde otomatik olarak değişir iddia ediyor. Ancak nedense, bu yöntem hala bana yanlış şekilde losyonları, bu yöntemle manzaralı için herhangi bir hak var mı? Ben elle HTML yeniden yazmak zorunda değil yanında anlamına gelir.

6 Cevap

HTML zaman kazandırıcı yararlıdır, ancak sezgisel ve kolay anlaşılır olduğunuzda sadece faydalıdır. Bir örneğini zorunda new Draw, sadece çok doğal gelmiyor. Ayrıca, wideHeaderBox ve left sadece yakından sistemini bilen birisi öneme sahip olacaktır. Ve ne is yeniden tasarlanması orada varsa, co-işçi Brothers gibi mi? Ne wideHeaderBox çok dar olursa? Eğer biçimlendirme değişecek (ve stilleri, tahminen) PHP yöntemi ile üretilen, ancak kodu aramak çok yanlış bir yöntem adını bırakın?

Siz sadece have HTML nesil kullanmak varsa, görünümü dosyalarında serpiştirilmiş kullanmak gerekir, ve bu tür bu gibi bir şey olarak, yararlı / gerçekten gerekli nerede bunu kullanmak gerekir:

HTML::link("Wikipedia", "http://en.wikipedia.org");
HTML::bulleted_list(array(
    HTML::list_item("Dogs"),
    HTML::list_item("Cats"),
    HTML::list_item("Armadillos")
));

Yukarıdaki örnekte, yöntem adları aslında sistemine aşina olmayan kişiler için mantıklı. Eğer nadiren ziyaret dosyasına geri dönün ve ne yaptıklarını halt merak Onlar da çocuklar için daha mantıklı olacak.

O kullandığı argüman have görüşlerine ihtiyaç argümandır. Hem de sadece tek bir yerde değişen sonuçlanır. Ancak, onun versiyonu, iş kodu ile görünüm biçimlendirme karıştırma.

Ben bir şablonu tasarım daha kullanarak öneririm. PHP tüm iş mantık yapmak, kurulum sayfası tarafından gerekli olan tüm değişkenleri. Sonra sadece sayfa biçimlendirme bu değişkenleri referans olması (ve hiçbir iş mantığı ile anlaşma).

Eğer smarty baktınız mı? http://smarty.php.net

Ben geçmişte böyle bir şey yaptık, ve bir zaman kaybı oldu. Örneğin, temelde HTML ile zaten yapabilirsiniz her şey için mahfazalar yazmak zorunda ve bazı şeyleri unutmak OLACAKTIR. Eğer düzen şey değiştirmek için ihtiyacınız olduğunda "Ben bu konuda unutmuşum .. şimdi ben kodu başka bir yöntem lazım veya başka bir parametre eklemek" düşünürler.

Sonuçta, kimse bilmiyor ya da şimdi ay kullanmak nasıl hatırlar HTML üretmek işlevleri / sınıfları büyük bir koleksiyona sahip olacaktır. Onlar hiçbir şey değiştirmeden önce öğrenmek zorunda çünkü yeni geliştiriciler, bu sistemi kullanmak için size lanet edecek. Buna karşılık, daha fazla kişi muhtemelen soyut HTML çizim sınıfları daha HTML bilmek ... ve bazen sadece lazım saf HTML ile ellerini kirli olsun!

Dürüst olmak gerekirse takip etmek oldukça ayrıntılı ve sert görünüyor ve çok fazla düzen bilgileri gibi bazı kod görünüyor.

Biz her zaman mümkün olduğunca çıkışından mantığı bölmek deneyin. Ancak, görünüm ve veri çok sıkı bir parçası hem de basit bir e-ticaret sitesi olarak, örneğin (diğer nasıl olması gerektiğini dikte ile bağlantılı olduğu sık sık durumda, size bir sonraki her ürün için stok seviyelerini gösteren başlamak istiyorum karar verebilir hangi besbelli) gidin ve hisse senedi için bir değeri anlamaya uygun bunun için html ve iş mantığı eklemek için görünümü değişiyor içerecektir.

Bunu yapmak için 2 dosya sürdürmenin düşünce işlemek için çok fazla ise, seni alıyorum, bir "veri toplamak" bölümü ve "Ekran Görünümü" bölümünde bölme şeyler denemek yönetmek için gereken dosya sayısını artırmadan faydaların en .

Ben her zaman çok daha kolay html ile doğrudan çalışmak için bulabilirsiniz. Orada bir daha az soyutlama katmanı (html -> GÜNCEL web sayfası / php fonksiyonu -> html -> gerçek web sayfası) ile başa çıkmak için o zaman sadece HTML çalışır.

Gerçekten 'sadece tek bir yerde değiştirmek zorunda' bir şey olmaz bu durumda çalışmıyor düşünüyorum. Onlar bir fonksiyonun çıkışını değiştirmek istediğinizde pek çok kez, ama sadece tek bir yerde olacak çünkü bu. Tabii argümanlar kullanabilirsiniz ama yakında bazı işlevler bir düzine bağımsız gibi sahip bitireceğiz. Yuck.

Akıl çiftleşmiş dilleri / sistemlerinde ayı sık sık size html bazı yeniden blokları için izin, alt şablonlar dahil etmenizi sağlar.

Ben sadece şirket başladı ve her yerde bunun gibi bir kod gördüm sanki alt çizgi, benim ilk düşünce 'Kahretsin, olurdu! Tekrar yeni bir işe ihtiyacım var. '